mirror of
https://github.com/zoriya/ComSquare.git
synced 2026-05-23 14:58:36 +00:00
220 lines
13 KiB
TeX
220 lines
13 KiB
TeX
\hypertarget{classComSquare_1_1Memory_1_1ARectangleMemory}{}\doxysection{Com\+Square\+::Memory\+::A\+Rectangle\+Memory Class Reference}
|
|
\label{classComSquare_1_1Memory_1_1ARectangleMemory}\index{ComSquare::Memory::ARectangleMemory@{ComSquare::Memory::ARectangleMemory}}
|
|
|
|
|
|
Base memory class to map non continuous rectangle to the memory. (A rectangle that spam across more than one bank but that does not start at \$0000 or end at \$\+F\+F\+FF).
|
|
|
|
|
|
|
|
|
|
{\ttfamily \#include $<$A\+Rectangle\+Memory.\+hpp$>$}
|
|
|
|
|
|
|
|
Inheritance diagram for Com\+Square\+::Memory\+::A\+Rectangle\+Memory\+:
|
|
\nopagebreak
|
|
\begin{figure}[H]
|
|
\begin{center}
|
|
\leavevmode
|
|
\includegraphics[height=550pt]{classComSquare_1_1Memory_1_1ARectangleMemory__inherit__graph}
|
|
\end{center}
|
|
\end{figure}
|
|
|
|
|
|
Collaboration diagram for Com\+Square\+::Memory\+::A\+Rectangle\+Memory\+:
|
|
\nopagebreak
|
|
\begin{figure}[H]
|
|
\begin{center}
|
|
\leavevmode
|
|
\includegraphics[width=220pt]{classComSquare_1_1Memory_1_1ARectangleMemory__coll__graph}
|
|
\end{center}
|
|
\end{figure}
|
|
\doxysubsection*{Public Member Functions}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
\mbox{\hyperlink{Ints_8hpp_a89f009aaf5d1964a000f44f09fa0bcf8}{uint24\+\_\+t}} \mbox{\hyperlink{classComSquare_1_1Memory_1_1ARectangleMemory_ae3d2535084fcf3d923aea4d9b0d9626e}{get\+Relative\+Address}} (\mbox{\hyperlink{Ints_8hpp_a89f009aaf5d1964a000f44f09fa0bcf8}{uint24\+\_\+t}} addr) const override
|
|
\begin{DoxyCompactList}\small\item\em Translate an absolute address to a relative address. \end{DoxyCompactList}\item
|
|
bool \mbox{\hyperlink{classComSquare_1_1Memory_1_1ARectangleMemory_a182a3c6842814d052199adc24bc85ed3}{has\+Memory\+At}} (\mbox{\hyperlink{Ints_8hpp_a89f009aaf5d1964a000f44f09fa0bcf8}{uint24\+\_\+t}} addr) const override
|
|
\begin{DoxyCompactList}\small\item\em Return true if this component has mapped the address. \end{DoxyCompactList}\item
|
|
void \mbox{\hyperlink{classComSquare_1_1Memory_1_1ARectangleMemory_aaf39bde614e7044e3de2ea4356abb63b}{set\+Memory\+Region}} (uint8\+\_\+t start\+Bank, uint8\+\_\+t end\+Bank, uint16\+\_\+t start\+Page, uint16\+\_\+t end\+Page)
|
|
\begin{DoxyCompactList}\small\item\em Change starting and ending points of this mapped memory. \end{DoxyCompactList}\item
|
|
std\+::string \mbox{\hyperlink{classComSquare_1_1Memory_1_1ARectangleMemory_a7125cd1619a07e1030c88bb849d44425}{get\+Value\+Name}} (\mbox{\hyperlink{Ints_8hpp_a89f009aaf5d1964a000f44f09fa0bcf8}{uint24\+\_\+t}} addr) const override
|
|
\begin{DoxyCompactList}\small\item\em Get the name of the data at the address. \end{DoxyCompactList}\item
|
|
\mbox{\hyperlink{classComSquare_1_1Memory_1_1ARectangleMemory_a76baca93e0dbd0b43f4952295e300edc}{$\sim$\+A\+Rectangle\+Memory}} () override=default
|
|
\begin{DoxyCompactList}\small\item\em A default destructor. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
\doxysubsection*{Protected Attributes}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
uint8\+\_\+t \mbox{\hyperlink{classComSquare_1_1Memory_1_1ARectangleMemory_a61cac92b775cdfa5a0f534e67b83ddf4}{\+\_\+start\+Bank}} = 0
|
|
\begin{DoxyCompactList}\small\item\em The first bank to map to. \end{DoxyCompactList}\item
|
|
uint8\+\_\+t \mbox{\hyperlink{classComSquare_1_1Memory_1_1ARectangleMemory_a09ec93e172a976fb4b762f77dcb8b709}{\+\_\+end\+Bank}} = 0
|
|
\begin{DoxyCompactList}\small\item\em The last bank to map to. \end{DoxyCompactList}\item
|
|
uint16\+\_\+t \mbox{\hyperlink{classComSquare_1_1Memory_1_1ARectangleMemory_a8bba8f5e10bd9dfd122a84f6707a73f8}{\+\_\+start\+Page}} = 0
|
|
\begin{DoxyCompactList}\small\item\em The first address of each bank to map. \end{DoxyCompactList}\item
|
|
uint16\+\_\+t \mbox{\hyperlink{classComSquare_1_1Memory_1_1ARectangleMemory_ac5e3772f4f9c40f65b3e165646876110}{\+\_\+end\+Page}} = 0
|
|
\begin{DoxyCompactList}\small\item\em The last address of each bank to map. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
|
|
|
|
\doxysubsection{Detailed Description}
|
|
Base memory class to map non continuous rectangle to the memory. (A rectangle that spam across more than one bank but that does not start at \$0000 or end at \$\+F\+F\+FF).
|
|
|
|
\doxysubsection{Constructor \& Destructor Documentation}
|
|
\mbox{\Hypertarget{classComSquare_1_1Memory_1_1ARectangleMemory_a76baca93e0dbd0b43f4952295e300edc}\label{classComSquare_1_1Memory_1_1ARectangleMemory_a76baca93e0dbd0b43f4952295e300edc}}
|
|
\index{ComSquare::Memory::ARectangleMemory@{ComSquare::Memory::ARectangleMemory}!````~ARectangleMemory@{$\sim$ARectangleMemory}}
|
|
\index{````~ARectangleMemory@{$\sim$ARectangleMemory}!ComSquare::Memory::ARectangleMemory@{ComSquare::Memory::ARectangleMemory}}
|
|
\doxysubsubsection{\texorpdfstring{$\sim$ARectangleMemory()}{~ARectangleMemory()}}
|
|
{\footnotesize\ttfamily Com\+Square\+::\+Memory\+::\+A\+Rectangle\+Memory\+::$\sim$\+A\+Rectangle\+Memory (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [default]}}
|
|
|
|
|
|
|
|
A default destructor.
|
|
|
|
|
|
|
|
\doxysubsection{Member Function Documentation}
|
|
\mbox{\Hypertarget{classComSquare_1_1Memory_1_1ARectangleMemory_ae3d2535084fcf3d923aea4d9b0d9626e}\label{classComSquare_1_1Memory_1_1ARectangleMemory_ae3d2535084fcf3d923aea4d9b0d9626e}}
|
|
\index{ComSquare::Memory::ARectangleMemory@{ComSquare::Memory::ARectangleMemory}!getRelativeAddress@{getRelativeAddress}}
|
|
\index{getRelativeAddress@{getRelativeAddress}!ComSquare::Memory::ARectangleMemory@{ComSquare::Memory::ARectangleMemory}}
|
|
\doxysubsubsection{\texorpdfstring{getRelativeAddress()}{getRelativeAddress()}}
|
|
{\footnotesize\ttfamily \mbox{\hyperlink{Ints_8hpp_a89f009aaf5d1964a000f44f09fa0bcf8}{uint24\+\_\+t}} Com\+Square\+::\+Memory\+::\+A\+Rectangle\+Memory\+::get\+Relative\+Address (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{Ints_8hpp_a89f009aaf5d1964a000f44f09fa0bcf8}{uint24\+\_\+t}}}]{addr }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
|
|
|
|
|
|
|
|
Translate an absolute address to a relative address.
|
|
|
|
|
|
\begin{DoxyParams}{Parameters}
|
|
{\em addr} & The absolute address (in the 24 bit bus) \\
|
|
\hline
|
|
\end{DoxyParams}
|
|
\begin{DoxyReturn}{Returns}
|
|
The local address (0 refers to the first byte of this component).
|
|
\end{DoxyReturn}
|
|
|
|
\begin{DoxyExceptions}{Exceptions}
|
|
{\em \mbox{\hyperlink{classComSquare_1_1InvalidAddress}{Invalid\+Address}}} & is thrown if the address is not mapped by this component. \\
|
|
\hline
|
|
\end{DoxyExceptions}
|
|
|
|
|
|
Implements \mbox{\hyperlink{classComSquare_1_1Memory_1_1IMemory_a44a24003df048c5e832ba23722ef026d}{Com\+Square\+::\+Memory\+::\+I\+Memory}}.
|
|
|
|
|
|
|
|
Reimplemented in \mbox{\hyperlink{classComSquare_1_1Memory_1_1RectangleShadow_a8e9ecd31b62134e08a811a8583a0af3c}{Com\+Square\+::\+Memory\+::\+Rectangle\+Shadow}}.
|
|
|
|
\mbox{\Hypertarget{classComSquare_1_1Memory_1_1ARectangleMemory_a7125cd1619a07e1030c88bb849d44425}\label{classComSquare_1_1Memory_1_1ARectangleMemory_a7125cd1619a07e1030c88bb849d44425}}
|
|
\index{ComSquare::Memory::ARectangleMemory@{ComSquare::Memory::ARectangleMemory}!getValueName@{getValueName}}
|
|
\index{getValueName@{getValueName}!ComSquare::Memory::ARectangleMemory@{ComSquare::Memory::ARectangleMemory}}
|
|
\doxysubsubsection{\texorpdfstring{getValueName()}{getValueName()}}
|
|
{\footnotesize\ttfamily std\+::string Com\+Square\+::\+Memory\+::\+A\+Rectangle\+Memory\+::get\+Value\+Name (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{Ints_8hpp_a89f009aaf5d1964a000f44f09fa0bcf8}{uint24\+\_\+t}}}]{addr }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
|
|
|
|
|
|
|
|
Get the name of the data at the address.
|
|
|
|
|
|
\begin{DoxyParams}{Parameters}
|
|
{\em addr} & The address (in local space) \\
|
|
\hline
|
|
\end{DoxyParams}
|
|
|
|
|
|
Implements \mbox{\hyperlink{classComSquare_1_1Memory_1_1IMemory_a1f02b894a85d7b1a0b8bae677039d821}{Com\+Square\+::\+Memory\+::\+I\+Memory}}.
|
|
|
|
\mbox{\Hypertarget{classComSquare_1_1Memory_1_1ARectangleMemory_a182a3c6842814d052199adc24bc85ed3}\label{classComSquare_1_1Memory_1_1ARectangleMemory_a182a3c6842814d052199adc24bc85ed3}}
|
|
\index{ComSquare::Memory::ARectangleMemory@{ComSquare::Memory::ARectangleMemory}!hasMemoryAt@{hasMemoryAt}}
|
|
\index{hasMemoryAt@{hasMemoryAt}!ComSquare::Memory::ARectangleMemory@{ComSquare::Memory::ARectangleMemory}}
|
|
\doxysubsubsection{\texorpdfstring{hasMemoryAt()}{hasMemoryAt()}}
|
|
{\footnotesize\ttfamily bool Com\+Square\+::\+Memory\+::\+A\+Rectangle\+Memory\+::has\+Memory\+At (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{Ints_8hpp_a89f009aaf5d1964a000f44f09fa0bcf8}{uint24\+\_\+t}}}]{addr }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
|
|
|
|
|
|
|
|
Return true if this component has mapped the address.
|
|
|
|
|
|
\begin{DoxyParams}{Parameters}
|
|
{\em addr} & The address to check. \\
|
|
\hline
|
|
\end{DoxyParams}
|
|
\begin{DoxyReturn}{Returns}
|
|
True if this address is mapped to the component. False otherwise.
|
|
\end{DoxyReturn}
|
|
|
|
|
|
Implements \mbox{\hyperlink{classComSquare_1_1Memory_1_1IMemory_a6b7cf04f893b04b9b063759ad67d5bff}{Com\+Square\+::\+Memory\+::\+I\+Memory}}.
|
|
|
|
\mbox{\Hypertarget{classComSquare_1_1Memory_1_1ARectangleMemory_aaf39bde614e7044e3de2ea4356abb63b}\label{classComSquare_1_1Memory_1_1ARectangleMemory_aaf39bde614e7044e3de2ea4356abb63b}}
|
|
\index{ComSquare::Memory::ARectangleMemory@{ComSquare::Memory::ARectangleMemory}!setMemoryRegion@{setMemoryRegion}}
|
|
\index{setMemoryRegion@{setMemoryRegion}!ComSquare::Memory::ARectangleMemory@{ComSquare::Memory::ARectangleMemory}}
|
|
\doxysubsubsection{\texorpdfstring{setMemoryRegion()}{setMemoryRegion()}}
|
|
{\footnotesize\ttfamily void Com\+Square\+::\+Memory\+::\+A\+Rectangle\+Memory\+::set\+Memory\+Region (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{start\+Bank, }\item[{uint8\+\_\+t}]{end\+Bank, }\item[{uint16\+\_\+t}]{start\+Page, }\item[{uint16\+\_\+t}]{end\+Page }\end{DoxyParamCaption})}
|
|
|
|
|
|
|
|
Change starting and ending points of this mapped memory.
|
|
|
|
|
|
\begin{DoxyParams}{Parameters}
|
|
{\em start\+Bank} & The first bank mapped to this component. \\
|
|
\hline
|
|
{\em end\+Bank} & The last bank mapped to this component. \\
|
|
\hline
|
|
{\em start\+Page} & The first page mapped to this component (every mapped banks will have this page mapped) \\
|
|
\hline
|
|
{\em end\+Page} & The end page mapped to this component (every mapped banks will have this pages lower than this mapped) \\
|
|
\hline
|
|
\end{DoxyParams}
|
|
\begin{DoxyWarning}{Warning}
|
|
The start/end address should be a rectangle. To mirror memory, use the \mbox{\hyperlink{classComSquare_1_1Memory_1_1MemoryShadow}{Memory\+Shadow}} class and not this one.
|
|
\end{DoxyWarning}
|
|
|
|
|
|
\doxysubsection{Member Data Documentation}
|
|
\mbox{\Hypertarget{classComSquare_1_1Memory_1_1ARectangleMemory_a09ec93e172a976fb4b762f77dcb8b709}\label{classComSquare_1_1Memory_1_1ARectangleMemory_a09ec93e172a976fb4b762f77dcb8b709}}
|
|
\index{ComSquare::Memory::ARectangleMemory@{ComSquare::Memory::ARectangleMemory}!\_endBank@{\_endBank}}
|
|
\index{\_endBank@{\_endBank}!ComSquare::Memory::ARectangleMemory@{ComSquare::Memory::ARectangleMemory}}
|
|
\doxysubsubsection{\texorpdfstring{\_endBank}{\_endBank}}
|
|
{\footnotesize\ttfamily uint8\+\_\+t Com\+Square\+::\+Memory\+::\+A\+Rectangle\+Memory\+::\+\_\+end\+Bank = 0\hspace{0.3cm}{\ttfamily [protected]}}
|
|
|
|
|
|
|
|
The last bank to map to.
|
|
|
|
\mbox{\Hypertarget{classComSquare_1_1Memory_1_1ARectangleMemory_ac5e3772f4f9c40f65b3e165646876110}\label{classComSquare_1_1Memory_1_1ARectangleMemory_ac5e3772f4f9c40f65b3e165646876110}}
|
|
\index{ComSquare::Memory::ARectangleMemory@{ComSquare::Memory::ARectangleMemory}!\_endPage@{\_endPage}}
|
|
\index{\_endPage@{\_endPage}!ComSquare::Memory::ARectangleMemory@{ComSquare::Memory::ARectangleMemory}}
|
|
\doxysubsubsection{\texorpdfstring{\_endPage}{\_endPage}}
|
|
{\footnotesize\ttfamily uint16\+\_\+t Com\+Square\+::\+Memory\+::\+A\+Rectangle\+Memory\+::\+\_\+end\+Page = 0\hspace{0.3cm}{\ttfamily [protected]}}
|
|
|
|
|
|
|
|
The last address of each bank to map.
|
|
|
|
\mbox{\Hypertarget{classComSquare_1_1Memory_1_1ARectangleMemory_a61cac92b775cdfa5a0f534e67b83ddf4}\label{classComSquare_1_1Memory_1_1ARectangleMemory_a61cac92b775cdfa5a0f534e67b83ddf4}}
|
|
\index{ComSquare::Memory::ARectangleMemory@{ComSquare::Memory::ARectangleMemory}!\_startBank@{\_startBank}}
|
|
\index{\_startBank@{\_startBank}!ComSquare::Memory::ARectangleMemory@{ComSquare::Memory::ARectangleMemory}}
|
|
\doxysubsubsection{\texorpdfstring{\_startBank}{\_startBank}}
|
|
{\footnotesize\ttfamily uint8\+\_\+t Com\+Square\+::\+Memory\+::\+A\+Rectangle\+Memory\+::\+\_\+start\+Bank = 0\hspace{0.3cm}{\ttfamily [protected]}}
|
|
|
|
|
|
|
|
The first bank to map to.
|
|
|
|
\mbox{\Hypertarget{classComSquare_1_1Memory_1_1ARectangleMemory_a8bba8f5e10bd9dfd122a84f6707a73f8}\label{classComSquare_1_1Memory_1_1ARectangleMemory_a8bba8f5e10bd9dfd122a84f6707a73f8}}
|
|
\index{ComSquare::Memory::ARectangleMemory@{ComSquare::Memory::ARectangleMemory}!\_startPage@{\_startPage}}
|
|
\index{\_startPage@{\_startPage}!ComSquare::Memory::ARectangleMemory@{ComSquare::Memory::ARectangleMemory}}
|
|
\doxysubsubsection{\texorpdfstring{\_startPage}{\_startPage}}
|
|
{\footnotesize\ttfamily uint16\+\_\+t Com\+Square\+::\+Memory\+::\+A\+Rectangle\+Memory\+::\+\_\+start\+Page = 0\hspace{0.3cm}{\ttfamily [protected]}}
|
|
|
|
|
|
|
|
The first address of each bank to map.
|
|
|
|
|
|
|
|
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
|
|
\item
|
|
sources/\+Memory/\mbox{\hyperlink{ARectangleMemory_8hpp}{A\+Rectangle\+Memory.\+hpp}}\item
|
|
sources/\+Memory/\mbox{\hyperlink{ARectangleMemory_8cpp}{A\+Rectangle\+Memory.\+cpp}}\end{DoxyCompactItemize}
|