編譯過程中替換函數(shù)名的兩種方法 (第二種很好使)
方法一
函數(shù)名為__wrap_symbol,且稱其為包裝函數(shù),“symbol”是一個(gè)函數(shù)名,大致執(zhí)行過程是這樣的:當(dāng)調(diào)用“symbol”函數(shù)時(shí),如果“symbol”函數(shù)未定義的話就會(huì)調(diào)用__wrap_symbol函數(shù);__wrap_symbol稱做包裝函數(shù)。
示例:
DEVICE = ' -march=rv32imac -Wl,--wrap,timer_irq_handler -mabi=ilp32 -DUSE_PLIC -DUSE_M_TIME -DNO_INIT -mcmodel=medany -msmall-data-limit=8 -L. -nostartfiles -lc '
void __wrap_timer_irq_handler(uint32_t mcause)
{
#warning requires critical section if interrupt nesting is used.
rt_interrupt_enter();
rt_tick_increase();
rt_interrupt_leave();
}
若定義了timer_irq_handler函數(shù)就會(huì)使用timer_irq_handler,未定義timer_irq_handler就使用__wrap_timer_irq_handler
方法二
示例
下文是張向量表,向量表使用了corev_handler
vector_table:
j corev_handler // irq0
j corev_handler
j corev_handler
j corev_handler // irq3
j corev_handler
j corev_handler
...
在編譯命令中添加如下代碼
DEVICE = ' -march=rv32imac -D"corev_handler=SW_handler" -mabi=ilp32 -DUSE_PLIC -DUSE_M_TIME -DNO_INIT -mcmodel=medany -msmall-data-limit=8 -L. -nostartfiles -lc '
這種方式會(huì)將掃描到存在corev_handler的地方均重定義為SW_handler
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
相關(guān)推薦
本文簡(jiǎn)單介紹了芯片制造過程中的兩種刻蝕方法 ? 刻蝕(Etch)是芯片制造過程中相當(dāng)重要的步驟。 刻蝕主要分為干刻蝕和濕法刻蝕。 ①干法刻蝕 利用等離子體將不要的材料去除。 ②濕法刻蝕
發(fā)表于 12-06 11:13
?320次閱讀
同樣是函數(shù),在 C 和 C++ 中有什么區(qū)別? 第一個(gè)返回值。 C語言的函數(shù)可以不寫返回值類型,編譯器會(huì)默認(rèn)為返回 int。 但是 C++ 的函數(shù),除了構(gòu)造和析構(gòu)這
發(fā)表于 11-29 10:25
?343次閱讀
Linux驅(qū)動(dòng)程序的編譯方法主要包括兩種: 與內(nèi)核一起編譯 和 編譯成獨(dú)立的內(nèi)核模塊 。以下是對(duì)這兩種方
發(fā)表于 08-30 14:46
?628次閱讀
Linux驅(qū)動(dòng)程序的編譯方法主要可以歸納為兩種: 手動(dòng)編譯 和 使用內(nèi)核構(gòu)建系統(tǒng)(Makefile)自動(dòng)編譯 。 1. 手動(dòng)
發(fā)表于 08-30 14:39
?761次閱讀
邏輯函數(shù)的化簡(jiǎn)是數(shù)字電路設(shè)計(jì)中的重要步驟,它有助于減少電路中的門數(shù)量,提高電路的性能和可靠性。邏輯函數(shù)的化簡(jiǎn)方法主要可以分為
發(fā)表于 08-22 16:40
?906次閱讀
電容充放電過程中電壓的變化規(guī)律是一個(gè)非常重要的電子學(xué)課題,涉及到電容器的基本工作原理和特性。在這篇文章中,我們將詳細(xì)探討電容充放電過程中電壓的變化規(guī)律,包括電容的基本特性、充電過程、放
發(fā)表于 07-11 09:43
?5907次閱讀
用戶介紹一下DHE雷達(dá)物位計(jì)在測(cè)量過程中產(chǎn)生干擾的具體因素都有哪些。 一、DHE雷達(dá)物位計(jì)在測(cè)量過程中,常見的干擾可分為兩種:直流干擾和交流干擾。 1、直流干擾? ? ??? 在雷達(dá)物位計(jì)測(cè)量回路
發(fā)表于 06-26 16:03
?380次閱讀
使用離線工具包安裝的esp-idf,vscode 中使用的是esp-idf插件。esp-idf工程正常。但是再添加ESP-ADF的過程中,ESP-ADF中example工程編譯出錯(cuò);順便問一下,我的系統(tǒng)是win11,已經(jīng)再電腦高
發(fā)表于 06-17 07:49
在數(shù)字設(shè)備中,采集數(shù)字圖像的方法有很多種,但最常見的兩種方法是:1) 使用數(shù)字相機(jī)拍攝,2) 通過掃描儀掃描。 一、使用數(shù)字相機(jī)拍攝 數(shù)字相機(jī)是一種可以捕捉圖像并將其轉(zhuǎn)換為數(shù)字格式的設(shè)備。數(shù)字相機(jī)
發(fā)表于 05-31 15:48
?872次閱讀
函數(shù)發(fā)生器,作為電子測(cè)試和測(cè)量領(lǐng)域的重要工具,其穩(wěn)定性和可靠性對(duì)于實(shí)驗(yàn)和測(cè)試結(jié)果的準(zhǔn)確性至關(guān)重要。然而,由于各種原因,函數(shù)發(fā)生器在使用過程中可能會(huì)遇到各種故障。本文將詳細(xì)介紹函數(shù)發(fā)生器
發(fā)表于 05-15 11:45
?1057次閱讀
這兩種方法都是示波器測(cè)量頻率的常用方法,可以根據(jù)實(shí)際情況選擇使用。同時(shí),需要注意在測(cè)量過程中,確保示波器的設(shè)置和參數(shù)選擇正確,以獲得準(zhǔn)確的測(cè)量結(jié)果。
發(fā)表于 05-08 17:22
?4703次閱讀
一站式PCBA智造廠家今天為大家講講smt加工過程中空洞產(chǎn)生的原因有哪些?解決SMT加工過程中空洞問題的方法。SMT加工是電子制造中常見的一種表面貼裝技術(shù),它具有高效、高質(zhì)、高可靠性等特點(diǎn)。然而,在
發(fā)表于 04-02 09:40
?622次閱讀
描述 在所有編程和腳本語言中,函數(shù)是可以在程序中重復(fù)使用的語句塊。在 PHP 中,函數(shù)的概念與另一種語言(如“C”)中的概念相同。標(biāo)準(zhǔn) PH
發(fā)表于 03-20 14:27
?417次閱讀
一文看懂電感替換方法有哪些 gujing 編輯:谷景電子 電感是各種電子產(chǎn)品中不可缺少的電感元件之一,大部分人對(duì)電感是存在是存在誤解的。有的人覺得電感的存在感很低,有的人覺得電感的質(zhì)量不重要。如果你
發(fā)表于 01-22 19:28
?1179次閱讀
請(qǐng)問:使用ADUC843BSZ62-5替換ADUC831的過程中出現(xiàn)一些問題。外部晶振更換為32.768KHZ。系統(tǒng)上電后發(fā)現(xiàn),PSEN引腳始終為0V,CREF電壓為0.32V。VREF電壓在1V波動(dòng)。使用WSD下載程序時(shí),無法識(shí)別芯片型號(hào)。
發(fā)表于 01-11 07:07
評(píng)論