前言:
记录build生成的hex文件各段的大小,了解Hex文件格式及其前8个字节内容含义。 最终生成的 hex 文件的各段大小
hex文件各段大小: :020000040800F2 :100000000006002031010008390100083B0100080A :100010003D0100083F010008410100080000000008 :100020000000000000000000000000004301000884 :1000300045010008000000004701000849010008D0 :100040004B0100084B0100084B0100084B01000860 :100050004B0100084B0100084B0100084B01000850 :100060004B0100084B0100084B0100084B01000840 :100070004B0100084B0100084B0100084B01000830 :100080004B0100084B0100084B0100084B01000820 :100090004B0100084B0100084B0100084B01000810 :1000A0004B0100084B0100084B0100084B01000800 :1000B0004B0100084B0100084B0100084B010008F0 :1000C0004B0100084B0100084B0100084B010008E0 :1000D0004B0100084B0100084B0100084B010008D0 :1000E0004B0100084B0100084B0100084B010008C0 :1000F0004B0100084B0100084B0100084B010008B0 :100100004B0100084B0100084B0100084B0100089F :100110004B0100084B0100084B0100084B0100088F :100120004B0100084B0100084B0100084B0100087F :100130000948804709480047FEE7FEE7FEE7FEE77B :10014000FEE7FEE7FEE7FEE7FEE7FEE704480549B7 :10015000054A064B7047000041020008990200085A Hex文件格式及其前8个字节内容含义。
|020000040800F2 | | |02–|-这个记录当中数据字节的数量-| | 0000 |地址域,对于扩展线性地址记录,这个域总是 0000 | | | |-04-|-记录类型 04 (扩展线性地址记录)-| | 0800 | 是地址的高 16 位 | | | |-F2-|-是这个记录的校验和,计算方法:01h + NOT(02h + 00h + 00h + 04h + 08h + 00h)-| | | |
新建工程:
打开keil,点击菜单栏的Project,如下图所示; 在弹出的窗口点击New uVision Project,创建新的工程 在弹出的窗口分别设置;
设置项目工程的路径; 设置项目工程的名称,这里使用TEST; 点击保存;
配置环境:
设置工程的目标环境,本文基于STM32F103ZE,因此在弹出的窗口选择相应的选项,点击保存即可。 如果无法找到该窗口,可以在工具栏点击魔术棒图标;如下图所示; ARM的CMSIS已经把开发所需要的软件组件都封装好了,因此直接选择即可;
CMSIS下选择CORE; Device下Startup,其中包含了启动文件;
添加源文件
添加源文件,因为创建汇编项目;
选择 Asm File (.s) ,创建汇编文件; 设置源文件的名称; 点击保存;
源代码如下:
AREA MYDATA, DATA
AREA MYCODE, CODE ENTRY EXPORT __main
__main MOV R0, #10 MOV R1, #11 MOV R2, #12 MOV R3, #13 ;LDR R0, =func01
BL func01
;LDR R1, =func02
BL func02
BL func03
LDR LR, =func01
LDR PC, =func03
B .
func01 MOV R5, #05 BX LR
func02 MOV R6, #06 BX LR
func03 MOV R7, #07 MOV R8, #08 BX LR
仿真器设置:
然后点击debug,在“Debug”选项卡中选择“Use Simulator”,表示使用软件仿真;选择“Run to main()”则表示跳过汇编代码,直接跳转到main函数开始仿真。设置下面的“Dialog DLL”项为“DARMSTM.DLL”和“TARMSTM.DLL”;parameter项为“-pSTM32F103C8”,用于设置支持STM32F103C8的软硬件仿真。
编译调试:
参考文献:https://blog.csdn.net/u010632165/article/details/106481146 总结:本次实验按照指导指示,只有到了结果那一块才有了一些问题,经过老师的指导,我了解到自己的问题所在——未造成循环。
|