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

相关推荐
陌上花开缓缓归以19 小时前
LiteOS和RTOS 系统选型分析
arm开发
深圳市九鼎创展科技21 小时前
瑞芯微 RK3399 开发板 X3399 评测:高性能 ARM 平台的多面手
linux·arm开发·人工智能·单片机·嵌入式硬件·边缘计算
森焱森1 天前
嵌入式硬件工程师应知 白银快速分析报告
linux·c语言·arm开发·嵌入式硬件·去中心化
森G2 天前
七、04ledc-sdk--------makefile有变化
linux·c语言·arm开发·c++·ubuntu
VekiSon2 天前
Linux内核驱动——杂项设备驱动与内核模块编译
linux·c语言·arm开发·嵌入式硬件
AI+程序员在路上2 天前
Nand Flash与EMMC区别及ARM开发板中的应用对比
arm开发
17(无规则自律)2 天前
深入浅出 Linux 内核模块,写一个内核版的 Hello World
linux·arm开发·嵌入式硬件
梁洪飞2 天前
内核的schedule和SMP多核处理器启动协议
linux·arm开发·嵌入式硬件·arm
代码游侠3 天前
学习笔记——Linux字符设备驱动
linux·运维·arm开发·嵌入式硬件·学习·架构
syseptember3 天前
Linux网络基础
linux·网络·arm开发