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:

@gpio10->1 0x50006014

LDR R0,=0X50006014

LDR R1,R0

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

STR R1,R0

MOV PC,LR

led1_off:

@gpio10->0 0x50006014

LDR R0,=0X50006014

LDR R1,R0

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

STR R1,R0

MOV PC,LR

@led2

led2_on:

@gpio10->1 0x50007014

LDR R0,=0X50007014

LDR R1,R0

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

STR R1,R0

MOV PC,LR

led2_off:

@gpio10->0 0x50007014

LDR R0,=0X50007014

LDR R1,R0

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

STR R1,R0

MOV PC,LR

@led3

led3_on:

@gpio10->1 0x50006014

LDR R0,=0X50006014

LDR R1,R0

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

STR R1,R0

MOV PC,LR

led3_off:

@gpio10->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

相关推荐
Jason_zhao_MR1 小时前
Linux与采集MCU通信为什么我们用了双SPI
linux·arm开发·单片机·嵌入式硬件·嵌入式
嵌入式阿蔡1 小时前
云平台设备接入实战:三元组鉴权、属性上报与命令下发(阿里云/华为云)
嵌入式硬件·物联网·嵌入式·存储
2601_962296513 小时前
C/C++:编译全过程——预处理、编译、汇编、链接(包含预处理指令:宏定义,文件包括、条件编译)
汇编·预处理·链接·c/c++·编译过程
分支预测失败18 小时前
RISC-V 上下文切换实战:从 Trap 入口到 Linux 进程调度
后端·嵌入式
Freak嵌入式19 小时前
Pico PIO 汇编语法深度详解:标识符、指令、伪指令全解析
汇编·stm32·单片机·嵌入式硬件·fpga开发·硬件架构
Freak嵌入式19 小时前
基于 MicroPython+DMA 链式触发的 Scatter-Gather 数据聚合实现
嵌入式
Freak嵌入式20 小时前
MicroPython ADC 采样拖慢主循环?试试 DMA + 乒乓缓冲,全程解放 CPU
嵌入式
Freak嵌入式21 小时前
从代码到项目:MicroPython+MCP4725 自定义类实现信号发生器功能的完整流程
嵌入式
与你40321 小时前
STM32F103_AB_OTA_从零复现教程
嵌入式
Freak嵌入式21 小时前
一文搞懂 MCP4725 波形发生器:MicroPython 代码实现、定时器驱动与调试流程全梳理
嵌入式