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 =

审核编辑:符乾江

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

    关注

    5040

    文章

    18784

    浏览量

    297940
  • 编译
    +关注

    关注

    0

    文章

    645

    浏览量

    32651
收藏 人收藏

    评论

    相关推荐

    ESP32工程编译提示错误,请问该怎么解决?

    刚开始用,编译Hello world 时,idf.py set-target esp32, 出现下述错误,但 idf.py set-target esp32s2,则正常编译,请问该怎么
    发表于 06-21 06:32

    在不同的电脑上启动同一套代码时,出现编译路径错误提示怎么解决?

    :UsersxxxxDocumentsNewDesktopxxxxxxxxxxxxxxxESP32-C3xxxxxxxxxxxxxxxbuildcompile_commands.json”的错误。 有没有办法使同一套代码可以直接在不同的电脑上打开并编译,这样的问题对异地的
    发表于 06-11 06:54

    stm32f10x_tim.h文件编译错误的原因?

    我在移植别人工程文件时出现编译错误,且错误提示都在stm32f10x_tim.h文件?这工程文件在别人提供的实例工程是没编译错误的?这是需要
    发表于 05-21 08:26

    **Error! Class \'rom\' [group ] starting 8080 has exceeded limit,编译出现这个错误是什么意思?

    **Error! Class \'rom\' [group ] starting 8080 has exceeded limit of BFFF by 7!请教各位老师,编译出现这个错误提示是什么意思,谢谢
    发表于 05-17 06:14

    用的IAR For STM8最新版本3.10.2 ,编译提示错误的原因?

    用的IAR For STM8最新版本3.10.2 ,编译提示错误Error[Li005]: no definition for \"main\" [referenced from cstartup.o(dlstm8smf.a)]
    发表于 04-30 08:00

    Vivado编译常见错误与关键警告梳理与解析

    Xilinx Vivado开发环境编译HDL时,对时钟信号设置了编译规则,如果时钟由于硬件设计原因分配到了普通IO上,而非_SRCC或者_MRCC专用时钟管脚上时,编译器就会提示
    的头像 发表于 04-15 11:38 3449次阅读

    求助,为什么STM32CUBEIDE中的GCC编译器不提示if语句中的错误信息?

    STM32cubeIDE中的GCC编译器,在如下语句,因为输错了,但GCC没有提示错误信息,只提示了一个警告信息,如何设置能提示? uint
    发表于 04-07 08:47

    OpenHarmony 移植:build lite 编译构建过程

    配置完毕产品解决方案、芯片开发板解决方案,就可以执行 hb build 进行编译。但是产品解决方案代码是如何被调用编译的? 芯片开发板
    的头像 发表于 02-19 16:19 780次阅读

    PDF输出时出现错误提醒的解决方案

    通过Output Job或Smart PDF创建PDF后,Adobe Acrobat Reader在打开文件时会出现以下错误消息:“An error exists on this page.
    的头像 发表于 01-12 09:50 1165次阅读
    PDF输出时<b class='flag-5'>出现</b><b class='flag-5'>错误</b>提醒的<b class='flag-5'>解决方案</b>

    linux打开文本文件命令提示错误

    Linux中打开文本文件的命令通常是使用文本编辑器打开,例如常用的命令有 vi 、 vim 、 nano 等。如果在使用其中一个命令时出现错误提示,可能有以下几种原因和解决方法。 错误
    的头像 发表于 12-22 15:10 598次阅读

    invalid synrax是什么错误

    “invalid synrax” 是英语中的拼写错误,正确的拼法是 “invalid syntax”。语法错误是指程序代码中出现了不符合编程语言规则的语法结构,导致编译器无法理解和
    的头像 发表于 11-28 15:59 7438次阅读

    c语言代码错误怎么找

    ,它们通常是由于C语言编写规则被打破所引起的。实际上,C编译器会提供非常详细的错误消息,告诉我们在哪个地方发生了错误。 当我们在编译过程中遇到语法
    的头像 发表于 11-24 10:05 2334次阅读

    C语言开发如何将错误扼杀在编译阶段

    优秀的程序员,一般都是想尽一切办法将程序的错误尽可能地被拦截在运行之前,即编译阶段和预编译阶段的,而不是流出到运行阶段,更不是发生在用户手里的产品中。
    的头像 发表于 10-17 16:44 473次阅读

    Rust语言中错误处理的机制

    在Rust语言中,错误处理是一项非常重要的任务。由于Rust语言采用静态类型检查,在编译时就能发现很多潜在的错误,这使得程序员能够更加自信和高效地开发程序。然而,即使我们在编译时尽可能
    的头像 发表于 09-19 14:54 1175次阅读

    使用bmnetd编译Darknet出现错误Unknown error 27620053如何解决?

    使用bmnetd编译Darknet出现错误Unknown error 27620053?
    发表于 09-19 07:59