uc/os iii移植到STM32F4---IAR开发环境
Posted 昊天一怪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uc/os iii移植到STM32F4---IAR开发环境相关的知识,希望对你有一定的参考价值。
也许是先入为主的原因,时钟用不惯Keil环境,大多数的教程都是拿keil写的,尝试将官方的uc/os iii 移植到IAR环境。
1、首先尝试从官网上下载的官方移植的代码,编译通过,但是执行会报堆栈溢出警告(为何keil没有报堆栈溢出??),网上有人说不用理会,但是实际使用时发生了错误(定义的常量数组值被改变,怀疑是堆栈溢出导致),发现使用的IAR版本不能完美支持使用的STM32芯片,换用高版本测试。。(高版本正确,与低版本对芯片的支持有关)
2、开始时虽然会堆栈溢出,但是能够进入异常中断,进入之后就死了,后来发现中断定义于中断服务函数名少了一个“_”,坑死。。之后发现uc/os时钟有问题,经跟踪发现初始化时钟时,读取系统工作频率函数返回值错误,手动设定系统频率值后,定时正常(闪灯。。)之后进一步跟踪发现是读取系统时钟函数调用了一个常量数组,但是数组值被莫名改变导致读到的数据不对,即1中所述怀疑是堆栈溢出。
3、重点:中断向量表修改,中断服务函数修改
以上是关于uc/os iii移植到STM32F4---IAR开发环境的主要内容,如果未能解决你的问题,请参考以下文章