TMS320F2812 处理器的存储器包括片上存储器和片外存储器,所有的存储器空间采用统一编址,F2812 最大可寻址 4M 的程序空间,下面是 F2812 的内存映射图。
1.片上 SRAM(图上红色方框)
(1)M0 和 M1;每块大小为 1K x 16 bit,其中 M0 映射到 0x00 0000 - 0x00 03FF,M1 映射到 0x00 0400 - 0x00 07FF。
(2)L0 和 L1;每块大小为 4K x 16 bit,其中 L0 映射到 0x00 8000 - 0x00 8FFF,L1 映射到 0x00 9000 - 0x00 9FFF。
(3)H0;大小为 8K x 16 bit,映射到 0x3F 8000 - 0x3F 9FFF。
2.片上 Flash(图上绿色方框)
F2812 芯片内部包含一片 128K x 16 bit 的 Flash 存储器(代码可直接在上面运行),映射到 0x3D 8000 - 0x3F 8000。
3.片上 OTP(图上蓝色方框)
F2812 芯片内部有一块 1K x 16 bit 的一次性可编程存储器(One-Time-Programmable),映射到 0x3D 7800 - 0x3D 7BFF。
4.片上 Boot ROM(图上蓝色含粉色方框)
F2812 芯片内部有一块 4K x 16 bit 的 Boot ROM(引导ROM),映射到 0x3F F000 - 0x3F FFFF。在改存储器内 TI 公司装载了产品版本号、发布的数据、校验求和信息、复位向量、CPU 向量表及标准的数学运算表(如正弦表、余弦表)等。Boot ROM 的主要作用是实现 DSP 的 BootLoader 功能,芯片出厂时在 Boot ROM 的 0x3F FC00 - 0x3F FFBF 空间内有厂家的引导装载程序,当芯片被设置为为控制器模式时,CPU 在复位后将执行这段程序。
5.中断向量
F2812 中断向量可以映射到存储器中5个不同的位置。中断向量具体映射的位置由以下模式位/信号控制:
VMAP:VMAP 是状态寄存器 ST1 的第3位。可以通过写入 ST1 或使用 SETC/CLRC WMAP 指令修改此位的状态。复位时此位被设置为1。
M0M1MAP:M0M1MAP 是状态寄存器 ST1 的第11位。对于正常的 C28x 模式操作,应保留此外被设置为1。当 M0M1MAP = 0 时,交换 M0 与 M1 的位置,
M0M1MAP = 0 保留仅供 TI 测试使用。
ENPIE:ENPIE 是 PIECTRL 寄存器的第0位。在复位时此位被设置为0(禁止PIE)。可以通过写入 PIECRTL 寄存器修改该位的状态。
6.外部扩展接口
F2812 处理器的外部扩展接口(External Interface,XINTF)是用来扩展外部存储器或片外设备。
F2812 “Flash 引导模式”的启动流程(通常这也是产品产品产品最终的状态):
ENPIE
1.系统复位后总是跳到地址 0x3F FFC0 处,此处为 DSP 内部的 Boot-ROM;
2.地址 0x3F FFC0 处是一条跳转指令,执行后跳转到 0x3F FC00(Boot-ROM 里固化的引导代码),该段代码完成基本的初始化,并根据 GPIO 的状态选择 boot 模式;
3.F2812 支持多种引导模式(如:Flah引导装载、SCI引导装载、并行GPIO装载、SPI引导装载),对于 Flash 引导装载程序将跳转到 0x3F 7FF6(片内128K Flash的末端),通常在这里放入一条跳转指令,让 PC 指针指向代码的入口。
注意:用 TDS510 调试程序时,当我们 Load *.out 可执行文件后,调试器将会强制将 PC 指针指向代码段(.text)_c_int00 的入口地址。
——忠于梦想 勇于实践 linux_xpj@opencores.org
阅读(2611) | 评论(0) | 转发(0) |