ARM 三个小灯闪烁

.text

.global _start

_start:

@使能GPIOE的外设时钟

LDR R0,=0x50000A28 @指定基地址

LDR R1,[R0] @读取r0中的数据保存到r1中

ORR R1,R1,#(0X3<<4) @[4]设置为1,表示

STR R1,[R0] @将修改之后的值放回去

@设置PE10,PE8为输出

LDR R0,=0X50006000

LDR R1,[R0]

BIC R1,R1,#(0X3<<20)

BIC R1,R1,#(0X3<<16)

ORR R1,R1,#(0X1<<20)

ORR R1,R1,#(0X1<<16)

STR R1,[R0]

@设置PF10输出模式

LDR R0,=0X50007000

LDR R1,[R0]

BIC R1,R1,#(0X3<<20)

ORR R1,R1,#(0X1<<20)

STR R1,[R0]

@PE10,PE8设置推挽输出

LDR R0,=0X50006004

LDR R1,[R0]

BIC R1,R1,#(0X1<<10)

BIC R1,R1,#(0X1<<8)

STR R1,[R0]

@设置PF8为推挽输出

LDR R0,=0X50007004

LDR R1,[R0]

BIC R1,R1,#(0X1<<10)

STR R1,[R0]

@PE10,PE8设置低速输出

LDR R0,=0X50006008

LDR R1,[R0]

BIC R1,R1,#(0X3<<20)

BIC R1,R1,#(0X3<<16)

STR R1,[R0]

@PF10设置低速输出

LDR R0,=0X50007008

LDR R1,[R0]

BIC R1,R1,#(0X3<<20)

STR R1,[R0]

@PE10,PE8设置无上拉下拉电阻

LDR R0,=0X5000600C

LDR R1,[R0]

BIC R1,R1,#(0X3<<20)

BIC R1,R1,#(0X3<<16)

STR R1,[R0]

@PF10设置无上拉下拉电阻

LDR R0,=0X5000700C

LDR R1,[R0]

BIC R1,R1,#(0X3<<20)

STR R1,[R0]

@亮灭

LOOP:

BL LED1_ON

BL DEALY

BL LED1_OFF

BL LED2_ON

BL DEALY

BL LED2_OFF

BL LED3_ON

BL DEALY

BL LED3_OFF

BL LOOP

LED1_ON:

LDR R0,=0X50006014

LDR R1,[R0]

ORR R1,R1,#(0X1<<10)

STR R1,[R0]

MOV PC,LR

LED1_OFF:

LDR R0,=#0X50006014

LDR R1,[R0]

BIC R1,R1,#(0X1<<10)

STR R1,[R0]

MOV PC,LR

LED2_ON:

LDR R0,=0X50007014

LDR R1,[R0]

ORR R1,R1,#(0X1<<10)

STR R1,[R0]

MOV PC,LR

LED2_OFF:

LDR R0,=#0X50007014

LDR R1,[R0]

BIC R1,R1,#(0X1<<10)

STR R1,[R0]

MOV PC,LR

LED3_ON:

LDR R0,=0X50006014

LDR R1,[R0]

ORR R1,R1,#(0X1<<8)

STR R1,[R0]

MOV PC,LR

LED3_OFF:

LDR R0,=#0X50006014

LDR R1,[R0]

BIC R1,R1,#(0X1<<8)

STR R1,[R0]

MOV PC,LR

@延时

DEALY:

LDR R3,=0X10000000

MM:

CMP R3,#0

SUBNE R3,R3,#1

BNE MM

MOV PC,LR

.end

相关推荐
紫金修道9 小时前
【Linux】在Arm服务器源码编译onnxruntime-gpu的whl
linux·服务器·arm开发
前进的程序员1 天前
ARM 芯片上移植 Ubuntu 操作系统详细步骤
linux·arm开发·ubuntu
楚灵魈2 天前
[Linux]从零开始的STM32MP157 Busybox根文件系统构建
linux·arm开发·stm32
sword devil9002 天前
stm32实战项目:无刷驱动
arm开发·stm32·单片机·嵌入式硬件
CN.LG2 天前
tmpfs和普通文件系统相比有哪些优缺点
arm开发
Jia ming3 天前
Linux 内核对 ARM 大小核架构的支持
linux·arm开发·架构
JANYI20183 天前
GCC编译器安装详细说明(举例arm-2013q3)
arm开发
Tassel_YUE4 天前
VMware Fusion安装win11 arm;使用Mac远程连接到Win
arm开发·macos
家庭云计算专家4 天前
onlyoffice 源码调试指南-ARM和x86双模式安装支持
arm开发·docker·容器·云计算
wang09074 天前
网络协议之DHCP和PXE分析
网络·arm开发·网络协议