编译过程中替换函数名的两种方法 (第二种很好使)
方法一
函数名为__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
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
相关推荐
Linux驱动程序的编译方法主要包括两种: 与内核一起编译 和 编译成独立的内核模块 。以下是对这两种方
发表于 08-30 14:46
•339次阅读
Linux驱动程序的编译方法主要可以归纳为两种: 手动编译 和 使用内核构建系统(Makefile)自动编译 。 1. 手动
发表于 08-30 14:39
•439次阅读
逻辑函数的化简是数字电路设计中的重要步骤,它有助于减少电路中的门数量,提高电路的性能和可靠性。逻辑函数的化简方法主要可以分为
发表于 08-22 16:40
•432次阅读
电容充放电过程中电压的变化规律是一个非常重要的电子学课题,涉及到电容器的基本工作原理和特性。在这篇文章中,我们将详细探讨电容充放电过程中电压的变化规律,包括电容的基本特性、充电过程、放
发表于 07-11 09:43
•3705次阅读
使用离线工具包安装的esp-idf,vscode 中使用的是esp-idf插件。esp-idf工程正常。但是再添加ESP-ADF的过程中,ESP-ADF中example工程编译出错;顺便问一下,我的系统是win11,已经再电脑高
发表于 06-17 07:49
在数字设备中,采集数字图像的方法有很多种,但最常见的两种方法是:1) 使用数字相机拍摄,2) 通过扫描仪扫描。 一、使用数字相机拍摄 数字相机是一种可以捕捉图像并将其转换为数字格式的设备。数字相机
发表于 05-31 15:48
•647次阅读
描述 在所有编程和脚本语言中,函数是可以在程序中重复使用的语句块。在 PHP 中,函数的概念与另一种语言(如“C”)中的概念相同。标准 PH
发表于 03-20 14:27
•336次阅读
高频电流探头的两种测量方法的过程与特点分析 高频电流探头是一种用于测量高频电流的仪器,常用于电力系统、通信系统和电子设备中。它具有非接触式测量、高精度、宽频带等特点,广泛应用于各个领
发表于 01-05 16:12
•691次阅读
在SMT贴片加工过程中,锡膏和助焊剂会产生残留物质,残留物中包含有有机酸和可分解的电离子,其中有机酸具有腐蚀作用,电离子残留在焊盘还会引起短路,而且这些残留物在PCBA板上是比较脏的,也不符合客户对产品清洁度的要求。所以,对PCBA板进行清洗是非常有必要的,接下来为大家介
发表于 12-20 10:04
•815次阅读
Multisim仿真幅频特性曲线和相频特性曲线的两种方法
发表于 12-11 17:29
•1.7w次阅读
利用SPICE进行放大器稳定性分析的两种方法
发表于 12-05 15:38
•4765次阅读
MySQL是目前非常流行的开源数据库管理系统之一,它具有强大的功能和性能。其中之一的字符串函数REPLACE,可以用于替换字符串中的指定字符或字符串。在本文中,我们将详细讨论MySQL替换
发表于 11-30 10:44
•1417次阅读
PoE以太网供电的两种方法 PoE(Power over Ethernet)以太网供电是一种通过以太网电缆向网络设备传输电力的技术。它可以为无线接入点、IP电话、网络摄像机、交换机等设备提供
发表于 11-28 15:51
•847次阅读
Python提供了多种方法将字符元素替换成数字。在本文章中,我将详尽、详实、细致地介绍其中的几种常见方法。 使用replace()函数: r
发表于 11-22 09:48
•933次阅读
一、函数参数的分类 函数的参数分为两类:形参 及 实参 形参:形参是在创建过程中声明的参数,如果不给形参传入特定的实参,形参就没有实际的意义 实参:实参是在
发表于 11-14 11:13
•2459次阅读
评论