用戶在應用程序中可能存在死等延時的處理函數(用for或者do…while)。 對比ST同樣的函數HK的芯片出現延時比ST慢,是因為HK的芯片在cpu和flash之間有一個4個word大小(編號為00,04,08,0c)的指令緩存,工程編譯之后,如果函數被存放到flash的地址的尾地址沒有從0開始的話,(比如函數的入口地址為0x08000004,會被放到編號04的字中,而不是編號0中),就會出現執行效率低的問題。
如何避免這種問題呢?
我們的HK030/031/04A的應用筆記中有指導說明,今天在這里用一個例子詳細說明修改方法:
比如用戶使用uint32_tGItimer=1000000;voidDelayTimer(void){uint32_t i;for(i=0;i
修改如下:voidDelayTimer(void){ uint32_t i; FLASH->ACR = ~(0x00000010); for(i=0;iACR |= 0x00000010; }這樣修改后,就可以使調用函數延時指令執行效率與ST一樣。因此用戶在使用030/031/04A做開發時如果程序中存在這樣死等待的延時函數,如果在時效上想與ST接近,建議采用這種方式修改。
來源:航順芯片
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
mcu
+關注
關注
147文章
18924瀏覽量
397980 -
航順芯片
+關注
關注
1文章
113瀏覽量
23643
發布評論請先 登錄
相關推薦
熱點推薦
HK32MCU應用筆記(五)| 關于應用HK32F030延時效率問題 應用筆記
如何避免這種問題呢?HK030/031/04A的應用筆記中有指導說明,今天在這里用一個例子詳細說明修改方法。
發表于 02-08 15:18
?7次下載
HK32MCU應用筆記(十六)| HK32F103xC/D/E-Timer的應用及注意事項
HK32MCU應用筆記(十六)| HK32F103xC/D/E-Timer的應用及注意事項
HK32MCU應用筆記(九)| HK32F103x8xB系列CAN的應用解決方案
HK32MCU應用筆記(九)| HK32F103x8xB系列CAN的應用解決方案
HK32MCU應用筆記(四)| 關于老版本HK32F103串口USART偶爾出現數據錯誤
HK32MCU應用筆記(四)| 關于老版本HK32F103串口USART偶爾出現數據錯誤
HK32MCU應用筆記(五)| 關于應用HK32F030延時效率問題
評論