一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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é)我簡單說兩點(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)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5434

    瀏覽量

    124443
  • STM8
    +關(guān)注

    關(guān)注

    18

    文章

    392

    瀏覽量

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

    關(guān)注

    0

    文章

    16

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    STP08CP05 低壓低電流8位移位寄存器數(shù)據(jù)手冊(cè)

    STP08CP05 是一款單片、低電壓、低電流、高功率 8 位移位寄存器,專為 LED 面板顯示而設(shè)計(jì)。STP08CP05包含一個(gè) 8 位 serial-in, parallel-o
    的頭像 發(fā)表于 04-16 18:10 ?405次閱讀
    STP08CP05 低壓低電流<b class='flag-5'>8</b>位移位<b class='flag-5'>寄存器</b>數(shù)據(jù)手冊(cè)

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

    電子發(fā)燒友網(wǎng)站提供《74HC594-Q100;74HCT594-Q100帶輸出寄存器8位移位寄存器規(guī)格書.pdf》資料免費(fèi)下載
    發(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èi)下載

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

    STC15系列常用寄存器匯總免費(fèi)下載

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

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

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

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

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

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

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

    接口的控制與狀態(tài)寄存器什么作用

    接口的控制與狀態(tài)寄存器(Control and Status Registers,簡稱CSR)是計(jì)算機(jī)系統(tǒng)中用于控制和監(jiān)控硬件設(shè)備操作的寄存器。它們是硬件設(shè)備與其驅(qū)動(dòng)程序之間的橋梁,允許軟件控制硬件
    的頭像 發(fā)表于 10-17 10:42 ?1521次閱讀

    TAS5805寄存器中,有沒有寄存器用來指示當(dāng)前輸出幅值大小的?

    問一下 TAS5805寄存器中,有沒有寄存器用來指示當(dāng)前輸出幅值大小的? 就是說,輸出到喇叭的信號(hào)大小,這個(gè)能不能從寄存器中讀出來?
    發(fā)表于 10-15 07:42

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

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

    ARM寄存器的分類及功能

    ARM寄存器是ARM處理內(nèi)部的重要組成部分,它們?cè)谔幚?b class='flag-5'>器的運(yùn)算、控制以及數(shù)據(jù)存儲(chǔ)等方面發(fā)揮著至關(guān)重要的作用。下面,我們將從ARM寄存器的定義、結(jié)構(gòu)、分類以及功能等多個(gè)方面進(jìn)行詳細(xì)闡述
    的頭像 發(fā)表于 09-05 14:18 ?2929次閱讀

    通用寄存器是什么意思

    在計(jì)算機(jī)體系結(jié)構(gòu)中,通用寄存器是中央處理(CPU)內(nèi)部最為核心和基礎(chǔ)的組成部分之一。它們被設(shè)計(jì)為能夠存儲(chǔ)和傳輸各種類型的數(shù)據(jù)和指令,是CPU進(jìn)行數(shù)據(jù)處理和運(yùn)算的關(guān)鍵工具。通用寄存器不僅在程序的執(zhí)行過程中起著至關(guān)重要的作用,還直
    的頭像 發(fā)表于 09-05 14:13 ?2324次閱讀

    寄存器的類型和作用

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

    寄存器故障分析

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

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

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