在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

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

IAR愛亞系統 ? 來源:IAR愛亞系統 ? 2024-11-25 16:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

問題

IAR中默認的入口函數是__iar_program_start,使能stack usage analysis之后:

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

生成的map文件中STACK USAGE章節里面會包含Program entry的stack使用相關信息:

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

如果對應啟動代碼沒有使用默認的入口函數__iar_program_start,需要使用--entry鏈接器選項指定對應的入口函數(以使用入口函數Reset_Handler為例):

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

但是使能stack usage analysis之后,生成的map文件中STACK USAGE章節里面沒有包含Program entry的stack使用相關信息:

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

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

原因

正常來說,編譯器可以生成每個函數的調用和stack使用信息,鏈接器可以計算出每個根函數的最大stack使用。但是如果源代碼是用匯編寫的,那么對應函數的調用和stack使用信息需要用戶指定(如果用戶不指定,鏈接器沒有辦法知道對應的信息,從而沒有辦法計算出對應的最大stack使用)。

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

解決辦法

需要在對應的stack usage control file (suc)里面指定對應的函數調用和stack使用信息:

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

對應.suc文件中指定對應的信息:

/* 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章節里面會包含Program entry的stack使用相關信息:

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

注意:上面的情況是基于如下的啟動代碼:

Reset_Handler


        LDR     R0, =SystemInit
        BLX     R0
        LDR     R0, =__iar_program_start
        BX      R0
如果對應的啟動代碼沒有調用__iar_program_start,那么suc文件里面需要指定入口函數調用的所有函數:
/* 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章節里面會包含Program entry的stack使用相關信息:

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

參考文獻:

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

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

    關注

    5

    文章

    376

    瀏覽量

    37376
  • 函數
    +關注

    關注

    3

    文章

    4377

    瀏覽量

    64556

原文標題:如何獲取入口函數不是__iar_program_start的Program entry的stack使用情況

文章出處:【微信號:IAR愛亞系統,微信公眾號:IAR愛亞系統】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    IAR Arm開發工具鏈中--function_sections編譯選項的使用

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

    S32G3有沒有辦法從.map文件確定SRAM使用情況?

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

    使用DLPC230-Q1 Control Program Lite調試時,點擊連接時報錯x80040154是怎么回事?

    按照說明連接好線纜,使用DLPC230-Q1 Control Program Lite調試時,參數按照說明設置的,但點擊連接時報錯:x80040154
    發表于 02-21 14:09

    通過DLPC230 control program上位機可以投影png格式的圖片,我想請問一下系統是否支持投影動畫?

    我現在有一套DLP系統,型號如標題,我通過DLPC230 control program上位機可以投影png格式的圖片,我想請問一下系統是否支持投影動畫,如果可以,具體如何操作,另外,驅動內存最多支持存放多少圖片?
    發表于 02-21 06:59

    安裝完Control Program 2.0.0.0,點擊Connect時候就會報錯,是哪里出了問題?

    我安裝完 Control Program 2.0.0.0,每當我點擊Connect時候就會跳出以下錯誤,請問我是否遺漏甚麼呢? 謝謝。 =====================.log
    發表于 02-20 07:11

    DLP230 control program是否支持一主多從模式?

    目前使用DLP230 control program 控制DLP5530光機。 現在有這樣一個需求:用DLP 230 control program 連接cheetah SPI(1個
    發表于 02-17 07:20

    Linux下如何管理虛擬內存 使用虛擬內存時的常見問題

    查看虛擬內存使用情況 : 使用 free 命令可以查看當前的虛擬內存使用情況,包括物理內存、交換空間等的使用情況。 調整交換空間大小 : 如果需要調整交換空間的大小,可以使用 swapoff 命令關閉現有的交換空間,然后使用
    的頭像 發表于 12-04 09:19 ?1292次閱讀

    LMX2592正常使用情況下溫度大概有多少?

    你好,LMX2592如果將 OUTA_PD = 1;OUTB_PD = 1;為什么芯片還是很燙,正常使用情況下溫度大概有多少,對于溫度的變化可以提供一下參考嗎
    發表于 11-08 08:32

    TPLD-PROGRAM用戶指南

    電子發燒友網站提供《TPLD-PROGRAM用戶指南.pdf》資料免費下載
    發表于 10-30 09:57 ?0次下載
    TPLD-<b class='flag-5'>PROGRAM</b>用戶指南

    TMS320C64x在高性能DSP應用中的高速緩存使用情況

    電子發燒友網站提供《TMS320C64x在高性能DSP應用中的高速緩存使用情況.pdf》資料免費下載
    發表于 10-21 09:43 ?0次下載
    TMS320C64x在高性能DSP應用中的高速緩存<b class='flag-5'>使用情況</b>

    TI 15.4-Stack軟件

    電子發燒友網站提供《TI 15.4-Stack軟件.pdf》資料免費下載
    發表于 08-27 10:37 ?0次下載
    TI 15.4-<b class='flag-5'>Stack</b>軟件

    tc377燒錄時連接正常,但Program失敗了,為什么?

    使用DAP MiniWiggler+Memtool對TC377進行燒錄時,Connection正常后,在Program All時,Progress進度條無任何進度,無法將軟件燒錄進去。請問
    發表于 07-23 06:26

    Protues中自己封裝的芯片元件無Program File、Clock Frequency選項怎么解決,求求大神了!

    Protues中自己封裝的芯片元件無Program File、Clock Frequency選項怎么解決,求求大神了!
    發表于 07-16 11:36

    使用debug調試時出現無法進入main的情況,為什么?

    , // Thread entry function RT_NULL,// Parameter default_task_stack, // Stack start address
    發表于 07-15 07:09

    Banana Pi BPI-M7 RK3588開發板在 Linux 上檢查 Rockchip NPU 使用情況

    如下介紹如何監控 Rockchip 設備的 NPU 使用情況。 如今,新型設備開始配備內置 AI 芯片。“AI 芯片”的正確技術術語是 NPU,即神經處理單元。 如果您有板載 NPU
    的頭像 發表于 07-11 16:47 ?809次閱讀
    Banana Pi BPI-M7 RK3588開發板在 Linux 上檢查 Rockchip NPU <b class='flag-5'>使用情況</b>
    主站蜘蛛池模板: 俺也来国产精品欧美在线观看 | 久草视频资源在线 | 在线视频资源 | 免费人成在线观看视频色 | 色多多在线免费观看 | 国产农村一一级特黄毛片 | 日本三黄色大 | 亚洲精品久久婷婷爱久久婷婷 | 亚洲一区二区三区电影 | 欧美一区二区三区男人的天堂 | 边做饭边被躁欧美三级小说 | 国产女主播精品大秀系列在线 | 黄色aaa大片| 在线免费观看色片 | 你懂的视频在线看 | 天天干天天操天天插 | 天天色天天操天天射 | 成人夜色视频网站在线观看 | 一区二区三区四区视频在线观看 | 天天好比 | 久久综合欧美成人 | 国产视频综合 | 与子乱刺激对白在线播放 | 日处女穴| 欧美综合色 | 中韩日欧美电影免费看 | 麦克斯奥特曼在线观看 | 亚洲欧美在线一区二区 | 六月婷婷精品视频在线观看 | 色婷婷激婷婷深爱五月小说 | 欧美午夜性 | 男人j进女人j的一进一出视频 | 亚洲欧洲国产精品你懂的 | 511韩国理论片在线观看 | 国产三级在线观看播放 | 国产欧美日韩va | 黄色日比 | 美女张开腿让男生桶出水 | 欧美操穴视频 | 黄色片网站观看 | 亚洲人成综合网站在线 |