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

相关推荐
凉、介5 小时前
深入理解 ARMv7-A|异常/中断处理
笔记·学习·嵌入式·arm
Embedded-Xin10 小时前
ROS2进阶——消息服务质量QOS策略
linux·机器人·嵌入式
Embedded-Xin10 小时前
ROS2进阶—ROS2生命周期节点
linux·机器人·自动驾驶·嵌入式
加油201912 小时前
嵌入式软件技术栈和学习路线详解
linux·arm开发·数据结构·mqtt·设计模式·嵌入式
Ch_champion21 小时前
LVGL 音量调节示例
嵌入式
不脱发的程序猿1 天前
嵌入式软件工程师,怎么把 AI 工具用顺手?
人工智能·单片机·嵌入式硬件·嵌入式
txg6661 天前
编译无关的漏洞检测:基于 Transformer 的 LLVM-IR 与汇编鲁棒建模
汇编·深度学习·安全·transformer
青天喵喵1 天前
Linux Wi-Fi 实战指南:AP / STA 实战用例(实战篇一)
linux·网络·架构·智能路由器·嵌入式·wi-fi
济6171 天前
ROS开发专栏---激光雷达数据获取仿真实验+ RViz2使用教程--适配Ubuntu 22.04
嵌入式硬件·嵌入式·ros2·机器人方向
浩浩测试一下2 天前
汇编 16位32位64位通用寄存器(逆向分析)
汇编·windows·stm32·单片机·嵌入式硬件·逆向·二进制