最近用F28335做仿真时,内部RAM的空间不够用,东拼西凑搞出了22K,
RAML0 : origin = 0x008000, length = 0x000800
RAML1_5 : origin = 0x008800, length = 0x005800
.text : > RAML1_5, PAGE = 0
结果发现还是不够,咋办?
外扩啊,28335所有存储设备都共用一条数据总线,理论上式行得通的,
正好板子的Zone 6 区连接了一块IS61LV25616AL
于是乎,我在CMD文件中新定义了一块64K区域用于存放.text段,足够挥霍了吧!!
ZONE6 : origin = 0x100000, length = 0x010000
.text : > RAML1_5, PAGE = 0
但是......程序加载的时候问题出现了!
分析原因,应该是在程序加载之前,外部读写总线没有被使能,
解决办法:
找到工程中用到的.gel文件,在CCS安装目录下找到打开他,
找到以下代码
OnReset(int nErrorCode)
{
if (GEL_IsInRealtimeMode()) /* If in real-time-mode */
{
}
else /* Put device in C28x mode */
{
C28x_Mode();
}
Unlock_CSM();
ADC_Cal();
// XINTF_Enable(); /* Uncomment to enable XINTF on Reset */
}
把最后一行的注释去掉,重新编译,
加载成功!!!
爽歪歪