你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F0+IAP+FreeRTOS升级后不正常调试过程

[复制链接]
zhumx 发布时间:2017-11-13 09:13
    最近调试FreeRTOS程序,发现直接用IAR下载APP后程序运行正常,但是通过IAP升级后却发现程序跑飞(因为是IAP升级,无法调试App程序,所以跳转后具体在哪跑飞不得而知)。通过IAP升级裸机APP却是正常的,所以中断向量,程序地址等配置应该没问题。
    注释掉部分IAP代码,只留单纯的跳转语句后再调试,发现加RTOS的App运行正常了,所以问题一定是IAP程序中其他的配置导致App跑飞,经过逐个排查后终于找到了原因,是IAP中配置了Timer3中断,但是RTOS版的App中没有定义Timer3的中断处理函数,而跳转前又没有关闭Timer3,故跳转后程序一定是死在了无法跳转至Timer3中断函数的问题上。经过修改,在跳转前关闭Timer3,调试OK!当然,后来又发现了同样的问题,也是IAR直接下载正常,IAP跳转后不正常,只不过这次是串口没有正常工作,同样老办法,逐个排查IAP程序中是否存在配置问题,最终发现是IAP中初始化SPI时,傻不拉几的使能了SPI的TXDMA(后面又没用到这个DMA),而F072的SPI1 TXDMA和USART1的RXDMA是映射的同一通道。。。。。所以注释掉相关代码后一切正常。

    第一次移植FreeRTOS做项目,希望自己以及坛友以后避免犯同样的错误,故留此贴

收藏 3 评论2 发布时间:2017-11-13 09:13

举报

2个回答
mark0668 回答时间:2017-11-13 09:49:34
感谢分享!涨知识了
黑皮男 回答时间:2017-11-13 16:49:05
遇到类似的问题,IAR运行正常,断电上电异常,原因调用了标准库中未重写的函数,比如time.h

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版