Keil5-MDK 使用编译步骤及异常与修改(生成axf文件和bin文件)
其实我是比较触头硬件编程这个事情的,因为我没学汇编计组还挂了,重修也没学明白,因为课时间重了办的免听,最后还是靠我的学弟们,贡献了他们老师给画的重点。结果毕业后找工作,就c++熟一些,急乎乎的找了c++的工作,又因为c++本身的性质,被提溜去硬啃ARM。
没有头绪的卡了一周,老板说你拿Keil写个程序,然后再反汇编看看。
那行,先试试怎么写第一个程序。
0 Keil安装
Keil的安装,这一步我就跳过了,因为这个软件是交接工作的时候别人帮我装的。
https://blog.csdn.net/ybhuangfugui/article/details/51501781
1 新建工程
打开软件 Project→New uVersion Project→设置存储路径→设置工程名称
设置单片机型号,我用的是ARMCM3。
(这两步懒得重新操作一遍截图了,反正所有的教程上都是)
点这个,新建一个空白文件,保存的时候文件名改成test.c,这里就是写c代码的地方。
在Source Group1 文件夹那里右键单击导入add.c(无视我下边绿色的那一些,那些是后面才生成的)
我就随便写了个a+b程序,然后点击Option for Target…
Create HEX File默认没有选,给它勾上。
Translate,我看别人管它叫转换。
此时一切正常
Build编译
然后就开始出现异常
2 异常. \Objects\Add.sct (7): error:I6236E: No section matches selector - no section to be FIRST/LAST.
这是没有加载启动文件
Manage Run-Time Environment
把这个勾上。
然后重新编译,出现新的问题。
3 异常 C:\Keil_v5\AEL ( PAcXN AERN(XNSIS\5.0.\pevice AM/ARNCXA3 \Inc1ude 2EANCN83, (110); error: 15: canmnot open scource input file “core _ams.h” : No such #include “core cm3.h”
把C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.0.1\CMSIS\Include路径下的文件(我是默认路径,自己设了别的话可以去相应位置找)
粘贴到
再编译就正常了。
现在生成了Add.axf文件
bin文件是真正的可执行文件;axf文件是ARM的调试文件,除了包含bin的内容之外,还附加了其他的调试信息;这些调试信息加在可执行的二进制数据的前面,所以把axf文件写到ARM的指令执行地址(一般是0x0)将不能运行,
因为在此地址前几十个字节的数据不是可执行的二进制数据,而是头部的调试信息;
而bin文件正是去掉了调试信息的可以执行的“精华”部分。
4 生成bin文件
还是点击那个很像魔法棒的Option for Target…
勾选After Build/Rebuild下的Run #1,并设置指令
C:\Keil_v5\ARM\ARMCLANG\bin\fromelf.exe --bin --output ./Objects/Add.bin ./Objects/Add.axf
也就是
Keil自带的fromelf.exe路径 --bin --output 结果bin文件的存放位置(以工程文件位置为标准的相对路径) 对应的axf文件路径
再点击编译
相关链接
ARM映像文件
https://blog.csdn.net/chun_1959/article/details/43732373
使用IDA pro逆向ARM M系核心的Bin固件
https://zhuanlan.zhihu.com/p/58938992
STM32固件逆向
https://zhuanlan.zhihu.com/p/526613532
学 Win32 汇编[28] - 跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
https://blog.csdn.net/laogaoav/article/details/9259503
STM32——IDA反编译 Hex\Bin文件成C代码(转)
https://www.cnblogs.com/panda-w/p/11548121.html
【MCU】可怕,别人把我MCU固件给反汇编了!(逆向)
https://blog.csdn.net/qq_33471732/article/details/109507340
Keil5-MDK 使用编译步骤及异常与修改(生成axf文件和bin文件)相关推荐
- 第48章 MDK的编译过程及文件类型全解—零死角玩转STM32-F429系列
第48章 MDK的编译过程及文件类型全解 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.co ...
- 第48章 MDK的编译过程及文件类型全解
Frm: http://www.cnblogs.com/firege/p/5806134.html 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教 ...
- MDK的编译过程及文件类型全解——(二)
前言: 为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长. 本文转载自:第48章 MDK的编译过程及文件类型全解-零死角玩转STM32 ...
- MDK中hex转BIN文件生成
MDK开发的技巧: 1.使用fromelf.exe程序,将.hex或者.axf转化为.bin文件. 2.利用.bat批处理文件,将.bin和.hex拷贝到需要的文件夹下. 例如:E685工装中 Run ...
- ARM(IMX6U)裸机汇编LED驱动实验——驱动编写、编译链接起始地址、烧写bin文件到SD卡中并运行
参考:Linux之ARM(IMX6U)裸机汇编LED驱动实验–驱动编写 作者:一只青木呀 发布时间: 2020-08-07 09:13:48 网址:https://blog.csdn.net/weix ...
- keil5环境下生成bin文件
1. 首先对于keil5其编译生成的HEX文件,一般通过勾选如下: 在进行ISP烧写时,就可以通过传送HEX文件进行烧写. 2. 对于烧写而言不仅仅可以通过HEX文件进行烧写,还可以通过BIN文件进行 ...
- KEIL5 MDK编译后出现.\Output\led.axf: Error: L6218E: Undefined symbol SystemInitreferred from startup_解决方案
KEIL5 MDK 编译后出现错误提示信息 .\Output\led.axf: Error: L6218E: Undefined symbol SystemInit (referred from st ...
- Keil5使用AC6编译后,生成bin文件变为生成文件夹的解决办法
Keil5使用AC6编译后,生成bin文件变为生成文件夹的解决办法 KEIL AC5到AC6需要注意的地方 从AC5移植到AC6 解决流程 关键步骤 最近同事咨询改用keil的最新版本编译器编译原来的 ...
- MDK 的编译过程及文件类型全解
出处:MDK 的编译过程及文件类型全解 MDK 的编译过程及文件类型全解 ------(在arm9的开发中,这些东西都是我们自己搞定的,但是在windows上,IDE帮我们做好了,了解这些对深入开发是 ...
最新文章
- linux记录用户命令的日志是,用日志记录Linux用户执行的每一条命令
- 数字信号处理基础----FM的调制与解调
- java h5在线音频_用h5 audio播放mp3 播放一分钟就报错了
- Docker ASP.NET Core 2.0 微服务跨平台实践
- 一步步手动实现热修复(一)-dex文件的生成与加载
- movielens推荐系统_案例|推荐系统的评估指标
- Apache Hudi 在 B 站构建实时数据湖的实践
- type traits
- 设计字体打包_再也不用熬夜设计字体了!525款世界级绝美PS字体包免费送
- 元月份退休能享受涨养老金的待遇吗?
- 新款iPhone现已曝光,跟风华为“浴霸三摄”,没有5G版本
- 用Aliyun E-MapReduce集群的sqoop工具和数据库同步数据如何配置网络
- CSS中expression怎么用? CSS expression详解
- JS之经典for循环闭包问题解决方法
- EMC混合云解决方案Enterprise Hybrid Cloud升级
- 686. Repeated String Match
- Android开发——减小APK大小
- 19讲项目实战站内搜索页
- 机器学习梯度消失,梯度爆炸原因
- 网络投票中的作弊与反作弊
热门文章
- 昆石VOS3000_2.1.2.4完整安装包及安装脚本
- Vista HTTPS 证书错误
- JAVA多线程读写文件如何做到线程安全?(文件锁,FileChannel)
- Uniswap V2-Core 部分智能合约代码解析
- [洪流学堂]Hololens开发:Unity3d与Visual Studio最佳实践
- PDF怎么编辑?如何设置页面?
- 聊聊ThoughtWorks面试(郑大版 社招)+ PS:应届生简单流程介绍
- 买手机怎么选?答:看图买
- UPRtek光谱仪维修LED光谱计维修MK350N
- Kali Linux中无法使用pip的解决方法