1. 程式人生 > >uc/os iii移植到STM32F4---IAR開發環境

uc/os iii移植到STM32F4---IAR開發環境

iar 開發 移植 問題 函數 中斷 發現 返回 設定

也許是先入為主的原因,時鐘用不慣Keil環境,大多數的教程都是拿keil寫的,嘗試將官方的uc/os iii 移植到IAR環境。

1、首先嘗試從官網上下載的官方移植的代碼,編譯通過,但是執行會報堆棧溢出警告(為何keil沒有報堆棧溢出??),網上有人說不用理會,但是實際使用時發生了錯誤(定義的常量數組值被改變,懷疑是堆棧溢出導致),發現使用的IAR版本不能完美支持使用的STM32芯片,換用高版本測試。。(高版本正確,與低版本對芯片的支持有關)

2、開始時雖然會堆棧溢出,但是能夠進入異常中斷,進入之後就死了,後來發現中斷定義於中斷服務函數名少了一個“_”,坑死。。之後發現uc/os時鐘有問題,經跟蹤發現初始化時鐘時,讀取系統工作頻率函數返回值錯誤,手動設定系統頻率值後,定時正常(閃燈。。)之後進一步跟蹤發現是讀取系統時鐘函數調用了一個常量數組,但是數組值被莫名改變導致讀到的數據不對,即1中所述懷疑是堆棧溢出。

3、重點:中斷向量表修改,中斷服務函數修改

uc/os iii移植到STM32F4---IAR開發環境