99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

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

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

掃碼添加小助手

加入工程師交流群

今天寫兩個后臺問的較多的問題,如標題所示:

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

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

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

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

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

老版本IAR,扳手工具圖標。如下圖:

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

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

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

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

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

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

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

進入調(diào)試模式 -> 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)跑四個線程,還有兩個隊列,沒有出現(xiàn)什么問題。

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

1.不使用標準外設庫自帶的斷言

在表準外設庫里面常看類似如下代碼:

assert_param(IS_GPIO_MODE_OK(GPIO_Mode));

assert_param(IS_GPIO_PIN_OK(GPIO_Pin));

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

在stm8s_conf.h中屏蔽即可:

2.將標準外設庫修改成直接操作寄存器

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

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

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

    關注

    31

    文章

    5434

    瀏覽量

    124457
  • STM8
    +關注

    關注

    18

    文章

    392

    瀏覽量

    57860
  • 標準外設庫
    +關注

    關注

    0

    文章

    16

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

    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這款芯片,遇到讀取寄存器返回隨機的問題, 邏輯分析儀抓的圖如下: 參照官方的資料,返回的第三個字符應該是config0的默認值,即10xx0101b,但是現(xiàn)在
    發(fā)表于 12-06 07:19

    寫單個線圈與單個保持寄存器相關

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

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

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

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

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

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

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

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

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

    ARM寄存器的分類及功能

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

    通用寄存器是什么意思

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

    寄存器的類型和作用

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

    寄存器故障分析

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

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

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