主题中讨论的其他器件:HALCOGEN、 UNIFLASH
大家好、我有一个在 https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/917572/compiler-awr1843-interrupt-vector-table-missing-in-hex-file 中解释的常见问题。
我们正在尝试迁移到基于 cmake 的解决方案、并成功地使用工具链文件编译我们已经在运行的应用程序并将其与 cmake 和 armcl 链接起来。
在尝试运行应用程序时、我们发现.intvecs 段缺失。
为.c 文件执行的编译命令行为:
C:\ti\ccs930\ccs\tools\compiler\ti-cgt-arm_18.12.4.LTS \bin\armcl.exe --compile_only --c_file= --include_path=... --include_path=C:\ti\ccs930\ccs\tools\compiler\ti-cgt-arm_18.12.4.sp\include -mv7R5 --code_state=32 --float_support=VFPv3D16 --define=vfpfpvfp_support_=1 --definit=_us_example_subs=v-reg=-out_subs=-out_subs=v-out_exion_is=v-out_is=v-out_subs=v-out_example_subs=v-out_is=-out_subs=v-code_prob=v-out_subs=v-out_subs=v-out_is=v-out_subs=v-out_subs=v-out_is=v-out_subs=v-code_display_subs=v-out_ex-
为.asm 文件执行的编译命令行为:
C:\ti\ccs930\ccs\tools\compiler\ti-cgt-arm_18.12.4.LTS \bin\armcl.exe --compile_only --asm_file=--include_path=... -mv7R5 --code_state=32 --float_support=VFPv3D16 --define=_vfp_support_=1 --define=external_sp_init --define=sl_REG_INIT_VAL_VAL=0U --c99 --enum_warning=ms_about_subs=out-subs=out_subsection-compile_display-subs=subs=subs=subs=subsection_about_subs=subs=subs=subsection-out_subs=subs=subs=-out_subs=-out_subsection-out_subs=-out_subs=-out_subs=-out-out_subsection.ab_subs=-out-out
这两个代码似乎都已正确编译。
链接 cmd 行是
cmd.exe /C"CD。 && C:\ti\ccs930\ccs\tools\compiler\ti-cgt-arm_18.12.4.LTS \bin\armcl.exe -mv7R5 --code_state=32 --float_support=VFPv3D16 --define=VFP_support_=1 --define=_off_map=vulat_ex-out_isd=v2=v_map_example-example-subs=v=v=v_example-reg=v_is=v=v=v_example-out_is=v=v=v_us_example-reg=v=v-out_is=v-reg=v-out-out_subs=v-out-out_subs=v-out_subs=v-reg=v-out-out-out_subs=v-out-out_subs=v-reg=v C:\ti\ccs930\ccs\tools\compiler\ti-cgt-arm_18.12.4.LTS\lib\libc.a && cd ."
the linker cmd file is:
//*********
//链接器命令文件
//*********
//此文件包含要使用的链接器选项
//它还配置 ECC、内存和段
--retain="*(.intvecs)"
--reread_libs
--warn_sections
--ecc=on
--xml_link_info=_linkInfo.xml
-rom_model
-be32.
--warn_sections
-rom_model
--stack_size=0x8000
--heap_size=0x8000
//--unused_section_elimination=on
存储器
{
引导程序 (X) :origin=0x00000000 length=0x00000020 vfill =0xFFFF
FLASH0 (RX):origin=0x00000020 length=0x003FFFE0 vfill = 0xffffffff
堆栈 (RW):origin=0x08000000 length=0x0000b800
RAM (RW):origin=0x0800b800 length=0x00074800
ECC_VEC (R) :origin=0xf0400000 length=0x4 ECC={ input_range=vectors }
ECC_FLA0 (R) :origin=0xf0400000 + 0x4 length=0x7FFFC ECC={INPUT_RANGE=FLASH0}
}
ECC
{
algo 名称:address_mask = 0xfffffff8
汉明_MASK = R4
奇偶校验掩码= 0x0c
镜像= F021
}
部分
{
.intvecs:{}>向量
.text align (32):{}> FLASH0
.const align (32):{}> FLASH0
.cinit align (32):{}> FLASH0
.pinit align (32):{}> FLASH0
.bss :{}> RAM
.data :{}> RAM
.sysmem :{}>RAM
}
在 asm 文件中定义了 intvect、如下所示:
.sect ".intvecs"
ARM
;------------------------------------------------------------------
;中断例程的导入引用
.ref _c_int00
.ref _undef
.ref _Svc
.ref _prefetch
.ref _dabort
.ref phantomInterrupt
.def resetEntry
;------------------------------------------------------------------
;中断向量
resetEntry
b _c_int00
b _undef
b _Svc
b 预取(_P)
b _dabort
b 相位中断
LDR PC、[PC、#-0x1b0]
LDR PC、[PC、#-0x1b0]
映射文件不包括 intvecs 段:
秘书长的报告
TI ARM 连接器 PC v18.12.4
秘书长的报告
>>链接星期一1月 9日16:59:53 2023
输出文件名: <.out>
入口点符号:"_c_int00" 地址:0001c88c
存储器配置
名称 源 长度 使用 未使用 的属性 填充
------------ ---- ------ ---- ---- --------
Vectors 00000000 00000020 00000000 00000020 X (ffFFFF)
FLASH0 00000020 003fffe0 0002422b 003db5 R X (ffFFFF)
堆栈 08000000 0000b800 00000000 0000b800 RW
RAM 0800b800 00074800 0000acec 00069b14 RW
ECC_VEC f0400000 00000004 00000004 00000000 R
ECC_FLA0 f0400004 0007fffc 0007fffc 00000000 R
段分配映射
运行 origin load origin length init length atts members
------ ------ ------ ------ ---- ----
00000020 00000020 00021814 00021814 r-x
00000020 00000020 00021814 00021814 r-x .text
00021840 00021840 0000294f 0000294f r--
00021840 00021840 0000294f 0000294f r-.const
000241a0 000241a0 000000c8 000000c8 r--
000241a0 000241a0 000000c8 000000c8 r-.cinit
0800b800 0800b800 0000acf0 00000000 rw-
0800b800 0800b800 00009734 00000000 rw-.bss
08014f38 08014f38 000015b8 00000000 rw-.data
f0400000 f0400000 00080000 00080000 r--
f0400000 f0400000 00000004 00000004 r-.ecc0
f0400004 f0400004 0007fffc 0007fffc r-.ecc1
如上一帖子中所述定义_intvecs 对我没有帮助。 如果有任何线索、我会非常感激!
提前感谢

