ARM-流水灯

cs 复制代码
.text 
.global _start
_start: 
@1、设置GPIOE寄存器的时钟使能 RCC_MP_AHB$ENSETR[4]->1 0x50000a28

LDR R0,=0X50000A28
LDR R1,[R0] 	@从R0起始地址的4字节数据取出放在R1
ORR R1,R1,#(0X3<<4) 	@第4位设置为1
STR R1,[R0] 	@写回

@2、设置PE10、PE8、PF10管脚为输出模式 GPIOE_MODER[21:20]->01 	0x50006000

LDR R0,=0X50006000
LDR R1,[R0]
BIC R1,R1,#(0x3<<20) 	@[21L20] 清0
ORR R1,R1,#(0x1<<20) 	@设置
BIC R1,R1,#(0x3<<16)
ORR R1,R1,#(0x1<<16)
STR R1,[R0]
LDR R0,=0X50007000
LDR R1,[R0]
BIC R1,R1,#(0x3<<20) 	@[21L20] 清0
ORR R1,R1,#(0x1<<20) 	@设置
STR R1,[R0]

@3、设置PE10、PE8、PF10脚为推挽输出 GPIOE_OTYPER[10]->0 	0x50006004

LDR R0,=0x50006004
LDR R1,[R0]
BIC R1,R1,#(0x1<<10)
BIC R1,R1,#(0x1<<8)
STR R1,[R0]
LDR R0,=0x50007004
LDR R1,[R0]
BIC R1,R1,#(0x1<<10)
STR R1,[R0]

@4、设置PE10、PE8、PF10脚为低速输出 GPIOE_OSPEEDR[21:20]->00 	0x50006008

LDR R0,=0X50006008
LDR R1,[R0]
BIC R1,R1,#(0x3<<20)
BIC R1,R1,#(0x3<<16)
STR R1,[R0]
LDR R0,=0x50007008
LDR R1,[R0]
BIC R1,R1,#(0x3<<20)
STR R1,[R0]

@5、设置PE10、PE8、PF10脚输出时没有上拉下拉电阻 GPIOE_PUPDR[21:20]->00 0X5000600C

LDR R0,=0X5000600C
LDR R1,[R0]
BIC R1,R1,#(0x3<<20)
BIC R1,R1,#(0x3<<16)
STR R1,[R0]
LDR R0,=0x5000700C
LDR R1,[R0]
BIC R1,R1,#(0x3<<20)
STR R1,[R0]

@6、PE10输出高低电平 GPIOE_ODR[10]->1(高电平)o(低电平) 	0X50006014

@LED1亮灭交替
LOOP:
	@LD1亮
	LDR R0,=0X50006014
	LDR R1,[R0]
	ORR R1,R1,#(0X1<<10)
	STR R1,[R0]
	BL delay
	@LD1灭
	LDR R0,=0X50006014
	LDR R1,[R0]
	BIC R1,R1,#(0X1<<10)
	STR R1,[R0]
	BL delay

	@LD2亮
	LDR R0,=0X50007014
	LDR R1,[R0]
	ORR R1,R1,#(0X1<<10)
	STR R1,[R0]
	BL delay
	@LD2灭
	LDR R0,=0X50007014
	LDR R1,[R0]
	BIC R1,R1,#(0X1<<10)
	STR R1,[R0]
	BL delay

	@LD3亮
	LDR R0,=0X50006014
	LDR R1,[R0]
	ORR R1,R1,#(0X1<<8)
	STR R1,[R0]
	BL delay
	@LD3灭
	LDR R0,=0X50006014
	LDR R1,[R0]
	BIC R1,R1,#(0X1<<8)
	STR R1,[R0]
	BL delay

	B LOOP

@封装延时函数

delay:
	LDR R3,=0x10000000
mm:
	CMP R3,#0
	SUBNE R3,R3,#1
	BNE mm
	MOV PC,LR 	@程序返回

.end

现象:

相关推荐
日晨难再3 天前
AMBA:APB的历史(从APB1到APB5)
arm开发·arm·硬件工程·fpga·数字ic
TeYiToKu4 天前
笔记整理—linux进程部分(6)进程间通信、alarm和pause
linux·运维·c语言·笔记·嵌入式硬件·arm
秦伟杰13 天前
mac M1,M2,M3芯片踩坑 nodejs ruby brew
arm·nodejs·ruby·mac·nvm·m2·brew·m1·rvm·m3·苹果芯片
Mr.Cssust15 天前
【研发日记】嵌入式处理器技能解锁(六)——ARM的Cortex-M4内核
ai·arm·cortex-m4·芯片·指令集·嵌入式软件·处理器
Liii40318 天前
【ARM】中断的处理
arm开发·arm
我相遇拾年18 天前
硬件基础知识
嵌入式硬件·arm·硬件工程
送南阳马生序21 天前
Cubieboard2(一) 官方镜像使用与配置
linux·debian·arm
科技互联人生1 个月前
ARM V2处理器微架构分析
系统架构·硬件架构·arm
码狂☆1 个月前
github 工作流自动编译 ffmpeg for windows on arm
windows·ffmpeg·github·arm
时光飞逝的日子1 个月前
C语言调用子函数时入/出栈(保护/恢复现场)全过程分析:以Cortex-M3为例
arm·cortex-m3·出栈·入栈·保护现场·恢复现场