2023/12/21作业

思维导图

代码

.text

.global _start

_start:

@灯1

@gpio时钟使能 [4]->1 0x5000A28

LDR R0,=0x50000A28 @指定寄存器地址

LDR R1,[R0]@将寄存器取出放到R1

ORR R1,R1,#(0x1<<4)@将第四位设置为1

STR R1,[R0]@读取R0寄存器到R1

@PE10为输出 [21:20]->01 0x50006000

LDR R0,=0X50006000

LDR R1,[R0]

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

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

STR R1,[R0]

@PE10为推挽输出[10]->0 0x50006004

LDR R0,=0X50006004

LDR R1,[R0]

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

STR R1,[R0]

@PE10为低速输出 [21:20]->00 0x5006008

LDR R0,=0X50006008

LDR R1,[R0]

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

STR R1,[R0]

@PE10为无上下拉电阻 [21:20]->00 0x500600c

LDR R0,=0X5000600c

LDR R1,[R0]

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

STR R1,[R0]

@灯2

@gpio时钟使能 [4]->1 0x5000A28

LDR R0,=0x50000A28 @指定寄存器地址

LDR R1,[R0]@将寄存器取出放到R1

ORR R1,R1,#(0x1<<5)@将第五位设置为1

STR R1,[R0]@读取R0寄存器到R1

@PE10为输出 [21:20]->01 0x50007000

LDR R0,=0X50007000

LDR R1,[R0]

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

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

STR R1,[R0]

@PE10为推挽输出[10]->0 0x50007004

LDR R0,=0X50007004

LDR R1,[R0]

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

STR R1,[R0]

@PE10为低速输出 [21:20]->00 0x5007008

LDR R0,=0X50007008

LDR R1,[R0]

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

STR R1,[R0]

@PE10为无上下拉电阻 [21:20]->00 0x500700c

LDR R0,=0X5000700c

LDR R1,[R0]

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

STR R1,[R0]

@灯3

@gpio时钟使能 [4]->1 0x5000A28

LDR R0,=0x50000A28 @指定寄存器地址

LDR R1,[R0]@将寄存器取出放到R1

ORR R1,R1,#(0x1<<4)@将第四位设置为1

STR R1,[R0]@读取R0寄存器到R1

@PE10为输出 [17:16]->01 0x50006000

LDR R0,=0X50006000

LDR R1,[R0]

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

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

STR R1,[R0]

@PE10为推挽输出[8]->0 0x50006004

LDR R0,=0X50006004

LDR R1,[R0]

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

STR R1,[R0]

@PE10为低速输出 [17:16]->00 0x5006008

LDR R0,=0X50006008

LDR R1,[R0]

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

STR R1,[R0]

@PE10为无上下拉电阻 [17:16]->00 0x500600c

LDR R0,=0X5000600c

LDR R1,[R0]

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

STR R1,[R0]

flash:

bl led1_on

bl delay

bl led1_off

bl delay

bl led2_on

bl delay

bl led2_off

bl delay

bl led3_on

bl delay

bl led3_off

bl delay

bl led1_on

bl led2_on

bl led3_on

bl delay

bl led1_off

bl led2_off

bl led3_off

bl delay

b flash

@led1

led1_on:

@gpio[10]->1 0x50006014

LDR R0,=0X50006014

LDR R1,[R0]

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

STR R1,[R0]

MOV PC,LR

led1_off:

@gpio[10]->0 0x50006014

LDR R0,=0X50006014

LDR R1,[R0]

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

STR R1,[R0]

MOV PC,LR

@led2

led2_on:

@gpio[10]->1 0x50007014

LDR R0,=0X50007014

LDR R1,[R0]

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

STR R1,[R0]

MOV PC,LR

led2_off:

@gpio[10]->0 0x50007014

LDR R0,=0X50007014

LDR R1,[R0]

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

STR R1,[R0]

MOV PC,LR

@led3

led3_on:

@gpio[10]->1 0x50006014

LDR R0,=0X50006014

LDR R1,[R0]

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

STR R1,[R0]

MOV PC,LR

led3_off:

@gpio[10]->0 0x50006014

LDR R0,=0X50006014

LDR R1,[R0]

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

STR R1,[R0]

MOV PC,LR

delay:

LDR R3,=0X10000000

mm:

cmp r3,#0

subne r3,r3,#1

bne mm

mov pc,lr

.end

相关推荐
余生皆假期-16 小时前
永磁同步电机下桥三电阻采样方式的电机电流重构方法
单片机·嵌入式硬件·嵌入式
万法若空17 小时前
Vim常用指令汇编
汇编·编辑器·vim
请输入蚊子1 天前
«操作系统真像还原» 第二章 编写MBR主引导记录
linux·汇编·操作系统·bochs·操作系统真像还原
188号安全攻城狮1 天前
【PWN】HappyNewYearCTF_8_ret2csu
linux·汇编·安全·网络安全·系统安全
切糕师学AI1 天前
ARM 架构中的复位(Reset)与复位流程
arm开发·单片机·嵌入式·复位
梵刹古音1 天前
【C语言】 格式控制符与输入输出函数
c语言·开发语言·嵌入式
嵌入小生0072 天前
双向链表、双向循环链表之间的异同---嵌入式入门---Linux
linux·c语言·数据结构·链表·嵌入式·小白
CQ_YM2 天前
ARM之I2C
arm开发·单片机·嵌入式硬件·嵌入式
梵刹古音2 天前
【C语言】 字符型变量
c语言·开发语言·嵌入式
2401_859049082 天前
lvgl移植到Linux踩坑
linux·运维·arm开发·elasticsearch·嵌入式·ubantu