Thread 中讨论的其他器件:controlSUITE
工具/软件:TI C/C++编译器
您好!
我已经制作了一个定制 PCB 板、其中包含 F28M35。 我需要更多的 RAM、因此我在设计中添加了一个64 MB 的外部 RAM。
我一直在使用这个外部 RAM、通过将数组的起始位置指向 EP_BASE_ADDRESS (0x6000 0000)来存储一些大数组、在 主函数中、我正在为 SD RAM 初始化 EPI 模块、这一切正常。
现在、我还想为一些全局和局部静态变量在外部 RAM 上分配空间、为此、我尝试将外部 RAM 添加到.cmd 文件中、并在 RAM 中分配不同的变量
===========================================================================================================================================
存储器
{
/*闪存中的起始地址(引导地址)*/
FLASH_boot (rwx):origin = 0x00200030、length = 0x0004
闪存(rwx):origin = 0x00200034,length = 0x0007FF9C
/*包括 C0-C1-C2-C3 SRAM */
C03SRAM (rwx):origin = 0x20000000,length = 0x8000
/*包括 S0-S1-S2 SRAM */
S02SHRAM (rwx):origin = 0x20008000,length = 0x6000
/*包括 S5-S6-S7 SRAM */
S57SHRAM (rwx):origin = 0x20012000,length = 0x6000
/*包括 C28至 M3 MSG SRAM
Shoudld 可用于将消息从 C28发送到 M3 */
CTOMMSGRAM (R):origin = 0x2007F000,length = 0x0800
/*包括 M3到 C28 MSG SRAM
应用于将消息从 M3发送到 C28 */
MTOCMSGRAM (RW):origin = 0x2007F800,length = 0x0800
/*外部 RAM 组*/
EXT_RAM_Bank_1:origin = 0x60000000、length = 0x00F42400
EXT_RAM_Bank_2:origin = 0x60F42400,length = 0x00F42400
EXT_RAM_Bank_3:origin = 0x61E84800,length = 0x00F42400
EXT_RAM_Bank_4:origin = 0x62DC6C00,length = 0x00F42400
}
部分
{
/*分配计划领域:*/
.text:> FLASH //代码
.cinit:>闪存
.pinit:> FLASH
binit:> FLASH
init_array:> FLASH
/*初始化段进入闪存*/
.const:> FLASH
/*分配未初始化的数据段:*/
.data :> S02SHRAM
.bss:> C03SRAM /*静态分配的变量。 全局变量是其中的一部分。 *
.sysmem:> C03SRAM
.stack:> S02SHRAM /*用于局部变量、函数参数和返回地址的空间*/
.cio:> C03SRAM
.neeardata :> C03SRAM
.rodata:> C03SRAM
.args:> C03SRAM
SDCardIO_mod:> EXT_RAM_Bank_1
GlobalVars_mod:> S57SHRAM
}
__STACK_TOP =__STACK + 256;
===========================================================================================================================================
一旦我这么做、我的代码就停止工作。
在读取某个位后、我必须知道我还必须在.gel 文件中定义外部 RAM 并在那里进行初始化、因为要在.cmd 文件中使用该 RAM、应该在执行 main 函数之前对其进行读取和初始化。
因此、我在.gel 文件中添加了地址:
===========================================================================================================================================
GEL_MapAddStr (0x60000000、0、0x04000000、"R|W|EX"、0);
===========================================================================================================================================
但是、我没有获得任何仅将其初始化为.gel 文件的参考。
请向我推荐一些参考文档、或者如何修改.gel 文件以初始化外部 RAM (EPI 模块)。?
谢谢
Shubham