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.
工具/软件:Code Composer Studio
尊敬的 TI 团队:
我 在"释放"模式下遇到运行时问题。 当我的所有代码在闪存存储器空间中运行时、我的代码的运行速度太慢、无法正常工作。
因此、我在*。cmd 文件中插入了以下行:
.TI.ramfunc :load = flash_BANK0_SEC1_2,
运行= RAMLS3456、
load_start (_RamfuncsLoadStart)、
load_size (_RamfuncsLoadSize)、
load_end (_RamfuncsLoadEnd)、
run_start (_RamfuncsRunStart)、
run_size (_RamfuncsRunSize)、
run_end (_RamfuncsRunEnd)、
PAGE = 0、ALIGN (4)
.TI.ramfunc2 :load = flash_BANK0_SEC3_4、
运行= RAMGS2、
load_start (_Ramfuncs2LoadStart)、
load_size (_Ramfuncs2LoadSize)、
load_end (_Ramfuncs2LoadEnd)、
run_start (_Ramfuncs2RunStart)、
run_size (_Ramfuncs2RunSize)、
run_end (_Ramfuncs2RunEnd)、
PAGE = 0、ALIGN (4)
".TI.ramfunc"和".TI.ramfunc2"用于时间关键型函数、而".TI.ramfunc2"用于某些用户函数。
在这一更改之后、我的应用程序大部分时间都能正常工作、但有时测量过程中的计算值 不正确。
如果我的应用程序在调试模式下运行(所有代码在 RAM 中执行)、计算值始终正确。 因此、我怀疑我也必须将 rts2800_fpu32.lib 代码复制到 RAM 部分。
我尝试使用*。cmd 文件中的以下代码行执行此操作:
RTS2800_FPU32:
{
rts2800_fpu32.lib (.econst)
rts2800_fpu32.lib (.text)
} LOAD = FLASH_BANK0_SEC7、
运行= RAMGS3、
load_start (_Ramfuncs3LoadStart)、
load_size (_Ramfuncs3LoadSize)、
load_end (_Ramfuncs3LoadEnd)、
run_start (_Ramfuncs3RunStart)、
run_size (_Ramfuncs3RunSize)、
run_end (_Ramfuncs3RunEnd)、
PAGE = 0、ALIGN (4)
但我收到以下错误消息:
"./28004x_general_flash_lnk.cmd"、行114:错误#10008-D:找不到文件"rts2800_fpu32.lib"
我认为库的路径是正确的。
由于没有*。cmd 文件中的错误行、rts2800_fpu32.lib 代码被链接至以下闪存段:
text.1 0 00081f50 000010af
00081f50 0000057c measure.obj (.text)
000824cc 000004e8 host.obj (.text)
000829b4 00000495 f28004x_defaultisr.obj (.text:retain)
00082e49 00000107 global.obj (.text)
00082f50 0000009c rts2800_fpu32.lib:fd_add28.asm.obj (.text)
00082fec 00000010 f28004x_pievect.obj (.text)
00082ffc 00000002 rts2800_fpu32.lib:pre_init.c.obj (.text)
00082ffe 00000001 :startup.c.obj (.text)
text.2 0 00084cb4 0000034b
00084cb4 000002f5 f28004x_sysctrl.obj (.text)
00084fa9 00000056 rts2800_fpu32.lib:boot28.asm.obj (.text)
text.3 0 00085298 00000d64
00085298 00000487 test.obj (.text)
0008571f 0000036e f28004x_dma.obj (.text)
00085a8d 000002df test.obj (.text:retain)
00085d6c 00000251 rts2800_fpu32.lib:e_log10.c.obj (.text)
00085fbd 00000031 :atoi.c.obj (.text)
00085FEE 0000000e :fd_sub28.asm.obj (.text)
text.4 0 00086660 00000999
00086660 00000222 f28004x_gpio.obj (.text)
00086882 00000204 hv.obj (.text)
00086a86 000000f5 main.obj (.text)
00086b7b 000000ef adc.obj (.text)
00086c6a 000000d1 temperure.obj (.text)
00086d3b 000000c5 f28004x_spi.obj (.text)
00086e00 000000b5 VCA.obj (.text)
00086eb5 0000008b rts2800_fpu32.lib:fd_div28.asm.obj (.text)
00086f40 00000083 :fd_mpy28.asm.obj (.text)
00086fc3 0000002d SPI.obj (.text)
00086ff0 00000009 rts2800_fpu32.lib:_lock.c.obj (.text)
text.5 0 00087000 00000436
00087000 0000007f parameter.obj (.text)
0008707f 00000072 dma.obj (.text)
000870F1 00000061 f28004x_adc.obj (.text)
00087152 0000005c f28004x_cputimers.obj (.text)
000871ae 00000055 激光.obj (.text)
00087203 00000046 hvPwm.obj (.text)
00087249 0000002a rts2800_fpu32.lib:fd_cmp28.asm.obj (.text)
00087273 0000002a :l_div28.asm.obj (.text)
0008729d 00000029 :exit.c.obj (.text)
000872c6 00000028 f28004x_PIECTRL.obj (.text)
000872ee 00000024 CPLD .obj (.text)
00087312 00000024 rts2800_fpu32.lib:cpy_tbl.c.obj (.text)
00087336 00000023 :fd_tofsfpu32.asm.obj (.text)
00087359 0000001e :memcpy.c.obj (.text)
00087377 0000001d :I_tofd28.asm.obj (.text)
00087394 0000001c :fs_tofdfpu32.asm.obj (.text)
000873b0 0000001c :l_tofd28.asm.obj (.text)
000873cc 0000001a error.obj (.text)
000873e6 00000019 rts2800_fpu32.lib:args_main.c.obj (.text)
000873ff 00000018 :LL_aox28.asm.obj (.text)
00087417 00000016 :ul_tofd28.asm.obj (.text)
0008742d 00000009 :fd_否定28.asm.obj (.text)
你能告诉我我的错误吗?
此致、
霍斯特埃西格
您能告诉我该怎么办吗?
您好!
您能否尝试提供 rts2800_fpu32.lib 路径的完整路径、例如 c:\ti\ccs910\ccs\tools\compiler\ti-cgt-C2000-18.12.2.LTS \lib\rts2800_fpu32.lib?
在"文件搜索路径"的项目属性中、您可以找到提供的库名称和路径。 如果库不在默认工程文件夹中、则需要在链接器命令文件中提及类似的路径。
希望这对您有所帮助。
谢谢、
Katta
您好!
在定义库的段时、需要使用如下所示的--library 选项。 有关更多详细信息、请参阅 TI 连接器命令文件入门。
http://software-dl.ti.com/ccs/esd/documents/sdto_cgt_Linker-Command-File-Primer.html
RTS2800_FPU64: { --library=rts2800_fpu64_eabi.lib (.text) }load = FLASH3、 run = RAMGS3、 load_start (_Ramfuncs3LoadStart)、 load_size (_Ramfuncs3LoadSize)、 load_end (_Ramfuncs3LoadEnd)、 run_start (_Ramfuncs3RunStart)、 run_size (_Ramfuncs3RunSize)、 run_end (_Ramfuncs3RunEnd)、 align (4)
谢谢
Vasudha
您好!
问题不是路径。 我在另一篇文章中发现一个提示、即我必须将一些代码保留在闪存中、并且只复制其余函数。
我已通过插入到*。cmd 文件中的以下行来管理此操作:
rts2800_fpu32_FLASH:> FLASH_BANK0_sec7、page = 0
{
rts2800_fpu32.lib (.text)
rts2800_fpu32.lib (.text)
rts2800_fpu32.lib (.text)
rts2800_fpu32.lib (.text)
rts2800_fpu32.lib (.text)
}
rts2800_fpu32_RAM: load = flash_BANK0_sec7,
运行= RAMLS2、
load_start (_fpuLibLoadStart)、
load_size (_fpuLibLoadSize)、
Load_End (_FpuLibLoadEnd)、
RUN_START (_FpuLibRunStart)、
{
rts2800_fpu32.lib <*>(.text)
}
run_size (_fpuLibRunSize)、
RUN_END (_FpuLibRunEnd)、
PAGE = 0、ALIGN (4)
但不幸的是、我的运行时问题已经存在。
我现在尝试复制 RAM 部分中的所有其他函数。
我希望我能找到负责运行时问题的函数。
此致、
霍斯特埃西格