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

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

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

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

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 2020-03-07 16:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相信到這里,你不可能不會了。

2

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

因為前面寫了一篇文章《一款可以在STM8上運行的實時操作系統(tǒng)Atomthreads》,很多朋友問,像8K的FLASH資源跑一個系統(tǒng),寫點應(yīng)用程序都用完了。

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

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

本節(jié)我簡單說兩點比較常見的優(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)試時可以選擇代碼兼容的大容量芯片調(diào)試)。

在stm8s_conf.h中屏蔽即可:

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

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

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

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

    關(guān)注

    31

    文章

    5429

    瀏覽量

    123842
  • STM8
    +關(guān)注

    關(guān)注

    18

    文章

    392

    瀏覽量

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

    關(guān)注

    0

    文章

    16

    瀏覽量

    3681
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    74HC594-Q100;74HCT594-Q100帶輸出寄存器8位移位寄存器規(guī)格書

    電子發(fā)燒友網(wǎng)站提供《74HC594-Q100;74HCT594-Q100帶輸出寄存器8位移位寄存器規(guī)格書.pdf》資料免費下載
    發(fā)表于 02-09 15:19 ?0次下載
    74HC594-Q100;74HCT594-Q100帶輸出<b class='flag-5'>寄存器</b>的<b class='flag-5'>8</b>位移位<b class='flag-5'>寄存器</b>規(guī)格書

    24l01寄存器列表指南免費下載

      寄存器的功能是存儲二進制代碼,它是由具有存儲功能的觸發(fā)組合起來構(gòu)成的。一個觸發(fā)可以存儲1位二進制代碼,故存放n位二進制
    發(fā)表于 01-22 17:25 ?1次下載

    STC15系列常用寄存器匯總免費下載

      寄存器的功能是存儲二進制代碼,它是由具有存儲功能的觸發(fā)組合起來構(gòu)成的。一個觸發(fā)可以存儲1位二進制代碼,故存放n位二進制
    發(fā)表于 01-22 17:24 ?9次下載

    調(diào)試ADS1259遇到讀取寄存器返回隨機的問題,怎么解決?

    你好,我最近在調(diào)試ADS1259這款芯片,遇到讀取寄存器返回隨機的問題, 邏輯分析儀抓的圖如下: 參照官方的資料,返回的第三個字符應(yīng)該是config0的默認(rèn)值,即10xx0101b,但是現(xiàn)在
    發(fā)表于 12-06 07:19

    寫單個線圈與單個保持寄存器相關(guān)

    05功能用于將單個線圈寄存器(或離散輸入)設(shè)置為ON或OFF,該功能支持廣播模式在廣播模式下,所有從站設(shè)備的同一地址的值將被統(tǒng)一修改。查詢報文中的ON/OFF狀態(tài)由報文數(shù)據(jù)字段的常數(shù)指定
    的頭像 發(fā)表于 11-01 13:46 ?653次閱讀

    Modbus協(xié)議的讀取保持寄存器

    功能用于讀取從設(shè)備保持寄存器的內(nèi)容,不支持廣播模式。消息頓中指定了需要讀取的保持寄存器的起始地址和數(shù)目。而保持寄存器中各地址的具體內(nèi)容和意義則由設(shè)備開發(fā)者自行規(guī)定。
    的頭像 發(fā)表于 10-30 10:54 ?3602次閱讀

    寄存器間接尋址和寄存器尋址的區(qū)別

    寄存器間接尋址和寄存器尋址是計算機體系結(jié)構(gòu)中兩種重要的尋址方式,它們在指令執(zhí)行過程中起著關(guān)鍵作用。下面將從定義、原理、特點、應(yīng)用場景以及區(qū)別等方面對這兩種尋址方式進行詳細(xì)闡述。
    的頭像 發(fā)表于 10-05 17:13 ?3528次閱讀

    寄存器的類型和作用

    在計算機科學(xué)中,寄存器(Register)是一種高速存儲單元,它位于CPU內(nèi)部,與CPU的運算單元和邏輯控制單元緊密相連。寄存器的主要作用是暫時存儲指令、操作數(shù)和地址等臨時數(shù)據(jù),以便CPU快速訪問和處理。由于寄存器直接集成在CP
    的頭像 發(fā)表于 09-05 14:11 ?4599次閱讀

    寄存器故障分析

    寄存器故障分析是計算機硬件維護與系統(tǒng)穩(wěn)定性保障中的重要環(huán)節(jié)。寄存器作為計算機中的關(guān)鍵組成部分,負(fù)責(zé)存儲和傳輸數(shù)據(jù),其穩(wěn)定性和可靠性直接影響到整個計算機系統(tǒng)的性能。以下是對寄存器故障的全面分析,包括故障類型、故障現(xiàn)象、故障原因及診
    的頭像 發(fā)表于 08-29 11:26 ?2079次閱讀

    寄存器是什么意思?寄存器是如何構(gòu)成的?

    在計算機科學(xué)中,寄存器(Register)是一個高速存儲單元,它位于中央處理(CPU)內(nèi)部,用于存儲計算機程序執(zhí)行過程中所需要的數(shù)據(jù)、指令地址或狀態(tài)信息。寄存器是計算機體系結(jié)構(gòu)中至關(guān)重要的組成部分,對計算機的運算速度和性能有著
    的頭像 發(fā)表于 08-02 18:23 ?7166次閱讀
    <b class='flag-5'>寄存器</b>是什么意思?<b class='flag-5'>寄存器</b>是如何構(gòu)成的?

    寄存器尋址和直接尋址的區(qū)別

    寄存器尋址和直接尋址是計算機指令系統(tǒng)中的兩種基本尋址方式。它們在指令的執(zhí)行過程中起著至關(guān)重要的作用,決定了指令操作數(shù)的來源和目標(biāo)。下面我們將介紹這兩種尋址方式的特點、區(qū)別以及在實際應(yīng)用中的優(yōu)缺點
    的頭像 發(fā)表于 07-12 10:42 ?4185次閱讀

    寄存器尋址的實現(xiàn)方式

    在計算機體系結(jié)構(gòu)中,寄存器尋址是一種常見的尋址方式,它允許程序直接訪問CPU內(nèi)部的寄存器寄存器尋址可以提高程序的執(zhí)行效率,因為它避免了對內(nèi)存的訪問。 寄存器尋址的基本概念
    的頭像 發(fā)表于 07-12 10:36 ?1472次閱讀

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

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

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

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

    移位寄存器右移是怎么移位的

    移位寄存器是一種在數(shù)字電路和計算機科學(xué)中廣泛使用的存儲設(shè)備,它可以用來存儲和傳輸數(shù)據(jù)。在移位寄存器中,數(shù)據(jù)可以通過移位操作來實現(xiàn)數(shù)據(jù)的傳輸和處理。移位寄存器的移位操作有兩種基本形式:左移和右移。本文
    的頭像 發(fā)表于 07-12 10:14 ?2943次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品