![Infineon Technologies XC2200 Скачать руководство пользователя страница 78](http://html1.mh-extra.com/html/infineon-technologies/xc2200/xc2200_user-manual_2055439078.webp)
XC2200 Derivatives
System Units (Vol. 1 of 2)
Memory Organization
User’s Manual
3-17
V2.1, 2008-08
MemoryX2K, V1.3
3.8
Crossing Memory Boundaries
The address space of the XC2200 is implicitly divided into equally sized blocks of
different granularity and into logical memory areas. Crossing the boundaries between
these blocks (code or data) or areas requires special attention to ensure that the
controller executes the desired operations.
Memory Areas
are partitions of the address space assigned to different kinds of
memory (if provided at all). These memory areas are the SFR areas, the on-chip
program or data RAM areas, the on-chip ROM/Flash (if available), the on-chip LXBus-
peripherals (if integrated), and the external memory.
Accessing subsequent data locations which belong to different memory areas is no
problem. However, when executing code, the different memory areas must be switched
explicitly via branch instructions. Sequential boundary crossing is not supported and
leads to erroneous results.
Note: Changing from the external memory area to the on-chip RAM area takes place
within segment 0.
Segments
are contiguous blocks of 64 Kbytes each. They are referenced via the Code
Segment Pointer CSP for code fetches and via an explicit segment number for data
accesses overriding the standard DPP scheme.
During code fetching, segments are not changed automatically, but rather must be
switched explicitly. The instructions JMPS, CALLS and RETS will do this.
In larger sequential programs, make sure that the highest used code location of a
segment contains an unconditional branch instruction to the respective following
segment to prevent the pre-fetcher from trying to leave the current segment.
Data Pages
are contiguous blocks of 16 Kbytes each. They are referenced via the data
page pointers DPP3 … DPP0 and via an explicit data page number for data accesses
overriding the standard DPP scheme. Each DPP register can select one of the possible
1024 data pages. The DPP register which is used for the current access is selected via
the two upper bits of the 16-bit data address. Therefore, subsequent 16-bit data
addresses which cross the 16-Kbytes data page boundaries will use different data page
pointers, while the physical locations need not be subsequent within memory.