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

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

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

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

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

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

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

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

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

從去年上半年開(kāi)始,IAR將各開(kāi)發(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è)問(wèn)題:調(diào)試時(shí),“不能”查看外設(shè)寄存器了。

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

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

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

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

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

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

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

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

2

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

因?yàn)榍懊鎸?xiě)了一篇文章《一款可以在STM8上運(yùn)行的實(shí)時(shí)操作系統(tǒng)Atomthreads》,很多朋友問(wèn),像8K的FLASH資源跑一個(gè)系統(tǒng),寫(xiě)點(diǎn)應(yīng)用程序都用完了。

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

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

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

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

在表準(zhǔn)外設(shè)庫(kù)里面常看類似如下代碼:

assert_param(IS_GPIO_MODE_OK(GPIO_Mode));

assert_param(IS_GPIO_PIN_OK(GPIO_Pin));

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

在stm8s_conf.h中屏蔽即可:

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

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

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

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

    關(guān)注

    31

    文章

    5273

    瀏覽量

    119658
  • STM8
    +關(guān)注

    關(guān)注

    18

    文章

    392

    瀏覽量

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

    關(guān)注

    0

    文章

    16

    瀏覽量

    3530
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    寄存器有哪幾種?可以實(shí)現(xiàn)什么功能?

    寄存器是計(jì)算機(jī)中最基本的寄存器類型,用于存儲(chǔ)數(shù)據(jù)和指令。它們通常具有相同的大小和功能,可以用于執(zhí)行各種操作。通用寄存器的數(shù)量和大小因計(jì)算機(jī)架
    的頭像 發(fā)表于 07-12 10:32 ?711次閱讀

    寄存器分為基本寄存器和什么兩種

    寄存器是計(jì)算機(jī)中用于存儲(chǔ)數(shù)據(jù)的高速存儲(chǔ)單元,它們是CPU內(nèi)部的重要組成部分。寄存器可以分為基本寄存器和擴(kuò)展寄存器兩種類型。 一、基本寄存器
    的頭像 發(fā)表于 07-12 10:31 ?859次閱讀

    用的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無(wú)法燒寫(xiě)程序怎么解決?

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

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

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

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

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

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

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

    IAR FOR ARM和IAR FOR STM8無(wú)法共存怎么解決?

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

    如何根據(jù)自己設(shè)計(jì)中的寄存器配置總線定義來(lái)生成一套寄存器配置模版

    無(wú)論是FPGA還是ASIC,系統(tǒng)設(shè)計(jì)中總會(huì)存在配置寄存器總線的使用,我們會(huì)將各種功能、調(diào)試寄存器掛載在寄存器總線上使用。
    的頭像 發(fā)表于 03-04 13:56 ?961次閱讀
    如何根據(jù)自己設(shè)計(jì)中的<b class='flag-5'>寄存器</b>配置總線定義來(lái)生成一套<b class='flag-5'>寄存器</b>配置模版

    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 ?792次閱讀

    調(diào)試AD7124-8驅(qū)動(dòng)時(shí),對(duì)各寄存器配置之后再次讀各寄存器的值,多個(gè)寄存器的值都為fffffffd是為什么?

    調(diào)試AD7124-8驅(qū)動(dòng)時(shí),對(duì)各寄存器配置之后再次讀各寄存器的值,多個(gè)寄存器的值都為fffffffd,這是為什么? 看參考程序里面對(duì)各
    發(fā)表于 12-07 08:29

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

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

    寄存器開(kāi)發(fā),HAL開(kāi)發(fā)和LL開(kāi)發(fā)的區(qū)別和參考代碼

    1,寄存器開(kāi)發(fā)【難度值:難】寄存器開(kāi)發(fā)是一種直接訪問(wèn)微控制寄存器的編程方法,它提供了對(duì)硬件的極大靈活性和直接控制。在寄存器級(jí)開(kāi)發(fā)中,程序員
    的頭像 發(fā)表于 11-17 08:00 ?1168次閱讀
    <b class='flag-5'>寄存器</b>開(kāi)發(fā),HAL開(kāi)發(fā)和LL開(kāi)發(fā)的區(qū)別和參考<b class='flag-5'>代碼</b>

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

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