0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

编译时出现错误提示的解决方案

电子设计 来源:电子设计 作者:电子设计 2021-11-10 09:36 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者:TI FAE – Johnson Chen

在开发Bootloader 的项目时,我们通常需要把APP程序的入口固定在某个固定地址上,因此在CMD 里面会用如下分配来实现这个功能,

APP
{
-l rts2800_fpu32.lib(.text)
} > FLASHH PAGE = 0

但当我们更换编译器或者CCS 版本时,经常会碰到编译时出现如下 warning:

no matching section
-l rts2800_fpu32.lib(.text)

如果这个警告不想办法消除的话,在通过Bootloader 烧录APP 以后,APP 将无法运行。

这个原因在于C2000 编译器从 CGT V16.9.0.LTS开始 rst2800_ml.lib 和rst2800_fpu32.lib 里面boot.asm相关文件名有改动。

在版本号大于等于V16.9.0.LTS的编译器版本中文件名为boot28.asm,而小于V16.9.0.LTS的编译器版本中文件名为boot.asm

详细如图一图二所示。

因此在CMD里面分配bootxx.obj的时候要根据编译器版本来处理。大于等于V16.9.0.LTS版本中文件名为boot28.obj, 而小于V16.9.0.LTS的版本中文件名为boot.obj.

pYYBAGGKTZ6AKM9cAAD7PrsjnR8715.png  poYBAGGKTaGAGyvPAAD4vjJp-r4851.png

图一 大于等于V16.9.0.LTS 图二 小于V16.9.0.LTS

解决办法为, 使用编译器版大于等于V16.9.0.LTS的时候,将boot.obj改为boot28.obj即可,例如改成如下:

APP
{
-l rts2800_fpu32.lib(.text)
} > FLASHH PAGE = 0

随着编译器版本的升级,未来有可能boot28.obj名字还会修改,碰到同样的问题时可以在你编译完生成的MAP文件里面找到.text段内容里面的内容--rts2800_fpu32.lib:bootXXX.obj (.text)。

pYYBAGGKTaSANhMVAAHTIj4LJOQ237.png

把上面找到的bootXXX.obj代入下面即可:

APP
{
-l rts2800_fpu32.lib(.text) //
} > FLASHH PAGE = 0

注意:

如果是使用定点芯片时,编译器库文件名将是rst2800_ml.lib,此方法同样适用。CMD 写法如下:

APP
{
-l rst2800_ml.lib(.text) //
} > FLASHH PAGE =

审核编辑:符乾江

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5209

    文章

    20664

    浏览量

    337115
  • 编译
    +关注

    关注

    0

    文章

    696

    浏览量

    35282
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Keil编译错误汇总

    1. 编译出现Undefined symbol EXTI_Init (referred from exti.o).解决: ①检查头文件路径是否添加 ②检查相对应的库是否添加。此处最容易忽略,而本人
    发表于 01-21 07:40

    KEIL烧录时显示“SWD/JTAG communication failure”的解决方案

    communication failure”。 原因分析: 提示:这里填写问题的分析: SWD/JATG端口问题。 解决方案提示:这里填写该问题的具体解决方案: 参考网上
    发表于 01-19 08:03

    CANoe与Simulink联合仿真编译失败

    问题描述:在使用VS作为编译器的情况下,Matlab编译后失败,如下图:解决方案:原因:安装VS时,Windows的SDK版本未安装或者安装选项没有选择正确。1.打开VS,可以看到VS中的错误
    的头像 发表于 11-14 12:13 2003次阅读
    CANoe与Simulink联合仿真<b class='flag-5'>编译</b>失败

    下载模式的切换之后,会出现编译错误的解决办法

    一、队伍介绍 本篇为蜂鸟E203系列分享第一篇,本篇介绍的内容是解决下载模式的切换之后出现编译错误问题。 二、问题提出 在进行下载模式切换之后,进行编译提示如下图所示的
    发表于 10-30 08:11

    使用RT-thread studio 编译vision board ,出现了8个错误,怎么解决?

    使用rt-thread构建openmv的固件工程,用的都是示例工程,代码一点也没有改动,直接编译出现错误 请问大佬这个怎么弄
    发表于 09-17 07:33

    规避生产陷阱:PCB设计中常见的错误解决方案

    生产阶段造成严重问题,导致设计报废、生产延误和成本增加。原型的成功并不意味着量产也能成功,因此 在设计早期阶段就应考虑生产可行性的重要性。   本文总结了常见的与生产相关的设计缺陷并提供了解决方案。 缺乏关键信号测试点   问题 : 这是最
    的头像 发表于 09-08 11:15 5889次阅读
    规避生产陷阱:PCB设计中常见的<b class='flag-5'>错误</b>及<b class='flag-5'>解决方案</b>

    请问如何解决在 Keil 中编译出现 FILE DOES NOT EXSIT 错误

    如何解决在 Keil 中编译出现 FILE DOES NOT EXSIT 错误
    发表于 08-28 08:20

    HarmonyOSAI编程编译报错智能分析

    当DevEco Studio构建ArkTS工程出现失败时,CodeGenie能够对错误进行智能分析,提供错误原因及修复方案,帮助开发者快速解决编译
    发表于 08-25 17:40

    如何解决在 Keil 中编译出现 FILE DOES NOT EXSIT 错误

    如何解决在 Keil 中编译出现 FILE DOES NOT EXSIT 错误
    发表于 08-25 08:25

    快速开发汽车充电桩的屏幕驱动与语音提示方案

    芯片来实现,现在新的快速开发解决方案来了! 一、屏幕驱动+语音播放集成方案 语音与屏幕的联动:WT2606B可以驱动屏幕显示 “请插入充电枪” 时,主控 MCU 向 WT2606B 发送指令,触发其播放对应的语音提示,实现屏幕显
    的头像 发表于 07-16 17:11 1994次阅读
    快速开发汽车充电桩的屏幕驱动与语音<b class='flag-5'>提示</b><b class='flag-5'>方案</b>

    NCS放大器DAD3350常见错误码及解决方案

    NCS放大器DAD3350在工业应用中可能出现错误码及解决方案如下: ‌ 一、常见错误码及原因 ‌ ‌ 过载报警(如LV低电压报警、OVC过电流报警) ‌ ‌ 原因 ‌: 电源电压异
    的头像 发表于 07-12 09:41 1150次阅读

    手动添加cubeMX的软件自动生成代码后,编译出现’rtthread.elf’:No Such File 的错误怎么解决?

    手动添加cubeMX的软件自动生成代码后,编译出现’rtthread.elf’:No Such File 的错误
    发表于 06-12 07:46

    使用rt-thread构建openmv的固件工程,出现编译错误的原因?

    使用rt-thread构建openmv的固件工程,用的都是示例工程,代码一点也没有改动,直接编译出现错误
    发表于 06-12 07:23

    cubeIDE在run后出现错误怎么解决?

    求助,第一次运行程序,提示“region `FLASH' overflowed by 14736 bytes”,修改了Optimization level后,又出现下列错误
    发表于 06-09 08:18

    内网穿透避坑指南 6 大常见错误 + 保姆级解决方案

    在内网穿透部署中,哪怕是老手也可能踩坑!今天整理了6大高频错误场景+实战解决方案,帮你少走弯路,效率翻倍 1.端口映射失败:访问显示「连接超时」 ❌错误原因: 本地服务未启动或端口被占用 防火墙
    的头像 发表于 05-20 12:14 932次阅读