今天寫兩個后臺問的較多的問題,如標題所示:
1.新版IAR調試查看寄存器問題;
2.STM8代碼大小優(yōu)化問題;
1新版IAR調試查看寄存器問題
從去年上半年開始,IAR將各開發(fā)環(huán)境逐漸進行了大升級,首先是將EWARM從V7升級到了V8。然后,陸續(xù)將EW430、EWAVR等進行了升級。
什么是新版IAR?圖標是黑色那種,如EWARM V8.2、 EWSTM8 V3.1。如下圖:
老版本IAR,扳手工具圖標。如下圖:
許多小伙伴安裝了新版的IAR,不管是EWARM、EW430還是EWSTM8,都出現了一個問題:調試時,“不能”查看外設寄存器了。
如下面動畫,查看了各主菜單,以及View視圖各個子菜單,都沒有如之前那種可以直接查看寄存器的窗口:
而老版本就會有如下圖可以直接查看寄存器的窗口:
說實話,我這一年很多時間都是在寫業(yè)務邏輯相關的代碼,這個功能這一年沒去在意過。很多朋友在后臺問我,我也沒抽時間去研究。
這不前面寫了一篇在較小資源上跑一個實時操作系統(tǒng),后臺有朋友問了該如何優(yōu)化代碼,我大概回答了一點可以優(yōu)化標準外設庫為操作寄存器,所以使用到了該功能,所以我就抽時間看了一下這個功能。
好了,不賣關子了,直接說答案吧,操作基本一樣,只是新版IAR隱藏了下拉選項。直接看下圖你就會明白。
新版IAR調試查看寄存器方法
進入調試模式 -> View -> Registers(1-4都行) -> CPURegister右鍵 -> ViewGroup,此時你就可以選擇了,如下圖:
相信到這里,你不可能不會了。
2
STM8代碼大小優(yōu)化問題
因為前面寫了一篇文章《一款可以在STM8上運行的實時操作系統(tǒng)Atomthreads》,很多朋友問,像8K的FLASH資源跑一個系統(tǒng),寫點應用程序都用完了。
既然使用STM8可以跑系統(tǒng),資源的問題肯定有關系。但如果你選定了該芯片,想辦法或許是可以解決的呢。
這么說吧,我在STM8S003(1K RAM 8K FALSH)跑四個線程,還有兩個隊列,沒有出現什么問題。
本節(jié)我簡單說兩點比較常見的優(yōu)化STM8代碼的方法:
1.不使用標準外設庫自帶的斷言
在表準外設庫里面??搭愃迫缦麓a:
assert_param(IS_GPIO_MODE_OK(GPIO_Mode));
assert_param(IS_GPIO_PIN_OK(GPIO_Pin));
這就是庫自帶用于檢查參數的代碼,但如果資源有限,可以在最終關閉斷言代碼。(調試時可以選擇代碼兼容的大容量芯片調試)。
在stm8s_conf.h中屏蔽即可:
2.將標準外設庫修改成直接操作寄存器
使用表準外設庫配置,通過在線調試,查看寄存器值,最后直接寫寄存器代碼即可。類似如下:
-
寄存器
+關注
關注
31文章
5372瀏覽量
121297 -
IAR
+關注
關注
5文章
354瀏覽量
36809
原文標題:新版IAR調試查看寄存器問題和STM8代碼大小優(yōu)化問題,本文來解決!
文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
KDS集成開發(fā)環(huán)境查看寄存器的方法
【新手求教】IAR仿真 msp430 怎么查看SYSRSTIV寄存器的值
FPGA 調試 – 外設寄存器視圖
![FPGA <b class='flag-5'>調試</b> – 外設<b class='flag-5'>寄存器</b>視圖](https://file1.elecfans.com//web2/M00/A6/36/wKgZomUMPE2ABRlSAAAeOb0u_DQ551.png)
微控制器的寄存器的調試
![微控制<b class='flag-5'>器</b>的<b class='flag-5'>寄存器</b>的<b class='flag-5'>調試</b>](https://file.elecfans.com/web2/M00/49/CF/pYYBAGKhvGOAEQ1FAACOlEo1ZWA472.png)
CPSR寄存器和APSR寄存器的組成
![CPSR<b class='flag-5'>寄存器</b>和APSR<b class='flag-5'>寄存器</b>的組成](https://file1.elecfans.com/web2/M00/A9/81/wKgaomUx9ouAWofzAAALnAx1HZw790.png)
評論