编译过程中替换函数名的两种方法 (第二种很好使)
方法一
函数名为__wrap_symbol,且称其为包装函数,“symbol”是一个函数名,大致执行过程是这样的:当调用“symbol”函数时,如果“symbol”函数未定义的话就会调用__wrap_symbol函数;__wrap_symbol称做包装函数。
示例:
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函数就会使用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 '
这种方式会将扫描到存在corev_handler的地方均重定义为SW_handler
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
相关推荐
本文简单介绍了芯片制造过程中的两种刻蚀方法 刻蚀(Etch)是芯片制造过程中相当重要的步骤。 刻蚀主要分为干刻蚀和湿法刻蚀。 ①干法刻蚀 利用等离子体将不要的材料去除。 ②湿法刻蚀
发表于 12-06 11:13
•259次阅读
同样是函数,在 C 和 C++ 中有什么区别? 第一个返回值。 C语言的函数可以不写返回值类型,编译器会默认为返回 int。 但是 C++ 的函数,除了构造和析构这
发表于 11-29 10:25
•296次阅读
Linux驱动程序的编译方法主要包括两种: 与内核一起编译 和 编译成独立的内核模块 。以下是对这两种方
发表于 08-30 14:46
•572次阅读
Linux驱动程序的编译方法主要可以归纳为两种: 手动编译 和 使用内核构建系统(Makefile)自动编译 。 1. 手动
发表于 08-30 14:39
•673次阅读
逻辑函数的化简是数字电路设计中的重要步骤,它有助于减少电路中的门数量,提高电路的性能和可靠性。逻辑函数的化简方法主要可以分为
发表于 08-22 16:40
•794次阅读
电容充放电过程中电压的变化规律是一个非常重要的电子学课题,涉及到电容器的基本工作原理和特性。在这篇文章中,我们将详细探讨电容充放电过程中电压的变化规律,包括电容的基本特性、充电过程、放
发表于 07-11 09:43
•5577次阅读
用户介绍一下DHE雷达物位计在测量过程中产生干扰的具体因素都有哪些。 一、DHE雷达物位计在测量过程中,常见的干扰可分为两种:直流干扰和交流干扰。 1、直流干扰 在雷达物位计测量回路
发表于 06-26 16:03
•372次阅读
使用离线工具包安装的esp-idf,vscode 中使用的是esp-idf插件。esp-idf工程正常。但是再添加ESP-ADF的过程中,ESP-ADF中example工程编译出错;顺便问一下,我的系统是win11,已经再电脑高
发表于 06-17 07:49
在数字设备中,采集数字图像的方法有很多种,但最常见的两种方法是:1) 使用数字相机拍摄,2) 通过扫描仪扫描。 一、使用数字相机拍摄 数字相机是一种可以捕捉图像并将其转换为数字格式的设备。数字相机
发表于 05-31 15:48
•843次阅读
函数发生器,作为电子测试和测量领域的重要工具,其稳定性和可靠性对于实验和测试结果的准确性至关重要。然而,由于各种原因,函数发生器在使用过程中可能会遇到各种故障。本文将详细介绍函数发生器
发表于 05-15 11:45
•1017次阅读
这两种方法都是示波器测量频率的常用方法,可以根据实际情况选择使用。同时,需要注意在测量过程中,确保示波器的设置和参数选择正确,以获得准确的测量结果。
发表于 05-08 17:22
•4600次阅读
一站式PCBA智造厂家今天为大家讲讲smt加工过程中空洞产生的原因有哪些?解决SMT加工过程中空洞问题的方法。SMT加工是电子制造中常见的一种表面贴装技术,它具有高效、高质、高可靠性等特点。然而,在
发表于 04-02 09:40
•610次阅读
描述 在所有编程和脚本语言中,函数是可以在程序中重复使用的语句块。在 PHP 中,函数的概念与另一种语言(如“C”)中的概念相同。标准 PH
发表于 03-20 14:27
•399次阅读
请问:使用ADUC843BSZ62-5替换ADUC831的过程中出现一些问题。外部晶振更换为32.768KHZ。系统上电后发现,PSEN引脚始终为0V,CREF电压为0.32V。VREF电压在1V波动。使用WSD下载程序时,无法识别芯片型号。
发表于 01-11 07:07
高频电流探头的两种测量方法的过程与特点分析 高频电流探头是一种用于测量高频电流的仪器,常用于电力系统、通信系统和电子设备中。它具有非接触式测量、高精度、宽频带等特点,广泛应用于各个领
发表于 01-05 16:12
•832次阅读
评论