• 已解决 72750 个问题
  • 已帮助 5976 位优秀工程师

CubeMX生成的工程,KEIL正常,IAR不正常

wambob 2017-05-25 浏览量:1988

问,我用STM32CubeMX 生成的工程,KEIL正常,IAR不正常,请问,相同的代码为何在IAR中不正常,怎么解决?

开发板时STM32L496  nucleo144

http://download.icxbk.com/201705/98fb25e36f5ed28918612e3deec73791.rar

里面有个音乐代码,请用STM32 ST-LINK Utility工具烧写到FLASH中起始地址0x08080000,工程中有定义

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 不正常指的是报错吗?


    你看一下Keil和IAR的那个C/C++设置,HAL库的函数不能支持最新版的编译器

wambob 回复了 chen0000009:步是报错,是同样的代码在两个IDE下编译后下载到开发板上,一个正常,一个不正常 回复
chen0000009 回复了 chen0000009:你下载的时候选择全片擦除试一下呢 然后将生成代码时的堆栈选大一点 回复
chen0000009 回复了 wambob:你下载的时候选择全片擦除试一下呢 然后将生成代码时的堆栈选大一点 回复
wambob 回复了 chen0000009:感觉跟堆栈没关系,因为生成工程的设置都一样,要说是IAR有bug还可能,昨天升级了IAR,还是没有解决问题 回复
chen0000009 回复了 wambob:IAR和Keil使用的不是同一款编译器,所以二进制代码是不同的。 你做音乐应用的话,把两个堆栈都加到0X4000 回复
wambob 回复了 chen0000009:刚试了下,不行 回复
chen0000009 回复了 wambob:你那个程序只是cubeMX生成的一个壳还是添加了自定义代码的? 回复
wambob 回复了 chen0000009:天啊,必须添加自己的代码,CubeMX还没聪明到按你的意愿定制代码 回复
chen0000009 回复了 wambob:那就是你自定义的代码有问题,贴上来看看吧 回复
wambob 回复了 chen0000009:贴了,多谢 回复
wambob 回复了 chen0000009:代码没问题。IAR出了问题,但找不到问题,新版的IAR8.11 回复
wambob 回复了 chen0000009:程序目的是定时器+DMA+DAC 使用通道2播放嵌入的那段音乐,KEIL正常播放,IAR播放完缓冲后就出问题了 回复
chen0000009 回复了 wambob:我知道代码没问题,但是有时是会出现一些状况的,我先看看吧 回复
chen0000009 回复了 wambob:你好。那个IAR的编译器设置你放个图上来看看,就是C/C++那一栏 回复

其他答案 数量:3
  • 不正常是指..? 編譯問題嗎? CubeMX都可以選擇目標IDE的,您有選擇嗎?

    可在補充

    • 发布于2017-05-25
    • 举报
    • 评论 3
    • 0
    • 0
wambob 回复了 MOP :我说的不正常时只下载到开发板上的代码执行的结果不一样 回复
wambob 回复了 MOP :这里不能传工程,简单说下吧,我使用DMA+定时器+DAC播放Flash中的一段音乐代码,生成的KEIL播放完整,IAR播放不完整 回复
MOP 回复了 wambob :可能是優化問題,您把IAR的優化設置關掉看看,Optimization: None 回复

  • Cubemx可以选择生成keil或者iar的工程,讲道理不可能会报错的
    • 发布于2017-05-25
    • 举报
    • 评论 1
    • 0
    • 0
wambob 回复了 donatello :对啊,但偏偏就遇到了,怎么处理 回复

  • 这个应该是和你软件的设置有关系吧~
    • 发布于2017-05-25
    • 举报
    • 评论 0
    • 0
    • 0

CubeMX生成的工程,KEIL正常,IAR不正常