keil的安装:
下载:
网址:
链接: [https://pan.baidu.com/s/1gT2mUr8Dt3tImgKjJL4AyA
](https://www.csdn.net/)提取码:1234
安装:
点击exe文件,然后点击next
然后勾选I agree ,再点击next
然后选择路径,点击next
然后选择注册信息,内容随意
然后点击安装
最后点击finish
安装STM包
点击文件夹中的Keil.STM32F1xx_DFP.2.1.0
点击next,然后点击finish。
安装就完成了。
stm32程序——闪烁LED
创建Project
点击Project->New μVision Project
输入名称LED
点击保存。
选择STM32芯片
然后点击OK,然后勾选图中的内容
点击OK
然后右键Source->Add a NEW ITEM
然后点击Add。
然后输入以下代码:
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
配置环境
点击Options for Target
打开Debug,
并且,修改设置点击Edit->Configuration
修改为图中样子
点击OK
然后编译,调节
然后,界面会变成这样
调试效果:
分析生成的HEX文件
文件大小:
生成HEX文件:
打开Options for Target,打开output,勾选Create HEX File
然后点击ok,再打开文件夹,找到hex文件。
分析
用文本打开。
:020000040800F2
:1000000000060020ED000008F5000008F7000008D9
:10001000F9000008FB000008FD00000800000000D7
:10002000000000000000000000000000FF000008C9
:10003000010100080000000003010008050100089C
:100040000701000807010008070100080701000870
:100050000701000807010008070100080701000860
:100060000701000807010008070100080701000850
:100070000701000807010008070100080701000840
:100080000701000807010008070100080701000830
:100090000701000807010008070100080701000820
:1000A0000701000807010008070100080701000810
:1000B0000701000807010008070100080701000800
:1000C00007010008070100080701000807010008F0
:1000D00007010008070100080701000807010008E0
:1000E00007010008070100080701000809488047C8
:1000F00009480047FEE7FEE7FEE7FEE7FEE7FEE70A
:10010000FEE7FEE7FEE7FEE704480549054A064B21
:1001100070470000FD0100085502000800000020A3
:1001200000060020000200200002002070477047F7
:100130007047000080B500F001F880BD82B041F248
:1001400004000021C4F202000191009150F8041C47
:1001500041F4803140F8041C50F8041C01F40031D3
:100160000091019901310191009919B90199B1F5F5
:10017000A06FF1D150F8041C890354BF0021012164
:1001800000910099012936D142F20001C4F2020126
:100190000A6842F010020A600A6822F003020A604C
:1001A0000A6842F002020A600168016001680160A9
:1001B000016841F480610160016821F47C110160F3
:1001C000016841F4E811016050F8041C41F08071AD
:1001D00040F8041C50F8041C8901FBD5016821F08B
:1001E00003010160016841F002010160016801F052
:1001F0000C010829FAD102B07047000080B541F225
:100200000000C4F202000168002241F00101016017
:100210004168CFF6FF021140416001684FF6FF725E
:10022000CFF6F66211400160016821F4802101607F
:10023000416821F4FE0141604FF41F018160FFF726
:1002400079FF4EF60850CEF200004FF000610160D9
:1002500080BD00004FF00A004FF00B014FF00C0280
:100260004FF00D0300F009F800F00AF800F00BF869
:10027000DFF81CE0DFF81CF0FEE74FF005057047E3
:100280004FF0060670474FF007074FF00808704719
:080290007B0200088702000850
:040000050800025598
:00000001FF
该文件为16进制的一串字符。hex文件的第一排字符称之为扩展线性地址记录,也称为32位地址记录或HEX386记录。
而其中的第一行为: 020000040800F2
其实际表达为0x02 0x00 0x00 0x04 0x08 0x00 0xf2
第一个字节 0x02表示本行数据的长度;
第二、三字节 0x00 0x00表示本行数据的起始地址;
第四字节 0x04表示数据类型,数据类型有:0x00、0x01、0x02、0x03、0x04、0x05
‘00’ Data Rrecord:用来记录数据,HEX文件的大部分记录都是数据记录
‘01’ End of File Record: 用来标识文件结束,放在文件的最后,标识HEX文件的结尾
‘02’ Extended Segment Address Record: 用来标识扩展段地址的记录
‘03’ Start Segment Address Record:开始段地址记录
‘04’ Extended Linear Address Record: 用来标识扩展线性地址的记录
‘05’ Start Linear Address Record:开始线性地址记录
然后是数据,0x08 0x00
最后一个字节 0xf2为校验和。
总结:
通过本实验,对keil的安装使用有了更深的了解,并且了解HEX文件内容和知道了使用仿真器模式调试时要根据选择的设备更改参数,通过对汇编的初步了解,发现对应汇编理解还不够,还太会使用汇编进行编程。给一段简单的汇编代码,基本能够读懂大部分语句的含义,但是,自己写还不是太会,还需要进一步学习。