“线程:C2000WARE”中讨论的其它部件
大家好,
我正在处理一个我在不同系统中打开的项目,并且显示了此错误。 最初,我可以通过在“编译器”设置中将“将每个函数放在单独的小节(-gen_func_subsection-mo)中”设置为“开”来解决这个问题。 但现在又显示出我不知道为什么。 有足够的内存可用,因此不是问题所在。 我无法理解到底是什么问题?`有人能帮我吗?
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.
大家好,
我正在处理一个我在不同系统中打开的项目,并且显示了此错误。 最初,我可以通过在“编译器”设置中将“将每个函数放在单独的小节(-gen_func_subsection-mo)中”设置为“开”来解决这个问题。 但现在又显示出我不知道为什么。 有足够的内存可用,因此不是问题所在。 我无法理解到底是什么问题?`有人能帮我吗?
您好,
您可以在此处粘贴完整错误吗?
打开链接程序命令文件,然后查找.text 部分。 您可能需要在该部分中添加内存部分。 下面是详细解释 Linker Command 的链接。
http://software-dl.ti.com/ccs/esd/documents/sdto_cgt_Linker-Command-File-Primer.html
这就是我的控制台的样子:
警告#10207-D:将索引库“driverlib.lib”解析为“driverlib_coff.lib”,但未找到“driverlib_coff.lib”
警告#10210-D:创建默认大小为0x400的“.essmem”部分;使用-heap 选项更改默认大小
"./28004x_generic_ram_lnk.cmd",第76行:错误#10099-D:程序无法装入可用内存,或者该部分包含一个呼叫站点,该站点需要无法为本节生成的蹦床。对“.text”大小为0x3dd3的部分进行对齐/阻止的位置失败。 可用内存范围:
RAMLS0大小:0x800未使用:0x0最大孔:0x0
RAMLS1大小:0x800未使用:0x0最大孔:0x0
RAMLS2大小:0x800未使用:0x0最大孔:0x0
RAMLS3大小:0x800未使用:0x0最大孔:0x0
RAMLS4大小:0x800未使用:0x1最大孔:0x1
您是构建 COFF 格式还是 EBI 格式? 您是否需要以 COFF 格式构建? Driverlib_coff 库位于:
C:/ti/CC2000 /C2000Ware_4_00_00_00/driverlib/f28004x/driverlib/CCS/Debugge/driverlib_coff.lib
打开链接器命令文件并检查.text 部分
您可能需要添加另一个内存分区或通过组合创建较大的内存分区。
你好,Santosh,
谢谢你。 我的程序中的输出格式是传统的 COFF。 我包括了 driverlib_coff.lib,但警告消失了。 我检查了链接程序命令文件。 文本部分如您所述。 我对这个平台比较陌生,所以我不确定如何添加另一个记忆部分或对其进行体化,但我可以对此进行研究。 无论哪种情况,以前的错误现在都已更改为以下错误:
"./28004x_generic_ram_lnk.cmd",第76行:错误#10099-D:程序无法装入可用内存,或者该部分包含一个呼叫站点,该站点需要无法为本节生成的蹦床。对“.text”大小为0x3dd3的部分进行对齐/阻止的位置失败。 可用内存范围:
RAMLS0大小:0x800未使用:0x0最大孔:0x0
RAMLS1大小:0x800未使用:0x0最大孔:0x0
RAMLS2大小:0x800未使用:0x0最大孔:0x0
RAMLS3大小:0x800未使用:0x0最大孔:0x0
RAMLS4大小:0x800未使用:0x1最大孔:0x1
"./28004x_generic_ram_lnk.cmd",第94行:错误#10099-D:程序无法装入可用内存,或者该部分包含一个呼叫站点,该站点需要无法为本节生成的蹦床。对“.econtst”大小0x33d3页进行对齐/阻止的放置失败。 可用内存范围:
RAMLS5大小:0x800未使用:0xb4最大孔:0xb4
"./28004x_generic_ram_lnk.cmd",第95行:错误#10099-D:程序无法装入可用内存,或者该部分包含一个呼叫站点,该站点需要无法为本节生成的蹦床。对“.essmem”大小0x400页1执行对齐/阻塞定位失败。 可用内存范围:
RAMLS5大小:0x800未使用:0xb4最大孔:0xb4
"./28004x_generic_ram_lnk.cmd",第77行:错误#10099-D:程序无法装入可用内存,或者该部分包含一个呼叫站点,该站点需要无法为该部分生成的蹦床。对“.cinit”大小0x323页0进行对齐/阻塞的放置失败。 可用内存范围:
RAMM0大小:0x30a 未使用:0x300最大孔:0x300
在这里必须做些什么?
请浏览我之前提供的链接,该链接解释了如何修改链接器命令文件。 再次粘贴链接
http://software-dl.ti.com/ccs/esd/documents/sdto_cgt_Linker-Command-File-Primer.html
您可能希望将这些部分放在不同的内存中
第94/95行
您是否在所有部分都看到相同的错误? 您可以发布错误日志吗? 我不确定您的.text 大小为何过大。 您可能希望将某些函数放在不同的部分中。 请浏览链接
给你,
****项目 sci_ex4_echoback 的配置 CPU1_RAM 的构建****
"C:\\ti\\ccs1040\\CCs\utils\\bin\\gmake "-k -j 4 all -O
构建目标:“sci_ex4_echoback.out”
调用:C2000链接器
c:/ti/ccs1040/cs/tools/compiler/ti-CGT C2000 _21.6.0.9.LTS/bin/cl2000"-v28 -ml -mt -CLA_support=cl2 -fpute_support=fpu32 --TishMu 支持=tcumash0 --VCU 支持=vcu0 -Ooff ---ctrab_updic_-<ctrab_-<ctrack_-<ctrab_-<-<ctrab_-</ctrab_-</ctrack_ecnat_-<-<ctrab_-</ctrab_-</ctrab_c_-</ctrabi="-ctrack_ecnat_-</c_-ctrack_ecnat_-ctrab_ecnat_ecnat_ecn_-<-<-c_c_c_c_c_ecnat_ecnat_ecnat_-ctrack_ecnat_-c_c_c_c_ecnat_ecnat_ecnat_ecnat diag_wrap=off --display_error_number --xml_link_info="sci_ex4_echoback_linkInfo.xml"--entry_point=code_start --rom_model -o "sci_ex4_echoback."库/sci_ex4_echobacks.Libraries/""/exterbor/exterlinesor/exterfiles.tracks."/exactor/multilibor/exterfiles.exportor/exterfiles.tracks./exterfiles.tracks./edor/exterfiles.tracks./exterfiles.exterfiles/exterfiles/ches".
<linking>
警告#10210-D:创建默认大小为0x400的“.essmem”部分;使用-heap 选项更改默认大小
"./28004x_generic_ram_lnk.cmd",第94行:错误#10099-D:程序无法装入可用内存,或者该部分包含一个呼叫站点,该站点需要无法为本节生成的蹦床。对“.econtst”大小0x3059页1进行对齐/阻止的放置失败。 可用内存范围:
RAMLS6大小:0x800未使用:0x1最大孔:0x1
RAMLS7大小:0x800未使用:0x1最大孔:0x1
"./28004x_generic_ram_lnk.cmd",第76行:错误#10099-D:程序无法装入可用内存,或者该部分包含一个呼叫站点,该站点需要无法为本节生成的蹦床。对“.text”大小为0x3dd3的部分进行对齐/阻止的位置失败。 可用内存范围:
RAMLS0大小:0x800未使用:0x0最大孔:0x0
RAMLS1大小:0x800未使用:0x1最大孔:0x1
RAMLS2大小:0x800未使用:0x1最大孔:0x1
RAMLS3大小:0x800未使用:0x0最大孔:0x0
RAMLS4大小:0x800未使用:0x0最大孔:0x0
未定义的第一个引用
文件中的符号
--- -----
DataSensor::DataSensor()./ExternalLibraries/multisensor/multisensor.obj
_main C:\ti\ccs1040\CCs\tools\compiler\ti-CGT-C2000_21.6.0.LTs\lib\rts2800_fpu32_eh.lib<args_main.cob>
错误#10234-D:未解析的符号仍然存在
错误#10010:链接过程中遇到错误;未构建“sci_ex4_echoback.out”
>>编译失败
Makefile:185:目标“cI_ex4_echoback.out”的配方失败
gmake [1]:***[sci_ex4_echoback.ex]错误1
Makefile:181:目标“全部”的配方失败
gmake:***[所有]错误2.
****构建完成****
错误似乎相同。 我将浏览您提供的链接。
你好 Santosh,
我的初始错误已解决。 我不得不将分配更改为.text 和.econst。 我做了以下更改:
text:>> flash_BANK0_SEC0| flash_BANK0_SEC1|flash_BANK0_sec2|flash_BANK0_SEC3|flash_BANK0_SEC4,第=0页
econtst :>>RAMGS0|RAMGS1| RAMGS2, 第=1页
它现在就可以工作了。 这是对的吗? 除非内存要求发生变化,否则将来不会出现问题?