java main是标识符吗_如何从startup.s导入标识符(到main.c)

我想在应用程序数据(设备信息)中找到一个常数值表,最好在向量表的末尾。

在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中找到该标识符?

提前感谢

0

投票

IAR工具链仅支持#pragma location 1将数据固定在由文字数字2或段名称3给定的绝对地址上。

从我的角度来看,您应该在链接器命令文件中定义一个自己的段3,然后根据需要定位它。

1IAR C/C++ Compiler User Guide for the 8051Microcontroller Architecture (C8051-7),第七版:2017年3月,第372页。

2ibid.,第七版:2017年3月,第260页。

3ibid.,第七版:2017年3月,第262页。

4IAR Linker and Library Tools Reference Guide (XLINK-5001),2010年4月,第21页。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值