女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

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

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

3天內不再提示

實戰經驗 | Keil、IAR、CubeIDE 中變量不被初始化方法

STM32單片機 ? 來源:未知 ? 2023-11-24 18:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群



關鍵詞:不被初始化,編譯環境


目錄預覽

1、前言

2、IAR 實現變量不初始化方法

3、Keil 實現變量不被初始化方法

4、CubeIDE 實現變量不初始化方法


01

前言


有些時候在我們的應用過程中要求變量有連續性,或者現場保留,例如 Bootloader 跳轉,某種原因的復位過程中我們有些關鍵變量不能被初始化,在不同的編譯環境下有不同的設置,本文就這個操作做總結,分別介紹使用 Keil,IAR 和 CubeIDE 的操作方法,本文中所用芯片為STM32G431RBT6。


02

IAR 實現變量不初始化方法


IAR 實現相對簡單,直接使用“__no_init”這個關鍵字即可,也就是在變量前面進行修飾:



為了驗證是否執行成功,可以考慮周期性讓系統復位,看變量的變化,比如下面的示例程序讓系統周期復位,會發現每次 Test_NoInit 數據都是在上次數據基礎上增加 10,而不是被初始化后的數據增加 10。



03

Keil 實現變量不被初始化方法


Keil 中沒有像 IAR 里面的這個關鍵字,而且會有版本的區別,下面分別介紹:


圖1.Keil 不同編譯版本


為了防止未初始化的變量被初始化為 0,要將未初始化的變量放在一個特殊段內,這個段滿足是 ZI 數據段(.bss),它的執行域(region)具有 UNINIT 屬性。


3.1. Arm Compiler 5 的操作


修改工程的 linker file 文件,*.sct 文件


圖2.修改默認 linker file


這邊將 RAM 劃分兩個區間,其中 RW_IRAM2 就是我們要的變量不初始化區域,屬性為UNINIT,定義一個 region 名字 NO_INIT.



變量定義到這個 section,這邊 AC5 要用到 zero_init 這個修飾。



3.2. Arm Compiler 6 的操作


在 AC6 上面需要加入.bss 這個 ZI 定義,如下的 sct 文件修改:



變量定義到 section 部分,AC5 和 AC6 也是有區別的,不再支持 zero_init 這個修飾,如下定義:



對于版本 AC5 和 AC6 具體區別可以參考 Keil 幫助文件中的描述:


圖3.Keil 幫助文件關于 zero initialized


04

CubeIDE 實現變量不初始化方法


CubeIDE 的實現和 Keil 有類似的操作,需要修改 linker file 文件*.ld。首先對 RAM 進行劃分,劃分出不初始化的 RAM 區域:


圖4.劃分 RAM 區域


增加區域描述,并且加入區域名字:


圖5.區域描述,名字定義



定義變量到這個不初始化區域中:



另外,還提醒一點,有些 STM32 系列有專門針對特定 RAM 區復位后是否會被初始化的 Option 配置位。比方 STM32L4 系列,想讓 SRAM2 變量不被初始化,得配置選項字節中的 SRAM2_RST位。如下圖所示:



完整內容請點擊“閱讀原文”下載原文檔。


原文標題:實戰經驗 | Keil、IAR、CubeIDE 中變量不被初始化方法

文章出處:【微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6067

    文章

    44961

    瀏覽量

    648881
  • STM32
    +關注

    關注

    2291

    文章

    11022

    瀏覽量

    363489

原文標題:實戰經驗 | Keil、IAR、CubeIDE 中變量不被初始化方法

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    IM 系列設備過載保護機制下界面初始化中斷的底層邏輯與解決方案

    一、過載保護機制與界面初始化的關聯基礎 IM 系列設備的過載保護機制是保障設備安全運行的核心功能,其通過傳感器實時采集設備運行參數,如電流、電壓、溫度、系統資源占用率等。一旦這些參數超出預設閾值
    的頭像 發表于 06-27 09:58 ?35次閱讀

    移動電源EMC整改:認證失敗到一次通過的實戰經驗

    深圳南柯電子|移動電源EMC整改:認證失敗到一次通過的實戰經驗
    的頭像 發表于 05-26 11:25 ?148次閱讀
    移動電源EMC整改:認證失敗到一次通過的<b class='flag-5'>實戰經驗</b>

    使用jlink連接mcu查看日志,偶發重新初始化,部分線程未退出,變量錯位怎么解決?

    使用jlink連接mcu查看日志,偶發重新初始化,部分線程未退出,變量錯位。 串口1的線程是在main最后面。 未見初始化打印,就已經發送數據了。并且發送的數據不對。感覺是重新初始化
    發表于 03-07 07:19

    STM32CubeMX用于STM32配置和初始化C代碼生成

    電子發燒友網站提供《STM32CubeMX用于STM32配置和初始化C代碼生成.pdf》資料免費下載
    發表于 02-26 17:32 ?658次下載

    EE-359:ADSP-CM40x啟動時間優化和器件初始化

    電子發燒友網站提供《EE-359:ADSP-CM40x啟動時間優化和器件初始化.pdf》資料免費下載
    發表于 01-13 16:33 ?0次下載
    EE-359:ADSP-CM40x啟動時間優化和器件<b class='flag-5'>初始化</b>

    EE-88:使用21xx編譯器在C初始化變量

    電子發燒友網站提供《EE-88:使用21xx編譯器在C初始化變量.pdf》資料免費下載
    發表于 01-13 15:54 ?0次下載
    EE-88:使用21xx編譯器在C<b class='flag-5'>中</b><b class='flag-5'>初始化</b><b class='flag-5'>變量</b>

    提升開關電源效率的理論分析與實戰經驗

    在這里有電源技術干貨、電源行業發展趨勢分析、最新電源產品介紹、眾多電源達人與您分享電源技術經驗,關注我們,與中國電源行業共成長! 提升開關電源效率的理論分析與實戰經驗 引言 開關電源設計,為獲得
    的頭像 發表于 01-09 10:04 ?937次閱讀
    提升開關電源效率的理論分析與<b class='flag-5'>實戰經驗</b>

    OMAP5912多媒體處理器初始化參考指南

    電子發燒友網站提供《OMAP5912多媒體處理器初始化參考指南.pdf》資料免費下載
    發表于 12-17 16:20 ?0次下載
    OMAP5912多媒體處理器<b class='flag-5'>初始化</b>參考指南

    STM32F407 MCU使用SD NAND?不斷電初始化失效解決方案

    STM32F407微控制器單元(MCU)與SD NAND的結合提供了強大的存儲解決方案。然而,不斷電初始化失效問題可能會導致系統穩定性和數據完整性受損。我們將STM32F407與SD NAND集成時可能遇到的初始化問題,并提供專業的解決方案。
    的頭像 發表于 12-11 10:51 ?893次閱讀
    STM32F407 MCU使用SD NAND?不斷電<b class='flag-5'>初始化</b>失效解決方案

    segger編譯器初始化問題

    的圖; 2.第二張圖是該變量在文件的所有操作,第一行是初始化,該行代碼在初始化部分最后一個,執行完就是主循環了; 3.第2,3行也是對變量
    發表于 12-09 18:06

    基于旋轉平移解耦框架的視覺慣性初始化方法

    精確和魯棒的初始化對于視覺慣性里程計(VIO)至關重要,因為不良的初始化會嚴重降低姿態精度。
    的頭像 發表于 11-01 10:16 ?921次閱讀
    基于旋轉平移解耦框架的視覺慣性<b class='flag-5'>初始化</b><b class='flag-5'>方法</b>

    TMS320C6000 McBSP初始化

    電子發燒友網站提供《TMS320C6000 McBSP初始化.pdf》資料免費下載
    發表于 10-26 10:10 ?1次下載
    TMS320C6000 McBSP<b class='flag-5'>初始化</b>

    視頻引擎初始化失敗怎么回事

    視頻引擎初始化失敗是一個常見的技術問題,它可能由多種原因引起,包括軟件沖突、硬件問題、驅動程序問題、系統設置錯誤等。要解決這個問題,需要對可能的原因進行詳細的分析和診斷。 1. 軟件沖突 1.1
    的頭像 發表于 09-18 18:18 ?2720次閱讀

    Keil變量不被初始化方法

    有些時候在我們的應用過程要求變量有連續性,或者現場保留,例如Bootloader跳轉,某種原因的復位過程我們有些關鍵變量不能被初始化,在
    的頭像 發表于 08-30 11:47 ?1459次閱讀
    <b class='flag-5'>Keil</b><b class='flag-5'>中</b><b class='flag-5'>變量</b><b class='flag-5'>不被</b><b class='flag-5'>初始化</b><b class='flag-5'>方法</b>

    瀚海微SD NAND應用之SD協議存儲功能描述2 初始化命令

    初始化和識別過程: 總線激活后,主機啟動卡初始化和識別過程。 初始化過程從SD SEND OP COND (ACMD41)開始,通過設置其操作條件和OCR的HCS位。HCS (Ho
    的頭像 發表于 07-22 10:54 ?692次閱讀
    瀚海微SD NAND應用之SD協議存儲功能描述2 <b class='flag-5'>初始化</b>命令
    主站蜘蛛池模板: 土默特左旗| 曲阜市| 吐鲁番市| 疏附县| 冷水江市| 柏乡县| 佛冈县| 措美县| 孝昌县| 杂多县| 云梦县| 宁德市| 湘潭县| 临高县| 达州市| 安宁市| 九龙县| 云南省| 富锦市| 仙游县| 南乐县| 泗水县| 敖汉旗| 盐山县| 长阳| 酉阳| 通海县| 浦县| 兴安县| 松阳县| 乌拉特前旗| 万年县| 泰兴市| 襄汾县| 宕昌县| 娱乐| 从江县| 喜德县| 乐清市| 阿荣旗| 汉源县|