STM32汇编程序设计基础

本文介绍了STM32的三种Boot模式,重点解析了系统存储器模式和内置SRAM模式。通过Keil进行汇编程序编写,讲解了工程配置、代码调试和烧录过程。此外,还提供了每秒闪烁一次LED的汇编代码实例,并探讨了HEX文件的结构和意义。
摘要由CSDN通过智能技术生成

任务要求

一. 请说明STM32的三种Boot模式的差异,并在之前第11-12周“C语言各种变量的存储地址”作业代码基础上,研究至少两种boot模式下,代码下载(烧录)运行后所在的地址位置,与理论对比验证。
二. 在Keil下完成一个汇编程序的编写,学习动态调试变量;并注意观察最终生成 hex文件的各段的大小,以及Hex文件前8个字节内容,解释其含义。
三. 在上面Keil 汇编基础上,用汇编程序完成 每间隔1秒钟闪烁一次LED的程序。

BOOT模式

BOOT模式的选择涉及到STM32芯片BOOT两个引脚BOOT0,BOOT1的选择,如下:

1.BOOT0=0,BOOT1=X——主存储器模式
2.BOOT0=1,BOOT1=0——系统存储器模式
3.BOOT0=1,BOOT1=1——内置SRAM模式

通常使用串口下载程序,选择第二种模式,也就是系统存储器模式(BOOT0为 1, BOOT1为 0)。
而第一种主存储器模式( BOOT0 为 0,BOOT1 为任意),这种方法使得单片机跑代码启动的时候一按下复位键就可以执行。
SRAM 是芯片内置的RAM区,就是内存,如果出现程序硬件错误的话就可以切换BOOT0/1到该模式下重新烧写Flash即可恢复正常。

汇编简述

工程配置

1.选择新建工程,如下:
在这里插入图片描述

2.保存工程,如下:
在这里插入图片描述
3.芯片选择为“STM32F103ZE",如下:
在这里插入图片描述
4.在配置文件的选择中如下:
在这里插入图片描述

5.新建一个.S源文件,如下:
右键单击Source Group 1,选择Add New Item to Group,添加源文件;在这里插入图片描述
2.添加.S文件,保存文件名,如下:
在这里插入图片描述

代码调试

1.源码如下,复制到msytest.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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值