C28x 编译器将内存视为程序内存和数据内存这两个线性块:
- 程序内存包含可执行代码、初始化记录和切换表。
- 数据内存包含外部变量、静态变量和系统堆栈。
由 C/C++ 程序生成的代码块或数据块放置在合适的存储器空间的连续块中。
注: 链接器定义内存映射:由链接器而不是编译器定义内存映射并将代码和数据分配到目标内存中。编译器不考虑可用内存的类型、不考虑代码或数据(漏洞)的任何不可用的位置,也不考虑为 I/O 或控制目的保留的任何位置。编译器生成可重定位代码,允许链接器将代码和数据分配到合适的内存空间中。例如,可以使用链接器将全局变量分配到片上 RAM 中或将可执行代码分配到外部 ROM 中。可以将每个代码块或数据块单独分配到内存中,但这不是通用做法(一个例外是内存映射 I/O ,尽管可以使用 C/C++ 指针类型访问物理存储器位置)。