最近用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. python常见的错误总结
  2. 算法---------数组-----------移动零
  3. Leetcode 147.对链表进行排序
  4. 整数域上的多项式辗转相除
  5. SpringBoot使用velocity模板引擎
  6. python学习之路 一 :编程语言介绍
  7. Mysql 必知必会(一)
  8. java number string_java基础系列(一):Number,Character和String类及操作
  9. VC2008 Windows Media Player控件的使用技巧 二
  10. 利用StringUtils可以避免空指针问题
  11. tif 高程_Global Mapper中80坐标系高程DEM与kml文件叠加实例
  12. python 如何查看列表的维度?
  13. Python 自动化工具开源及办公自动化 10 高频操作,代码可直接套用
  14. 打造自己的博客(一)利用VuePress完成博客整体搭建,并支持评论和自动发布
  15. ico在线制作,网站小图标Favicion.ico在线制作工具软件
  16. 手把手写深度学习(3)——用RNN循环神经网络自动生成歌词之理论篇
  17. 错误 C1189 #error MFC does not support WINVER less than 0x0501.
  18. Cocos Creator 配合Tiled地图的使用
  19. 游戏金币数据库:QPTreasureDB
  20. NAMD 中计算水分子沿某一放向的平均值 (tcl/tk 脚本输出数据, awk 求某一列平均值)

热门文章

  1. i5 13600kf配什么主板 显卡
  2. rhel6.3下使用openssl来生成CA证书并颁发证书实例解
  3. 抽抽抽 (障眼法:随机抽)
  4. 2020科班生的校招经历
  5. POJ 3047 蔡勒公式
  6. 一键关闭Win10自动更新脚本
  7. oracle12.2 asm进程,Oracle ASM Rebalance执行过程
  8. 京东,摆不脱的“超市”命运
  9. python中的cell函数_python基础-函数
  10. 北京工业大学计算机科学与技术考研专业课,北京工业大学北京工业大学计算机科学与技术081200考研科目及参考书目考研参考书目...