故障现象
由于DSP程序在RAM比Flash运行速度更快,所以一般会把中断里调用的程序搬运至RAM里运行。但是如果RAM里的程序占用的内存超过配置的ramfunc的长度,则会提醒内存溢出。今日,我再在28069上编译程序时,遇到了如下错误提示:
program will not fit into available memory. run placement with
alignment/blocking fails for section “ramfuncs” size 0x12a4 page 0.
Available memory ranges: F28069.cmd /SCRACController_28069_V30 line
131 C/C++ Problem
故障分析
上述故障信息大意是:程序需要的memory不足,不能将长度为0x12a4的程序搬运至RAM里运行, 我用的cmd文件名为F28069.cmd, 在此文件的 131行能看到故障位置,找到131行如下:
其中:
LOAD = FLASHD
指的是现在程序在Flash中的位置段RUN = RAML0
指的是接收程序的RAM的位置段
打开编译后的map文件可以看到下面的信息
name origin length used unused attr fill
---------------------- -------- --------- -------- -------- ---- --------
PAGE 0:
RAML0 00008000 00001200 00000000 00001200 RWIX
FLASHD 003e800