找回密码
 立即注册
查看: 65|回复: 9

IAR 8051 10.40.2编译擎天柱IAR代码出错 | 已解决

[复制链接]
  • 打卡等级:常住居民II
  • 打卡总天数:81
  • 最近打卡:2025-08-08 10:45:18
已绑定手机

7

主题

23

回帖

207

积分

中级会员

积分
207
发表于 4 天前 | 显示全部楼层 |阅读模式
采用较新版本IAR 8051 10.40.2 编译擎天柱的IAR的代码,发现会报错:
Error[e46]: Undefined external "?IE" referred in ?ALLOC_XSTACK8 ( D:\IAR Systems\Embedded Workbench 8.3\8051\LIB\DLIB\dl-pli-nlxd-1e16x01n.r51 )
Error[e46]: Undefined external "?B" referred in ?INTERRUPT_ENTER_XSP ( D:\IAR Systems\Embedded Workbench 8.3\8051\LIB\DLIB\dl-pli-nlxd-1e16x01n.r51 )
网上查了一下,TI论坛上有人也遇到同样的问题,说是要回退到IAR 8051 低版本。
但我感觉可以通过设置或是修改库函数解决这些问题。
截图202508041239414224.jpg
回复

使用道具 举报 送花

3

主题

2087

回帖

1022

积分

等待验证会员

积分
1022
发表于 4 天前 | 显示全部楼层
尊敬的用户,您好:

感谢您提交的问题。关于您在使用 IAR 8051 v10402 编译器编译擎天柱(JinTianZhu)代码时遇到的两个错误:
Error[e46]: Undefined external "IE" referred in ALLOCXSTACK8
Error[e46]: Undefined external "B" referred in INTERRUPTENTERXSP

我们已对相关问题进行了分析,并结合当前 IAR 8051 编译器版本与库文件的兼容性进行排查。

一、问题分析

上述错误提示表明,在链接阶段,编译器无法找到外部符号 IE 和 B 的定义。这两个符号通常用于 8051 架构中的中断处理和堆栈管理。在较新的 IAR 8051 版本中,部分库函数可能发生了变化或重构,导致与旧版代码或库文件之间存在兼容性问题。

根据您的描述,TI 论坛中已有类似反馈,建议回退至较低版本的 IAR 8051。这表明该问题可能与 IAR 编译器的某些内部实现变更有关,尤其是在库文件与目标架构之间的交互方面。

二、可能的解决方案

尽管建议回退至较低版本是目前较为稳妥的解决方式,但若希望保留新版 IAR 8051 的优势(如性能优化、新特性支持等),可尝试以下几种方法进行调试与修复:

1. 检查链接脚本与库文件配置

请确认您的项目是否正确链接了适用于 IAR 8051 v10402 的标准库文件。某些库文件可能针对特定版本的编译器进行了优化或适配,若使用不匹配的库文件,可能导致符号未定义错误。

建议检查 .xcl 或 .icf 配置文件,确保引用了正确的库路径和库文件。

2. 手动定义缺失符号

如果确定 IE 和 B 是由特定库函数所依赖的变量或寄存器,可以尝试在代码中手动定义这些符号,以避免链接器报错。例如:
  1. c
  2. extern unsigned char IE;
  3. extern unsigned char B;
复制代码

或者在启动文件中定义它们:
  1. c
  2. unsigned char IE = 0;
  3. unsigned char B = 0;
复制代码

请注意,这种方式仅适用于您明确知道这些符号用途的情况下,否则可能导致运行时异常。

3. 更新或替换相关库文件

建议检查 IAR 官方文档或支持页面,确认是否有针对 v10402 的更新库文件。若现有库文件不兼容,可尝试寻找与引擎天柱平台兼容的替代库版本。

4. 联系 IAR 支持团队

如您希望进一步定位问题,建议联系 IAR Systems 技术支持团队,提供具体的错误信息、项目配置及使用的库文件版本,以便获得更精准的支持。

三、总结

IAR 8051 v10402 在功能上有所增强,但在与部分旧版库文件或平台代码兼容时可能存在限制。目前最直接的解决方式为回退至稳定版本,如 IAR 8051 v9xx 系列。若您希望继续使用新版编译器,可通过调整链接配置、手动定义符号或更换兼容库文件等方式尝试解决问题。

如需进一步协助,请提供项目配置详情或相关代码片段,我们将竭诚为您服务。

——国芯人工智能技术团队

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:261
  • 最近打卡:2025-08-08 08:57:29
已绑定手机

78

主题

2819

回帖

5829

积分

荣誉版主

无情的代码机器

积分
5829
发表于 4 天前 | 显示全部楼层
请问是哪个编译不过,还是任意项目都提示这个


我用的是10.10.1
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:81
  • 最近打卡:2025-08-08 10:45:18
已绑定手机

7

主题

23

回帖

207

积分

中级会员

积分
207
发表于 4 天前 | 显示全部楼层
erci*** 发表于 2025-8-4 14:02
请问是哪个编译不过,还是任意项目都提示这个

任意项目都提示这个。我用10.40.1 好像没有出问题,最后一次升级后出现这个问题,使用通用Genetric 8051器件可以避免这个错误。
这个帖子的22楼有下载:
https://www.armbbs.cn/forum.php? ... &highlight=8051
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:81
  • 最近打卡:2025-08-08 10:45:18
已绑定手机

7

主题

23

回帖

207

积分

中级会员

积分
207
发表于 4 天前 | 显示全部楼层
是任意项目都提示这个,应该是一个系统性的问题,我用10.40.1编译好像都没有问题,更新到10.40.2出的问题。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:261
  • 最近打卡:2025-08-08 08:57:29
已绑定手机

78

主题

2819

回帖

5829

积分

荣誉版主

无情的代码机器

积分
5829
发表于 4 天前 | 显示全部楼层
在官网下载最新的试用版是10.40.1.请问楼主这个10.40.2在哪下载的,是否可以上传下安装包。。。
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:81
  • 最近打卡:2025-08-08 10:45:18
已绑定手机

7

主题

23

回帖

207

积分

中级会员

积分
207
发表于 4 天前 | 显示全部楼层
我在回复了你的帖子里附了下载的链接,审核不通过。
可以在armbbs.cn 硬汉嵌入式论坛搜一下:

在22楼有下载
截图202508041644447287.jpg
截图202508041645496685.jpg

点评

和旧版本对比配置文件发现,新版本IAR集体添加了这三个宏定义: 给devices\STC\lnk51ew_STC8H8K64U.xcl 文件也加上就可以了 [attachimg]110759[/attachimg]  详情 回复 发表于 4 天前
收到感谢,已找到,我研究下这个问题  发表于 4 天前
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:261
  • 最近打卡:2025-08-08 08:57:29
已绑定手机

78

主题

2819

回帖

5829

积分

荣誉版主

无情的代码机器

积分
5829
发表于 4 天前 | 显示全部楼层
Robi*** 发表于 2025-8-4 16:48
我在回复了你的帖子里附了下载的链接,审核不通过。
可以在armbbs.cn 硬汉嵌入式论坛搜一下:

和旧版本对比配置文件发现,新版本IAR集体添加了这三个宏定义:

给devices\STC\lnk51ew_STC8H8K64U.xcl 文件也加上就可以了

截图202508042134184097.jpg

  1. //  Device specific symbol definitions
  2. //  ==================================
  3. -D?B=0xF0                     // B register location
  4. -D?IE=0xA8                    // Interrupt Enable register location
  5. -D?IP=0xB8                    // Interrupt Priority register location
  6. //
复制代码


三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:81
  • 最近打卡:2025-08-08 10:45:18
已绑定手机

7

主题

23

回帖

207

积分

中级会员

积分
207
发表于 4 天前 | 显示全部楼层
按照你提供的方法修改xcl文件,编译没有错误了。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-8-8 15:25 , Processed in 0.135132 second(s), 98 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表