工具/软件:TI C/C++编译器
在发布模式下、会发生编译错误(链接错误)。
我可以采取什么措施来避免此错误?
错误网格 a:
错误# 10430-D:".TI.ramfunc"段由__attribute__((ramfunc))或--ramfunc = on 生成、需要段规范才能运行。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:TI C/C++编译器
请通过在 C28x 编译器手册中搜索 标题为 "函数属性 "的子章节、然后搜索 ramfunc、获取有关 RAM 中函数的一些背景信息。
编译器选项--ramfunc=on 必须出现在版本编译配置中,并且在调试编译配置中缺失。
无论您是否使用--ramfunc,链接器命令文件都应具有与以下内容类似的行...
#ifdef __TI_Compiler_version__
#if __TI_Compiler_version__>=15009000
.TI.ramfunc:{}负载= FLASHD,
RUN = RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3、
load_start (_RamfuncsLoadStart)、
load_size (_RamfuncsLoadSize)、
load_end (_RamfuncsLoadEnd)、
run_start (_RamfuncsRunStart)、
run_size (_RamfuncsRunSize)、
run_end (_RamfuncsRunEnd)、
PAGE = 0、align (4)
#else
ramfuncs :LOAD = FLASHD,
RUN = RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3、
load_start (_RamfuncsLoadStart)、
load_size (_RamfuncsLoadSize)、
load_end (_RamfuncsLoadEnd)、
run_start (_RamfuncsRunStart)、
run_size (_RamfuncsRunSize)、
run_end (_RamfuncsRunEnd)、
PAGE = 0、ALIGN (4)
#endif
#endif
这些行从该链接器命令文件复制...
C:\ti\ccs1000\ccs\ccs_base\c2000\include\28075_flash_lnk.cmd
您的 CCS 安装在类似的位置具有相同的文件。
谢谢、此致、
乔治
部分
{
/*分配计划领域:*/
.cinit:> FLASHB PAGE = 0,ALIGN (4)
.pinit:> FLASHB,PAGE = 0,ALIGN (4)
.text:>> FLASHB | FLASHC | FLASHD | FLASHE PAGE = 0,ALIG(4)
codestart:> begin page = 0,align (4)
#ifdef __TI_Compiler_version__
#if __TI_Compiler_version__>=15009000
.TI.ramfunc:{}负载= FLASHD,
RUN = RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3、
load_start (_RamfuncsLoadStart)、
load_size (_RamfuncsLoadSize)、
load_end (_RamfuncsLoadEnd)、
run_start (_RamfuncsRunStart)、
run_size (_RamfuncsRunSize)、
run_end (_RamfuncsRunEnd)、
PAGE = 0、ALIGN (4)
其他
ramfuncs:load = FLASHD,
RUN = RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3、
load_start (_RamfuncsLoadStart)、
load_size (_RamfuncsLoadSize)、
load_end (_RamfuncsLoadEnd)、
run_start (_RamfuncsRunStart)、
run_size (_RamfuncsRunSize)、
run_end (_RamfuncsRunEnd)、
PAGE = 0、ALIGN (4)
#endif
#endif
/*分配未初始化的数据段:*/
.stack:>RAMM1 page = 1.
.ebss:>> RAMLS5 | RAMGS0 | RAMGS1 PAGE = 1.
.esysmem:> RAMLS5 PAGE = 1.
/*初始化段进入闪存*/
econst:>> FLASHF | FLASHG | FLASHH PAGE = 0,ALIGN (4)
.switch:> FLASHB PAGE = 0,ALIGN (4)
.reset:> reset,page = 0,type = DSECT //未使用,*/
}
/*
//============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
//文件结束。
//============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================