dsPIC33EVXXXGM00X/10X FAMILY
4.7 Interfacing Program and Data
Memory Spaces
The dsPIC33EVXXXGM00X/10X family architecture
uses a 24-bit wide Program Space and a 16-bit wide
Data Space. The architecture is also a modified Harvard
scheme, meaning that data can also be present in the
Program Space. To use this data successfully, it must be
accessed in a way that preserves the alignment of
information in both the spaces.
Aside from normal execution, the architecture of the
dsPIC33EVXXXGM00X/10X family devices provides
two methods by which Program Space can be
accessed during operation:
• Using table instructions to access individual bytes
or words anywhere in the Program Space
• Remapping a portion of the Program Space into
the Data Space (Program Space Visibility)
Table instructions allow an application to read or write
to small areas of the program memory. This capability
makes the method ideal for accessing data tables that
need to be updated periodically. It also allows access
to all bytes of the program word. The remapping
method allows an application to access a large block of
data on a read-only basis, which is ideal for look-ups
from a large table of static data. The application can
only access the least significant word of the program
word.
Table 4-47 shows the construction of the Program
Space address.
How the data is accessed from Program Space is
shown in Figure 4-17.
TABLE 4-47: PROGRAM SPACE ADDRESS CONSTRUCTION
Access Type
Instruction Access
(Code Execution)
TBLRD/TBLWT
(Byte/Word Read/Write)
Access
Space
User
User
Configuration
Program Space Address
<23>
<22:16>
<15>
<14:1>
<0>
0
PC<22:1>
0
0xx xxxx xxxx xxxx xxxx xxx0
TBLPAG<7:0>
Data EA<15:0>
0xxx xxxx
TBLPAG<7:0>
xxxx xxxx xxxx xxxx
Data EA<15:0>
1xxx xxxx
xxxx xxxx xxxx xxxx
2013-2016 Microchip Technology Inc.
DS70005144E-page 79