如何从 startup.s 导入标识符(到 main.c)
How to import identifier from startup.s (to main.c)
我想用应用程序数据(设备信息)定位一个 table 常量值,最好在向量 table 的末尾。
在 startup.s
中,我执行以下操作:
MODULE ?cstartup
;; Forward declaration of sections.
SECTION CSTACK:DATA:NOROOT(3)
SECTION .intvec:CODE:NOROOT(2)
EXTERN __iar_program_start
EXTERN SystemInit
PUBLIC __vector_table
PUBLIC _InfoEqData
DATA
__vector_table
DCD sfe(CSTACK)
DCD Reset_Handler ; Reset Handler
/* ............... */
DCD LCD_IRQHandler ; LCD
DCD USB_IRQHandler ; USB
__vector_table_end
_InfoEqData EQU __vector_table_end
在 main.c
中,我执行以下操作:
#pragma location = _InfoEqData
const EqIdentify_t eqIdentify = { ... }
当我编译代码时显示以下(预期)错误
Error[Pe020]: identifier "_InfoEqData" is undefined ... \tst_vBus_main.cpp 25
如何告诉编译器从 startup.s
中找到该标识符?
提前致谢
IAR 工具链仅支持 #pragma location
1 来修复由文字数字 2 或段名称给出的绝对地址处的数据3.
在我看来,你应该在链接器命令文件中定义一个自己的段3,然后根据你的要求定位。
1
IAR C/C++ Compiler User Guide for the 8051Microcontroller Architecture (C8051-7),第七版:2017 年 3 月,第 372 页。
2
ibid.,第七版:2017 年 3 月,第 260 页。
3
ibid.,第七版:2017 年 3 月,第 262 页。
4
IAR Linker and Library Tools Reference Guide (XLINK-5001),2010 年 4 月,第 21 页。
我想用应用程序数据(设备信息)定位一个 table 常量值,最好在向量 table 的末尾。
在 startup.s
中,我执行以下操作:
MODULE ?cstartup
;; Forward declaration of sections.
SECTION CSTACK:DATA:NOROOT(3)
SECTION .intvec:CODE:NOROOT(2)
EXTERN __iar_program_start
EXTERN SystemInit
PUBLIC __vector_table
PUBLIC _InfoEqData
DATA
__vector_table
DCD sfe(CSTACK)
DCD Reset_Handler ; Reset Handler
/* ............... */
DCD LCD_IRQHandler ; LCD
DCD USB_IRQHandler ; USB
__vector_table_end
_InfoEqData EQU __vector_table_end
在 main.c
中,我执行以下操作:
#pragma location = _InfoEqData
const EqIdentify_t eqIdentify = { ... }
当我编译代码时显示以下(预期)错误
Error[Pe020]: identifier "_InfoEqData" is undefined ... \tst_vBus_main.cpp 25
如何告诉编译器从 startup.s
中找到该标识符?
提前致谢
IAR 工具链仅支持 #pragma location
1 来修复由文字数字 2 或段名称给出的绝对地址处的数据3.
在我看来,你应该在链接器命令文件中定义一个自己的段3,然后根据你的要求定位。
1 IAR C/C++ Compiler User Guide for the 8051Microcontroller Architecture (C8051-7),第七版:2017 年 3 月,第 372 页。
2 ibid.,第七版:2017 年 3 月,第 260 页。
3 ibid.,第七版:2017 年 3 月,第 262 页。
4 IAR Linker and Library Tools Reference Guide (XLINK-5001),2010 年 4 月,第 21 页。