工具/软件:Code Composer Studio
您好!
我在使用 armlnk.exe 时遇到了一种奇怪的行为、希望有人能帮我解决这个问题。
我想用预定义的图形填充存储器的未使用区域、但一旦我尝试使用填充选项、链接器会报告错误、甚至桩模块:
内部错误:C:\ti\ccsv7\tools\compiler\ti-cgt-arm_16.9.4.LTS \bin\armlnk.exe 遇到未处理的异常 、这是由 TI 链接器中的缺陷引起的。 TI 客户支持可能会建议解决方法来避免这种情况。 升级到编译器的最新版本可能会解决此问题。 在 E2E 支持论坛中联系 TI、网址 为 http://e2e.ti.com 的"Development Tools"、"TI C/C++ Compiler"下。 请参阅标题 为"提交问题"的链接。 我们需要看到整个错误消息和完整的可重现 测试案例、包括所有命令行选项。 包含 用于链接程序的所有目标文件、库和链接器命令文件。 >>编译失败
如果没有填充选项、一切都很好、但我确实有一些未初始化的区域。
以下是两 个链接器文件的内容:
1. LinkFile.cmd -不填充存储器、工作正常
/*------------------ */
/*链接器设置 */
--retain="*(.intvecs)"
/*--------------- */
/*内存映射 */
MEMORY
{
矢量 (x) :origin=0x00000000 length=0x00000020
BOOT_FLASH (Rx):origin=0x00000040 length=0x00001FC0
Loader_FLASH (RX):origin=0x00002000 length=0x00006000
APP_LENGTH (R) :origin=0x00008000 length=0x00000004
APP_CRC (R) :origin=0x00008004 length=0x00000004
APP_ID (R) :origin=0x00008008 length=0x00000004
APP_PN0 (R) :origin=0x0000800C length=0x00000004
APP_PN1 (R) :origin=0x00008010 length=0x00000004
APP_PN2 (R) :origin=0x00008014 length=0x00000004
APP_PN3 (R) :origin=0x00008018 length=0x00000004
APP_VECTORS (Rx):origin=0x0000801C length=0x00000024
APP_FLASH (Rx):origin=0x00008040 length=0x00017FC0
Unused_flash (RX):origin=0x00020000 length=0x00040000
堆栈 (RW):origin=0x08000000 length=0x00001500
RAM (RW):origin=0x08001500 length=0x00006B00
Gio_regs (RW):origin=0xFFF7BC00 length=0x00000100
MIBADC_regs (RW):origin=0xFFF7C000 length=0x00000200
DCAN1_regs (RW):origin=0xFFF7DC00 length=0x00000200
DCAN2_regs (RW):origin=0xFFF7DE00 length=0x00000200
FLASH_REGS (RW):origin=0xFFF87000 length=0x00001000
SCI_regs (RW):origin=0xFFF7E400 length=0x00000100
SPI1_regs (RW):origin=0xFFF7F400 length=0x00000200
SPI2_regs (RW):origin=0xFFF7F600 length=0x00000200
SPI3_regs (RW):origin=0xFFF7F800 length=0x00000200
RTI_regs (RW):origin=0xFFFFFF00 length=0x00000100
IOMM_regs (RW):origin=0xFFFFFFEA00 length=0x00000200
VIM_regs (RW):origin=0xFFFFFF00 length=0x00000100
VIM_RAM (RW):origin=0xFFF82000 length=0x00000400
PCR_REGS (RW):origin=0xFFFFFFE000 length=0x00000100
sys1_regs (RW):origin=0xFFFFFF00 length=0x00000100
SYS2_regs (RW):origin=0xFFFFFFE100 length=0x00000100
ESM_REGS (RW):origin=0xFFFFFF500 length=0x00000100
TCRAM1_REGS (RW):origin=0xFFFFFF800 length=0x00000100
TCRAM2_regs (RW):origin=0xFFFFFF900 length=0x00000100
}/*-------------------------------------------------------
*/
/*段配置 */
SECTIONS
{
.intvecs:align (16){}>向量
.text :align (16){}> app_flash
.const :align (16){}> app_flash
.cinit :align (16){}> app_flash
.pinit :align (16){}> app_flash
.bss :{}> RAM
.data :{}> RAM
.sysmem:{}>RAM
Bootcode :{}> boot_flash
CANLoader:{}> loader_flash
/*将应用程序的"a_MC"硬编码为从链接器文件到可执行文件*/
AppID_TO_ROM:> APP_ID Fill = 0x415F4D43 {。 +=(0x4);}
GioRegsFile :{}>GIO_regs, type = NOINIT
MibAdcRegsFile:{}>MIBADC_REGS, type = NOINIT
DCan1RegsFile :{}> DCAN1_REGS, type = NOINIT
DCan2RegsFile :{}> DCAN2_regs, type = NOINIT
FlashRegsFile :{}> flash_regs、 type = NOINIT
SciRegsFile :{}> SCI_REGS、 type = NOINIT
Spi1RegsFile :{}> SPI1_regs、 type = NOINIT
Spi2RegsFile :{}> SPI2_regs、 type = NOINIT
Spi3RegsFile :{}> SPI3_regs、 type = NOINIT
RtiRegsFile :{}> RTI_regs、 type = NOINIT
IommRegsFile :{}> IOMM_regs、 type = NOINIT
VimRegsFile :{}>VIM_REGS, type = NOINIT
VimRamFile :{}> VIM_RAM, type = NOINIT
PcrRegsFile :{}> pcr_regs、 type = NOINIT
Sys1RegsFile :{}>SYS1_regs, type = NOINIT
Sys2RegsFile :{}> SYS2_regs, type = NOINIT
EsmRegsFile :{}> ESM_REGS, type = NOINIT
TcRam1RegsFile:{}> TCRAM1_REGS, type = NOINIT
TcRam2RegsFile:{}> TCRAM2_regs, 类型= NOINIT
}
2 LinkFile_With fill.cmd -填充存储器时不起作用
/*------------------ */
/*链接器设置 */
--retain="*(.intvecs)"
/*--------------- */
/*内存映射 */
MEMORY
{
矢量 (x) :origin=0x00000000 length=0x00000020
BOOT_FLASH (Rx):origin=0x00000040 length=0x00001FC0
Loader_FLASH (RX):origin=0x00002000 length=0x00006000
APP_LENGTH (R) :origin=0x00008000 length=0x00000004
APP_CRC (R) :origin=0x00008004 length=0x00000004
APP_ID (R) :origin=0x00008008 length=0x00000004
APP_PN0 (R) :origin=0x0000800C length=0x00000004
APP_PN1 (R) :origin=0x00008010 length=0x00000004
APP_PN2 (R) :origin=0x00008014 length=0x00000004
APP_PN3 (R) :origin=0x00008018 length=0x00000004
APP_VECTORS (Rx):origin=0x0000801C length=0x00000024
APP_FLASH (Rx):origin=0x00008040 length=0x00017FC0 fill=0xFFFFFFFF
Unused_flash (RX):origin=0x00020000 length=0x00040000
堆栈 (RW):origin=0x08000000 length=0x00001500
RAM (RW):origin=0x08001500 length=0x00006B00
Gio_regs (RW):origin=0xFFF7BC00 length=0x00000100
MIBADC_regs (RW):origin=0xFFF7C000 length=0x00000200
DCAN1_regs (RW):origin=0xFFF7DC00 length=0x00000200
DCAN2_regs (RW):origin=0xFFF7DE00 length=0x00000200
FLASH_REGS (RW):origin=0xFFF87000 length=0x00001000
SCI_regs (RW):origin=0xFFF7E400 length=0x00000100
SPI1_regs (RW):origin=0xFFF7F400 length=0x00000200
SPI2_regs (RW):origin=0xFFF7F600 length=0x00000200
SPI3_regs (RW):origin=0xFFF7F800 length=0x00000200
RTI_regs (RW):origin=0xFFFFFF00 length=0x00000100
IOMM_regs (RW):origin=0xFFFFFFEA00 length=0x00000200
VIM_regs (RW):origin=0xFFFFFF00 length=0x00000100
VIM_RAM (RW):origin=0xFFF82000 length=0x00000400
PCR_REGS (RW):origin=0xFFFFFFE000 length=0x00000100
sys1_regs (RW):origin=0xFFFFFF00 length=0x00000100
SYS2_regs (RW):origin=0xFFFFFFE100 length=0x00000100
ESM_REGS (RW):origin=0xFFFFFF500 length=0x00000100
TCRAM1_REGS (RW):origin=0xFFFFFF800 length=0x00000100
TCRAM2_regs (RW):origin=0xFFFFFF900 length=0x00000100
}/*-------------------------------------------------------
*/
/*段配置 */
SECTIONS
{
.intvecs:align (16){}>向量
.text :align (16){}> app_flash
.const :align (16){}> app_flash
.cinit :align (16){}> app_flash
.pinit :align (16){}> app_flash
.bss :{}> RAM
.data :{}> RAM
.sysmem:{}>RAM
Bootcode :{}> boot_flash
CANLoader:{}> loader_flash
/*将应用程序的"a_MC"硬编码为从链接器文件到可执行文件*/
AppID_TO_ROM:> APP_ID Fill = 0x415F4D43 {。 +=(0x4);}
GioRegsFile :{}>GIO_regs, type = NOINIT
MibAdcRegsFile:{}>MIBADC_REGS, type = NOINIT
DCan1RegsFile :{}> DCAN1_REGS, type = NOINIT
DCan2RegsFile :{}> DCAN2_regs, type = NOINIT
FlashRegsFile :{}> flash_regs、 type = NOINIT
SciRegsFile :{}> SCI_REGS、 type = NOINIT
Spi1RegsFile :{}> SPI1_regs、 type = NOINIT
Spi2RegsFile :{}> SPI2_regs、 type = NOINIT
Spi3RegsFile :{}> SPI3_regs、 type = NOINIT
RtiRegsFile :{}> RTI_regs、 type = NOINIT
IommRegsFile :{}> IOMM_regs、 type = NOINIT
VimRegsFile :{}>VIM_REGS, type = NOINIT
VimRamFile :{}> VIM_RAM, type = NOINIT
PcrRegsFile :{}> pcr_regs、 type = NOINIT
Sys1RegsFile :{}>SYS1_regs, type = NOINIT
Sys2RegsFile :{}> SYS2_regs, type = NOINIT
EsmRegsFile :{}> ESM_REGS, type = NOINIT
TcRam1RegsFile:{}> TCRAM1_REGS, type = NOINIT
TcRam2RegsFile:{}> TCRAM2_regs, 类型= NOINIT
}
如果需要一些其他信息、请告诉我、并提前感谢。