当前位置:首页 » 《关注互联网》 » 正文

2021-9-23ARM汇编基础之STM32工程_狗都不写系列的博客

16 人参与  2022年01月15日 08:36  分类 : 《关注互联网》  评论

点击全文阅读


前言:

记录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
总结:本次实验按照指导指示,只有到了结果那一块才有了一些问题,经过老师的指导,我了解到自己的问题所在——未造成循环。


点击全文阅读


本文链接:http://zhangshiyu.com/post/33267.html

设置  点击  各段  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1