国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

如何獲取入口函數(shù)不是__iar_program_start的Program entry的stack使用情況

IAR愛(ài)亞系統(tǒng) ? 來(lái)源:IAR愛(ài)亞系統(tǒng) ? 2024-11-25 16:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

問(wèn)題

IAR中默認(rèn)的入口函數(shù)是__iar_program_start,使能stack usage analysis之后:

4bbbb162-a305-11ef-93f3-92fbcf53809c.png

生成的map文件中STACK USAGE章節(jié)里面會(huì)包含Program entry的stack使用相關(guān)信息:

4bce15fa-a305-11ef-93f3-92fbcf53809c.png

如果對(duì)應(yīng)啟動(dòng)代碼沒(méi)有使用默認(rèn)的入口函數(shù)__iar_program_start,需要使用--entry鏈接器選項(xiàng)指定對(duì)應(yīng)的入口函數(shù)(以使用入口函數(shù)Reset_Handler為例):

4bdbbf20-a305-11ef-93f3-92fbcf53809c.png

但是使能stack usage analysis之后,生成的map文件中STACK USAGE章節(jié)里面沒(méi)有包含Program entry的stack使用相關(guān)信息:

4bfe9c16-a305-11ef-93f3-92fbcf53809c.png

4c09c6ea-a305-11ef-93f3-92fbcf53809c.png

原因

正常來(lái)說(shuō),編譯器可以生成每個(gè)函數(shù)的調(diào)用和stack使用信息,鏈接器可以計(jì)算出每個(gè)根函數(shù)的最大stack使用。但是如果源代碼是用匯編寫的,那么對(duì)應(yīng)函數(shù)的調(diào)用和stack使用信息需要用戶指定(如果用戶不指定,鏈接器沒(méi)有辦法知道對(duì)應(yīng)的信息,從而沒(méi)有辦法計(jì)算出對(duì)應(yīng)的最大stack使用)。

4c2e4fba-a305-11ef-93f3-92fbcf53809c.png

解決辦法

需要在對(duì)應(yīng)的stack usage control file (suc)里面指定對(duì)應(yīng)的函數(shù)調(diào)用和stack使用信息:

4c540cd2-a305-11ef-93f3-92fbcf53809c.png

對(duì)應(yīng).suc文件中指定對(duì)應(yīng)的信息:

/* Specify Reset_Handler as the Program entry */
call graph root ["Program entry"]: Reset_Handler;


/* Specify Reset_Handler will call SystemInit and __iar_program_start */
function Reset_Handler: 0, a
  calls SystemInit,
  calls __iar_program_start;
生成的map文件中STACK USAGE章節(jié)里面會(huì)包含Program entry的stack使用相關(guān)信息:

4c66eafa-a305-11ef-93f3-92fbcf53809c.png

注意:上面的情況是基于如下的啟動(dòng)代碼:

Reset_Handler


        LDR     R0, =SystemInit
        BLX     R0
        LDR     R0, =__iar_program_start
        BX      R0
如果對(duì)應(yīng)的啟動(dòng)代碼沒(méi)有調(diào)用__iar_program_start,那么suc文件里面需要指定入口函數(shù)調(diào)用的所有函數(shù):
/* Specify Reset_Handler will call init_data_bss, SystemInit, startup_go_to_user_mode and main */
function Reset_Handler: 0,
  calls init_data_bss,
  calls SystemInit,
  calls startup_go_to_user_mode,
  calls main;
生成的map文件中STACK USAGE章節(jié)里面會(huì)包含Program entry的stack使用相關(guān)信息:

4c80e3ba-a305-11ef-93f3-92fbcf53809c.png

參考文獻(xiàn):

1.IAR C/C++ Development Guide (Stack usage analysis)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • IAR
    IAR
    +關(guān)注

    關(guān)注

    5

    文章

    410

    瀏覽量

    38539
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4417

    瀏覽量

    67502

原文標(biāo)題:如何獲取入口函數(shù)不是__iar_program_start的Program entry的stack使用情況

文章出處:【微信號(hào):IAR愛(ài)亞系統(tǒng),微信公眾號(hào):IAR愛(ài)亞系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    飛凌嵌入式ElfBoard-系統(tǒng)信息與資源之獲取程序的執(zhí)行時(shí)間

    :(使用clock函數(shù)獲取程序啟動(dòng)到結(jié)束時(shí)間)#include #include int main() { clock_t start, end; double cpu_time_used; // 記錄
    發(fā)表于 01-22 08:57

    客戶使用profinet轉(zhuǎn)devicenet協(xié)議網(wǎng)關(guān)的使用情況分享

    Profinet
    jf_69310483
    發(fā)布于 :2025年12月03日 14:28:31

    在Keil5中查看棧大小

    :打開(kāi)生成的.map文件,在Image Symbol Table部分查找棧的相關(guān)信息,包括棧的大小和使用情況。 3、利用IDE的功能: 方法說(shuō)明:Keil編譯器在編譯過(guò)程中會(huì)自動(dòng)跟蹤堆棧的使用情況
    發(fā)表于 11-14 06:32

    如何檢查EZ-USB? CX3 上的 SRAM 使用情況(JTAG 不可用)?

    型的調(diào)試工具來(lái)實(shí)時(shí)監(jiān)控內(nèi)存使用情況。 是否有其他方法(例如構(gòu)建報(bào)告、SDK 功能或EZ-USB? Suite 內(nèi)的工具)可以讓我檢查固件使用了多少 SRAM?
    發(fā)表于 11-11 06:33

    如何在應(yīng)用程序調(diào)試期間分析棧和堆使用情況

    隨著 AMD Vitis 統(tǒng)一軟件平臺(tái) 2021.2 的發(fā)布,Vitis 引入了一個(gè) Tcl 腳本,用于在應(yīng)用程序運(yùn)行的特定時(shí)間點(diǎn)協(xié)助查找棧和堆的內(nèi)存使用情況。該腳本已延續(xù)到后續(xù)的 Vitis 版本
    的頭像 發(fā)表于 10-24 16:54 ?890次閱讀
    如何在應(yīng)用程序調(diào)試期間分析棧和堆<b class='flag-5'>使用情況</b>

    這個(gè)棧堆大小我設(shè)置256就是start error 設(shè)置128一會(huì)start success 一會(huì)start error是什么情況

    error\"); } return 0; } 這個(gè)棧堆大小我設(shè)置256就是start error 設(shè)置128一會(huì)start success 一會(huì)start error是什么情況
    發(fā)表于 09-29 07:44

    請(qǐng)問(wèn)如何在Keil開(kāi)發(fā)環(huán)境中查看代碼大小和SRAM使用情況

    如何在Keil開(kāi)發(fā)環(huán)境中查看代碼大小和SRAM使用情況
    發(fā)表于 08-20 06:38

    請(qǐng)問(wèn)如何僅使用軟件和 TC375 精簡(jiǎn)板來(lái)測(cè)量函數(shù)調(diào)用的堆棧使用情況

    我想測(cè)量 AURIX TriCore? TC3xx 項(xiàng)目的函數(shù)調(diào)用的堆棧使用情況。 我不知道該怎么做。 我知道事實(shí)上作為硬件我只有一個(gè) TC375 lite 開(kāi)發(fā)板,沒(méi)有 BlueBox 或任何
    發(fā)表于 08-08 07:28

    詳解hal_entry入口函數(shù)

    當(dāng)使用RTOS時(shí),程序從main函數(shù)開(kāi)始進(jìn)行線程調(diào)度;當(dāng)沒(méi)有使用RTOS時(shí),C語(yǔ)言程序的入口函數(shù)main函數(shù)調(diào)用了hal_entry
    的頭像 發(fā)表于 07-25 15:34 ?1982次閱讀

    UVC+MSC實(shí)現(xiàn)中MSC線程未運(yùn)行的原因?

    應(yīng)用線程結(jié)構(gòu) */ \"25:MSC 應(yīng)用程序\" , /* 線程 ID 和線程名稱 */ MscAppThread_Entry , /* MSC 應(yīng)用線程入口函數(shù) */ 0
    發(fā)表于 07-16 07:08

    中興通訊憑借其在非洲大陸實(shí)施的“Signal Reach Program”榮獲WSIS 2025冠軍獎(jiǎng)

    Reach Program”從眾多提案中脫穎而出,榮獲WSIS冠軍獎(jiǎng)(Champion Projects),成為ICT文化多樣性領(lǐng)域唯一獲此殊榮的中國(guó)企業(yè)。此次獲獎(jiǎng)不僅是對(duì)中興通訊在數(shù)字技術(shù)領(lǐng)域持續(xù)
    的頭像 發(fā)表于 07-09 11:02 ?6933次閱讀
    中興通訊憑借其在非洲大陸實(shí)施的“Signal Reach <b class='flag-5'>Program</b>”榮獲WSIS 2025冠軍獎(jiǎng)

    OBC/DC-DC/BMS/熱管理/智能座艙磁性元件使用情況與要求

    理/智能座艙等功能模塊中磁性元件使的用情況與性能要求,《磁性元件與電源》采訪了敦源電子研發(fā)總監(jiān)汪洪偉,為我們一一揭秘。 OBC/DC-DC/BMS/熱管理/智能座艙磁性元件使用情況 隨著新能源汽車向高集成化、智能化方向加速發(fā)展,磁性元件作為電子系統(tǒng)的“隱
    的頭像 發(fā)表于 07-08 14:05 ?950次閱讀
    OBC/DC-DC/BMS/熱管理/智能座艙磁性元件<b class='flag-5'>使用情況</b>與要求

    請(qǐng)問(wèn)如何優(yōu)化OpenVINO?工具套件中的內(nèi)存使用?

    運(yùn)行OpenVINO?推斷時(shí)找不到優(yōu)化內(nèi)存使用情況的方法。
    發(fā)表于 06-25 06:56

    IAR Arm開(kāi)發(fā)工具鏈中--function_sections編譯選項(xiàng)的使用

    本文主要介紹在IAR Arm開(kāi)發(fā)工具鏈中不修改源代碼的情況下使用??function_sections編譯選項(xiàng)把函數(shù)放到單獨(dú)的section。
    的頭像 發(fā)表于 06-13 13:53 ?1785次閱讀
    在<b class='flag-5'>IAR</b> Arm開(kāi)發(fā)工具鏈中--function_sections編譯選項(xiàng)的使用

    S32G3有沒(méi)有辦法從.map文件確定SRAM使用情況

    我有 NXP S32G3 板。我有 .map 文件。有沒(méi)有辦法從 .map 文件確定 SRAM 使用情況。 非常感謝幫助。
    發(fā)表于 04-08 06:00