Keil MDK中编译连接选项--keep的用法
使用Keil mdk编程,假如有一个有用的函数你定义了但是没有显式的调用,mdk在默认编译链接时,将会把这个函数从整个程序总删除掉,以节省ROM.
比如,你在ROM的0x00010000处定义了一个函数void led(void),然后使用函数指针来调用它:
void (*func)(); //函数指针
func= (void (*)()) (0x00010000);//定位到指定的入口地址0x00010000
(*func)();//调用led()函数
原本是想通过函数指针的方式调用led()这个函数,结果因为没有显示调用过程在编译优化时被删掉。
能否让编译器不自动优化t这个函数?
当然有,就是使用链接器命令:--keep=section_id 此选项指定删除未使用节时不能删除的输入节。
其中 section_id 是以下项之一:
symbol 指定在删除未使用节时保留定义 symbol 的输入节。 如果 symbol 存在多个定义,则 armlink 将生成一则错误消息。
例如,您可能使用 --keep=int_handler。若要保留定义以 handler 结尾的符号的所有节,请使用--keep=*handler。
object(section)指定在删除未使用节时保留 object 中的 section。
例如,若要保留vectors.o 对象的 vect 节,请使用: -- keep=vectors.o(vect)
若要保留 vectors.o 对象中节名称的前三个字母是 vec 的所有节,请使用:--keep=vectors.o(vec*)
Keil MDK中编译连接选项--keep的用法相关推荐
- 在Keil MDK中创建STM32F4系列的工程模板(标准外设库)
在Keil MDK中创建STM32F4系列的工程模板(标准外设库) 一.前往ST官网下载标准外设库 二.根据个人风格创建文件夹目录 三.创建MDK工程,创建分组 四.添加系统启动必要源文件 五.添加头 ...
- keil MDK中如何生成*.bin格式的文件
在Realview MDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件.虽然这两个格式的文件非常有利于ULINK2仿真器的下载和调试,但是ADS的用户更习惯 ...
- KEIL MDK中的RO、RW和ZI
KEIL MDK中的RO.RW和ZI DATA理解及KEIL中ROM和RAM使用大小计算 (2013-12-25 09:33:06) 转载▼ 标签: it 分类: 嵌入式相关 本文来源与网络 http ...
- 【Keil MDK中工程报错Browse information of one of more files is not available解决方法】
[Keil MDK中工程报错Browse information of one of more files is not available解决方法] 今天在进行工程编写时,出现了这个错误Browse ...
- keil(MDK)中出现error: #513:
keil(MDK)中出现error: #513: a value of type "int" cannot be assigned to an entity of type &qu ...
- 关于网络连接中WiFi连接选项突然消失的解决方法(Win10)
电脑开机之后找不到WiFi,也就是网络连接中WiFi连接选项突然消失的现象我已经遇到了好几次,甚至有一次上网上到一半突然就断了,发现WiFi连接选项消失了.这种情况重启一下电脑通常就能恢复,但问题其实 ...
- Keil MDK 中利用串口及c标准库函数printf为cortex-m3做调试输出(lpc1788)
摘要: c标准库的printf是输出给显示器的,将printf函数进行修改,使其输出重定向至串口,就能实现目的.printf函数调用fputc函数完成实质输出单一字符的工作,因此将fputc函数修改使 ...
- 解决KEIL MDK中JLINK烧录代码时提示the connected jlink is defective问题
1.问题分析 网上有许多分析这个问题的博客,可以去参考 2.解决方法 a.在segger.com的官网下载了6.5版本的jlink驱动文件,安装后C:/program file(x86)/Segger ...
- 在Keil MDK中无法使用gmtime函数进行时间戳转换
硬件平台STM32,软件平台Keil MDK 5.18 由于项目中需要用到UNIX时间戳和日历的来回转换,于是想到C库函数<time.h>里面有现成的函数可以使用. 于直接使用mktime ...
最新文章
- JZOJ 5443. 【NOIP2017提高A组冲刺11.2】字典序
- Swoole 源码分析——内存模块之内存池
- 努力≠上进!那些“熬夜”持续精进的人有多可怕!
- Windows平台RTMP/RTSP播放器如何实现实时音量调节
- JDK与Java SE/EE/ME的区别
- 酒桌上说话时的七大注意事项
- android-goldfish-3.4内核源码下载与编译
- ubuntu下安装gcc
- 网页html跑马灯,web实现跑马灯
- win10显卡驱动怎么装_既然大家都说装了win10,就不用鲁大师监测显卡温度,为什么呢?...
- Word文档图标变成空白如何恢复
- Emacs 配置 latex
- ISDA 国际掉期交易协会
- 一箭穿心程序编码c语言,一个简单的一箭穿心程序
- XTUOJ-1379 折纸-贰
- 解决error:torch has an invalid wheel,.dist -info directory not fount
- 鱼眼图像的校正(Python实现)
- 时空召唤的服务器维护,时空召唤3月2日更新维护内容分享
- 微信小程序学习——wx.for的使用
- 【牛客网-华为机试题目录】持续更新中