今天寫兩個后臺問的較多的問題,如標題所示:
1.新版IAR調試查看寄存器問題;
2.STM8代碼大小優化問題;
1新版IAR調試查看寄存器問題
從去年上半年開始,IAR將各開發環境逐漸進行了大升級,首先是將EWARM從V7升級到了V8。然后,陸續將EW430、EWAVR等進行了升級。
什么是新版IAR?圖標是黑色那種,如EWARM V8.2、 EWSTM8 V3.1。如下圖:
老版本IAR,扳手工具圖標。如下圖:
許多小伙伴安裝了新版的IAR,不管是EWARM、EW430還是EWSTM8,都出現了一個問題:調試時,“不能”查看外設寄存器了。
如下面動畫,查看了各主菜單,以及View視圖各個子菜單,都沒有如之前那種可以直接查看寄存器的窗口:
而老版本就會有如下圖可以直接查看寄存器的窗口:
說實話,我這一年很多時間都是在寫業務邏輯相關的代碼,這個功能這一年沒去在意過。很多朋友在后臺問我,我也沒抽時間去研究。
這不前面寫了一篇在較小資源上跑一個實時操作系統,后臺有朋友問了該如何優化代碼,我大概回答了一點可以優化標準外設庫為操作寄存器,所以使用到了該功能,所以我就抽時間看了一下這個功能。
好了,不賣關子了,直接說答案吧,操作基本一樣,只是新版IAR隱藏了下拉選項。直接看下圖你就會明白。
新版IAR調試查看寄存器方法
進入調試模式 -> View -> Registers(1-4都行) -> CPURegister右鍵 -> ViewGroup,此時你就可以選擇了,如下圖:
相信到這里,你不可能不會了。
2
STM8代碼大小優化問題
因為前面寫了一篇文章《一款可以在STM8上運行的實時操作系統Atomthreads》,很多朋友問,像8K的FLASH資源跑一個系統,寫點應用程序都用完了。
既然使用STM8可以跑系統,資源的問題肯定有關系。但如果你選定了該芯片,想辦法或許是可以解決的呢。
這么說吧,我在STM8S003(1K RAM 8K FALSH)跑四個線程,還有兩個隊列,沒有出現什么問題。
本節我簡單說兩點比較常見的優化STM8代碼的方法:
1.不使用標準外設庫自帶的斷言
在表準外設庫里面常看類似如下代碼:
assert_param(IS_GPIO_MODE_OK(GPIO_Mode));
assert_param(IS_GPIO_PIN_OK(GPIO_Pin));
這就是庫自帶用于檢查參數的代碼,但如果資源有限,可以在最終關閉斷言代碼。(調試時可以選擇代碼兼容的大容量芯片調試)。
在stm8s_conf.h中屏蔽即可:
2.將標準外設庫修改成直接操作寄存器
使用表準外設庫配置,通過在線調試,查看寄存器值,最后直接寫寄存器代碼即可。類似如下:
在線調試查看寄存器方法看上一章節內容。本文內容就此結束,希望對你有幫助!
-
寄存器
+關注
關注
31文章
5343瀏覽量
120365 -
STM8
+關注
關注
18文章
392瀏覽量
56793 -
標準外設庫
+關注
關注
0文章
16瀏覽量
3552
發布評論請先 登錄
相關推薦
評論