Mapping Structures to Memory
Mapping Structures to Memory
The data structures describe the register set in detail. And, each instance of the data type (i.e.,
register set) is unique. Each structure is associated with an address in memory. This is done by
(1) creating a new section name via a DATA_SECTION pragma, and (2) linking the new section
name to a specific memory in the linker command file.
#
#
pragma
pragma
DATA_SECTION(
DATA_SECTION(
AdcRegs
AdcRegs
,“
,“
AdcRegsFile
AdcRegsFile
");
");
MEMORY
MEMORY
{
{
PAGE1:
PAGE1:
...
...
ADC:
ADC:
origin=0x007100, length=0x000020
origin=0x007100, length=0x000020
...
...
}
}
SECTIONS
SECTIONS
{
{
...
...
AdcRegsFile
AdcRegsFile
: >
: >
ADC PAGE = 1
ADC PAGE = 1
...
...
}
}
Example Mapping Structure to Memory
Example Mapping Structure to Memory
“DATA_SECTION
“DATA_SECTION
pragma
pragma
used to assign a unique linker section
used to assign a unique linker section
name to the peripheral structure
name to the peripheral structure
Linker command file maps the unique peripheral section
Linker command file maps the unique peripheral section
name to the physical memory address
name to the physical memory address
DSP281x_
DSP281x_
GlobalVariableDefs
GlobalVariableDefs
.C
.C
DSP281x_Headers_BIOS.CMD
DSP281x_Headers_BIOS.CMD
Linker Command File
When using the header files, the user adds the MEMORY regions that correspond to the
CODE_SECTION and DATA_SECTION pragmas found in the .h and global-definitons.c file.
The user can modify their own linker command file, or use the pre-configured linker command
files such as EzDSP_RAM_lnk.cmd or F2812.cmd. These files have the peripheral memory
regions defined and tied to the individual peripheral.
3 - 8 C28x - Peripheral Registers Header Files