您好!
我正在使用具有外部128KB RAM 和 CCSV5.0的 TMS320F2812 (我已将代码从 CCSV3迁移到 CCS v5.0)。 如果我使用来自存储库的默认链接器文件(F2812 Flash.cmd)、则编译时没有错误、但 MICRO 在调试期间被复位。
如果我在 F2812 Flash.cmd 中按照我从 KT 收到的文档之一中指定的那样使用以下代码
内存
{
第0页:/*程序存储器*/
RAML0:origin = 0x008000、length = 0x000A00 /*片上 RAM 块 L0 */
ZONE2:origin = 0x080000、length = 0x010000 /* XINTF zone 2 */
FLASHALL:origin = 0x3D8000、length = 0x01E000
ENDFLASH:origin = 0x3F6000、length = 0x000004
CSM_RSVD:origin = 0x3F7F80,length = 0x000076 /*当 CSM 处于状态时全为0x0000的程序
使用。 */
begin:origin = 0x3F7FF6、length = 0x000002 /*用于"Boot to Flash"引导加载程序
测试模式。 */
csm_PWL:origin = 0x3F7FF8、length = 0x000008 /* FLASHA 中的 CSM 密码位置*/
ROM:origin = 0x3FF000,length = 0x000FC0 /* Boot ROM Available if MP/MCN=0 */
复位:origin = 0x3FFFC0,length = 0x000002 /*启动 ROM 的一部分(MP/MCN=0 )或
XINTF 区域7 (MP/MCN=1)*/
VECTORS : origin = 0x3FFFC2, length = 0x00003E /* part of boot ROM (MP/MCN=0 )或
XINTF 区域7 (MP/MCN=1)*/
第1页:/*数据存储器*/
ZONE2DAT:origin = 0x090000、length = 0x010000 /* XINTF zone 2 data */
RAMM0:origin = 0x000000,length = 0x000400 /*片上 RAM 块 M0 */
RAMM1:origin = 0x000400,length = 0x000400 /*片上 RAM 块 M1 */
RAML1:origin = 0x008A00、length = 0x0015F7 /*片上 RAM 块 L1 */
TST_LOC:origin = 0x009FF8、length = 9 /*用于 RAM 状况测试*/
RAMH0:origin = 0x3F8000,length = 0x002000 /*片上 RAM 块 H0 */
}
/*将段分配给内存块。
注:
DSP28_CodeStartBranch.asm 中的 codestart 用户定义段用于重定向代码
引导至闪存时执行
ramfuncs 的用户定义的部分、用于存储将从闪存复制到 RAM 中的函数
*/
部分
{
/*分配计划领域:*/
.cinit:> FLASHALL page = 0
.pinit :> FLASHALL 页面= 0
.text:> FLASHALL page = 0
配置:> FLASHALL PAGE = 0
initXintf:> FLASHALL page = 0
codestart :>开始页面= 0
ramfuncs:{Filter.lib < iir32.obj>(.text)、fft.lib < cfft32i.obj、cfft32c.obj、rfft32aq.obj、rfft32w.obj、
rfft32s.obj、rfft32m.obj >(.text)}
负载= FLASHALL、
RUN = RAML0、
Load_start (_RamfuncsLoadStart)、
Load_End (_RamfuncsLoadEnd)、
RUN_START (_RamfuncsRunStart)、
RUN_END (_RamfuncsRunEnd)、
PAGE = 0
csmpasswds :> csm_PWL page = 0
csm_rsvd :> csm_rsVD page = 0
iirfilt :> RAMM1页面= 1
FFTipcb1A align (1024 ):{}>RAMH0 page = 1
FFTipcb1B align (1024 ):{}>RAMH0 page = 1
FFTipcb2A align (1024 ):{}>RAMH0 page = 1
FFTipcb2B align (1024 ):{}>RAMH0 page = 1
FFTtf > FLASHALL PAGE = 0
FLASH_SUM:>ENDFLASH PAGE = 0
/*分配未初始化的数据段:*/
.stack
.ebss
:> RAMM0 page = 1, end(_TopOfStack )
:> RAML1页面= 1
.esysmem :> RAMH0页面= 1
TstLoc :> TST_LOC PAGE = 1
FSDATA :> RAML1页面= 1
/*初始化段进入闪存*/
/*要使 SDFlash 对这些单元进行编程,它们必须被分配到 PAGE 0 */
econst:> FLASHALL PAGE = 0
.switch:> FLASHALL PAGE = 0
/*分配 IQ 数学领域:*/
IQMath :> FLASHALL PAGE = 0 /*数学代码*/
IQmathTables :> ROM page = 0, type = NoLoad /* Math Tables in ROM */
/*.reset 是编译器使用的标准段。 它包含*/
/* C 代码的_c_int00起始地址。 /*
/*使用引导 ROM 时、此段和 CPU 矢量*/
不需要/*表。 因此、此处将默认类型设置为*/
/* DSECT */
.reset:> RESET、PAGE = 0、TYPE = DSECT
引导程序:>引导程序页面= 0,类型= DSECT
}
我在编译时遇到以下错误代码-
描述 资源 路径 位置 类型
#10099-D 程序无法装入可用内存。 针对".stack"大小0x4b0页1运行对齐/分块失败的放置。 可用内存范围: F2812 flash.cmd /Exacta 行149 C/C++问题
需要帮助我解决相同的问题。 如果需要任何其他信息、请 提前告知我、并表示感谢
此致、
苏迪尔·扬格拉