最近用GD32E230单片机开发一款产品在配置GPIO时出现了以下错误:

Build started: Project: ****
*** Using Compiler 'V6.12', folder: 'D:\Keil_v5\ARM\ARMCLANG\Bin'
Build target 'Target 1'
fatal error: error in backend: ran out of registers during register allocation
ArmClang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
Product: MDK Professional 5.27
Component: ARM Compiler 6.12
Tool: armclang [5d624a00]
Target: arm-arm-none-eabi
ArmClang: note: diagnostic msg: PLEASE submit a bug report to http://ds.arm.com/developer-resources/ds-5-technical-support/ and include the crash backtrace, preprocessed source, and associated run script.
ArmClang: note: diagnostic msg: 
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
ArmClang: note: diagnostic msg: C:\Users\ADMINI~1\AppData\Local\Temp\key-ca855f.c
ArmClang: note: diagnostic msg: C:\Users\ADMINI~1\AppData\Local\Temp\key-ca855f.sh
ArmClang: note: diagnostic msg: 
********************
compiling key.c...
".\Objects\DEMO.axf" - 1 Error(s), 0 Warning(s).
Target not created.
Build Time Elapsed:  00:00:01

错误来的很突然,项目刚开始时我把输入引脚都配置为全部配置为浮空输入,这时编译当然是没问题,后面要根据具体功能将输入IO口配置不同输入状态,结果问题就来了,编译后就产生了以上错误,看着这描述我是很懵逼的,是寄存器配置出问题?看了几遍GD的官方库函数和芯片数据手册,都没有发现问题呀!后面尝试逐条添加每个IO口的配置函数,发现了问题原因。当要将不同的IO口输入配置为不同上下拉情况时,调用的函数一样,可能被编译器给优化了,结果造成编译器报错。

后面修改编译器优化等级,确实是这个问题,值得一提的是,我是这几天刚好装上的MDK Professional 5.27,这个版本多了几种优化等级设置。

由于创建工程的时候粗心了,没注意到这个问题,使用了默认的优化等级(-Oz image size),吃一堑,长一智,后面把优化等级改了就编译正常了。

有兴趣了解新版keil优化等级的同学可以参考这篇文章:https://www.eet-china.com/mp/a6037.html

keil出现fatal error: error in backend: ran out of registers during register allocation的解决方案相关推荐

  1. vs与git中间的阻拦--Git failed with a fatal error. error: open(“.vs/GBA/v16/Server/sqlite3/db.lock

    具体错误信息: Git failed with a fatal error. error: open(".vs/GBA/v16/Server/sqlite3/db.lock 因为git上传要 ...

  2. 天坑的:Fatal Python error: init_sys_streams: can‘t initialize sys standard streams解决方案

    [问题描述] 今天用pycharm新建工程突然提示:编译环境有问题,简单写了两行代码测试一直有问题, 报错如下: Fatal Python error: init_sys_streams: can't ...

  3. fatal: protocol error: bad line length character: No s原因

    在向配置gitlab的服务器进行git push 出现以下错误 fatal: protocol error: bad line length character: No s 出现的原因是这个当前用户不 ...

  4. log4j的8个日志级别(OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL)

    log4j定义了8个级别的log(除去OFF和ALL,可以说分为6个级别),优先级从高到低依次为:OFF.FATAL.ERROR.WARN.INFO.DEBUG.TRACE. ALL. ALL 最低等 ...

  5. 8个日志级别(OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL)

    log4j定义了8个级别的log(除去OFF和ALL,可以说分为6个级别),优先级从高到低依次为:OFF.FATAL.ERROR.WARN.INFO.DEBUG.TRACE. ALL. ALL 最低等 ...

  6. fatal python error: aborted_Python中logging模块

    logging模块简介 logging是python内置的标准模块,主要用于输出运行日志,可是设置输出日志的等级.日志保存路径等,相比于print,具备如下优点: 1.可以通过设置不同的日志等级,在r ...

  7. Git fatal: write error: Broken pipe

    2019独角兽企业重金招聘Python工程师标准>>> When doing a large commit with Git over HTTP, sometimes I get & ...

  8. Python 报错 Fatal Python error: PyFrame_BlockPop: block stack underflow 如何解决?

    Fatal Python error: PyFrame_BlockPop: block stack underflow 只有使用pycharm的debug时会报错,正常run就不会 完整报错内容: F ...

  9. keil(MDK)中出现error: #513:

    keil(MDK)中出现error: #513: a value of type "int" cannot be assigned to an entity of type &qu ...

最新文章

  1. Hadoop运维记录系列(二十二)
  2. 简易的 Linux 流量实时监控工具 watch+ifstat
  3. python 东八区
  4. 调优您的 LAMP 应用程序的 5 种简单方法
  5. 12个让您震撼的Linux终端命令
  6. 枚举枚举和修改“最终静态”字段的方法
  7. virsh 网络设置_KVM使用Network Filters进行虚拟机网络管理 | leon的博客
  8. OSChina 周日乱弹 ——已经打码请放心观看
  9. pythondocx更新目录_python根目录
  10. 【ORACLE】ORA-12547: TNS:lost contact
  11. linux如何关闭oracle数据库,linux关闭oracle数据库命令
  12. 常见数学公式和符号的英文读法大全
  13. Linux技术——lsof命令详解
  14. Javascript中Math常用操作,向上取整、向下取整、四舍五入
  15. JavaScript入门,难不难你来说
  16. 慎用Application.DoEvents( )
  17. 从0到1快速了解netty长连接网关协议
  18. linux的系统监视器图片_用Nvidia Jetson Nano 2GB和Python构建一个价值60美元的人脸识别系统 - 人工智能遇见磐创...
  19. 基金入门-基金的分类
  20. Tinyos2.x相关资料

热门文章

  1. 物联网供水智能监测系统
  2. 超声波都应用在哪些领域中?功率放大器如何放大超声波?
  3. Unity 2017 Game Optimization 新版
  4. 技术周|5G UPF + MEC 的部署位置、场景与模式
  5. 上海柯布西招人啦(wechat:729429053)
  6. Kafka Rebalance机制
  7. 原北京计算机学院并入那个学校了,北京工业大学(北京计算机学院)-北京京北职业技术学院历史沿革...
  8. 17条 Swift 最佳实践规范
  9. English Conversation – Checking in at an airport
  10. pyqt5 textEdit、lineEdit操作