0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

新版IAR調(diào)試查看寄存器問題 STM8代碼大小優(yōu)化問題

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 2020-03-07 16:13 ? 次閱讀

今天寫兩個(gè)后臺(tái)問的較多的問題,如標(biāo)題所示:

1.新版IAR調(diào)試查看寄存器問題;

2.STM8代碼大小優(yōu)化問題;

1新版IAR調(diào)試查看寄存器問題

從去年上半年開始,IAR將各開發(fā)環(huán)境逐漸進(jìn)行了大升級(jí),首先是將EWARM從V7升級(jí)到了V8。然后,陸續(xù)將EW430、EWAVR等進(jìn)行了升級(jí)。

什么是新版IAR?圖標(biāo)是黑色那種,如EWARM V8.2、 EWSTM8 V3.1。如下圖:

老版本IAR,扳手工具圖標(biāo)。如下圖:

許多小伙伴安裝了新版的IAR,不管是EWARM、EW430還是EWSTM8,都出現(xiàn)了一個(gè)問題:調(diào)試時(shí),“不能”查看外設(shè)寄存器了。

如下面動(dòng)畫,查看了各主菜單,以及View視圖各個(gè)子菜單,都沒有如之前那種可以直接查看寄存器的窗口:

而老版本就會(huì)有如下圖可以直接查看寄存器的窗口:

說實(shí)話,我這一年很多時(shí)間都是在寫業(yè)務(wù)邏輯相關(guān)的代碼,這個(gè)功能這一年沒去在意過。很多朋友在后臺(tái)問我,我也沒抽時(shí)間去研究。

這不前面寫了一篇在較小資源上跑一個(gè)實(shí)時(shí)操作系統(tǒng),后臺(tái)有朋友問了該如何優(yōu)化代碼,我大概回答了一點(diǎn)可以優(yōu)化標(biāo)準(zhǔn)外設(shè)庫為操作寄存器,所以使用到了該功能,所以我就抽時(shí)間看了一下這個(gè)功能。

好了,不賣關(guān)子了,直接說答案吧,操作基本一樣,只是新版IAR隱藏了下拉選項(xiàng)。直接看下圖你就會(huì)明白。

新版IAR調(diào)試查看寄存器方法

進(jìn)入調(diào)試模式 -> View -> Registers(1-4都行) -> CPURegister右鍵 -> ViewGroup,此時(shí)你就可以選擇了,如下圖:

相信到這里,你不可能不會(huì)了。

2

STM8代碼大小優(yōu)化問題

因?yàn)榍懊鎸懥艘黄恼隆兑豢羁梢栽赟TM8上運(yùn)行的實(shí)時(shí)操作系統(tǒng)Atomthreads》,很多朋友問,像8K的FLASH資源跑一個(gè)系統(tǒng),寫點(diǎn)應(yīng)用程序都用完了。

既然使用STM8可以跑系統(tǒng),資源的問題肯定有關(guān)系。但如果你選定了該芯片,想辦法或許是可以解決的呢。

這么說吧,我在STM8S003(1K RAM 8K FALSH)跑四個(gè)線程,還有兩個(gè)隊(duì)列,沒有出現(xiàn)什么問題。

本節(jié)我簡(jiǎn)單說兩點(diǎn)比較常見的優(yōu)化STM8代碼的方法:

1.不使用標(biāo)準(zhǔn)外設(shè)庫自帶的斷言

在表準(zhǔn)外設(shè)庫里面??搭愃迫缦麓a:

assert_param(IS_GPIO_MODE_OK(GPIO_Mode));

assert_param(IS_GPIO_PIN_OK(GPIO_Pin));

這就是庫自帶用于檢查參數(shù)的代碼,但如果資源有限,可以在最終關(guān)閉斷言代碼。(調(diào)試時(shí)可以選擇代碼兼容的大容量芯片調(diào)試)。

在stm8s_conf.h中屏蔽即可:

2.將標(biāo)準(zhǔn)外設(shè)庫修改成直接操作寄存器

使用表準(zhǔn)外設(shè)庫配置,通過在線調(diào)試,查看寄存器值,最后直接寫寄存器代碼即可。類似如下:

在線調(diào)試查看寄存器方法看上一章節(jié)內(nèi)容。本文內(nèi)容就此結(jié)束,希望對(duì)你有幫助!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5253

    瀏覽量

    119205
  • STM8
    +關(guān)注

    關(guān)注

    18

    文章

    392

    瀏覽量

    56528
  • 標(biāo)準(zhǔn)外設(shè)庫

    關(guān)注

    0

    文章

    16

    瀏覽量

    3517
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    用的IAR For STM8新版本3.10.2 ,編譯提示錯(cuò)誤的原因?

    用的IAR For STM8新版本3.10.2 ,編譯提示錯(cuò)誤Error[Li005]: no definition for \"main\" [referenced from cstartup.o(dlstm
    發(fā)表于 04-30 08:00

    IAR FOR STM8 v3.10.4調(diào)試時(shí)軟件崩潰的原因?

    環(huán)境:ide是iar for stm8 v3.10.4 版本, 芯片stm8L051,調(diào)試器是Risym 的ST-LINK v2, swim連接 部分程序如下: void main(
    發(fā)表于 04-26 08:29

    安裝最新版IAR for stm8無法燒寫程序怎么解決?

    我有兩臺(tái)電腦分別安裝win7和win10,并都安裝了最新版IAR for stm8(V3.10)。win10系統(tǒng)那臺(tái)沒有任何問題,win7那臺(tái)無法燒寫程序一直提示“Failed
    發(fā)表于 04-22 07:49

    STM8IAR編輯調(diào)用串口2函數(shù)報(bào)錯(cuò)的原因?

    新手入門STM8,資料是用眾拳的,,新手求助,為什么STM8使用IAR編輯,程序是網(wǎng)上眾拳的教程,為什么修改不了庫函數(shù)的c文件,文件在編輯
    發(fā)表于 04-17 08:23

    STVP燒錄stm8的hex文件不運(yùn)行,但在IAR for stm8調(diào)試正常,為什么?

    請(qǐng)教各位高手一個(gè)問題,我用IAR for stm8調(diào)試模式下一切正常的程序,但是變成release模式下生成hex文件以后,用STVP燒錄卻不能運(yùn)行,應(yīng)該說是大部分時(shí)候不能運(yùn)行,偶爾極少數(shù)情況下
    發(fā)表于 04-10 08:17

    新裝IAR準(zhǔn)備上手stm8,安裝完后,licence彈出安裝stm8庫,為什么?

    新裝IAR準(zhǔn)備上手stm8,安裝完后,licence彈出安裝stm8庫,可是安裝失敗。提示沒有許可。請(qǐng)問如何安裝解決? 查看了licence,里面是有STM
    發(fā)表于 04-09 06:49

    IAR FOR ARM和IAR FOR STM8無法共存怎么解決?

    IAR FOR ARM和IAR FOR STM8無法共存, 先用的ARM開發(fā)STM32,最近有個(gè)STM8的要開發(fā)。 電腦:WIN10 64位。 ARM版本:EWARM-CD-8321
    發(fā)表于 04-07 07:39

    arm三個(gè)寄存器在gdb調(diào)試時(shí)的作用

    arm三個(gè)寄存器在gdb調(diào)試時(shí)作用? ARM是一種廣泛使用的微處理架構(gòu),它廣泛應(yīng)用于移動(dòng)設(shè)備、嵌入式系統(tǒng)和其他高性能計(jì)算設(shè)備。當(dāng)我們?cè)谑褂胓db(GNU調(diào)試器
    的頭像 發(fā)表于 01-31 10:44 ?643次閱讀

    寄存器查看器的功能和使用

    對(duì)于搞嵌入式底層開發(fā)的軟件或者硬件工程師來說,經(jīng)常會(huì)涉及到查看芯片手冊(cè),比如某個(gè)芯片的串口控制寄存器值,需要知道這個(gè)值對(duì)應(yīng)寄存器的哪些位,微軟計(jì)算
    的頭像 發(fā)表于 11-28 12:26 ?1427次閱讀
    <b class='flag-5'>寄存器</b><b class='flag-5'>查看器</b>的功能和使用

    8位MCU 32.768kHz晶振相關(guān)控制寄存器代碼選項(xiàng)說明

    中穎8位MCU 32.768kHz晶振相關(guān)控制寄存器代碼選項(xiàng)說明
    的頭像 發(fā)表于 10-27 15:07 ?457次閱讀

    CPSR寄存器和APSR寄存器的組成

    程序狀態(tài)寄存器的作用就是反映處理的狀態(tài)信息。在程序運(yùn)行期間我們可以通過查看程序狀態(tài)寄存器的狀態(tài)位來進(jìn)行程序的分支跳轉(zhuǎn)處理,或者我們可以設(shè)置程序狀態(tài)
    的頭像 發(fā)表于 10-20 11:38 ?3731次閱讀
    CPSR<b class='flag-5'>寄存器</b>和APSR<b class='flag-5'>寄存器</b>的組成

    STM8用串口下載及調(diào)試

    最近老是碰到有許多朋友問到STM8不用ST-LINK或其他仿真怎么進(jìn)行程序開發(fā)及下載,其實(shí) STM8 FLASH 大于 16K的產(chǎn)品目前都已內(nèi)置 ISP 程序,可以用串口進(jìn)行 ISP 方式
    發(fā)表于 10-10 08:04

    教你從零開始操作STM8寄存器

    ,熟悉 STM8寄存器編程。風(fēng)馳所有的例程都是在 IAR 環(huán)境下編寫的。當(dāng)你安裝好 IAR,在 IAR 安裝的目錄下,你可以找到 iost
    發(fā)表于 10-10 07:20

    從零開始操作STM8寄存器

    電子發(fā)燒友網(wǎng)站提供《從零開始操作STM8寄存器.pdf》資料免費(fèi)下載
    發(fā)表于 10-07 16:02 ?1次下載
    從零開始操作<b class='flag-5'>STM8</b><b class='flag-5'>寄存器</b>

    淺談寄存器優(yōu)化的原因

    在項(xiàng)目初期,在使用FPGA工具quartus或者vivado生成版本燒入開發(fā)板進(jìn)行調(diào)試時(shí)(DC開啟優(yōu)化選項(xiàng)后同樣會(huì)優(yōu)化寄存器),我們有時(shí)會(huì)發(fā)現(xiàn)部分
    的頭像 發(fā)表于 09-26 09:47 ?921次閱讀
    淺談<b class='flag-5'>寄存器</b>被<b class='flag-5'>優(yōu)化</b>的原因