ARM:使用F103纯汇编点灯

0 上节

ARM体系结构解析:PC寄存器机制、三级流水线与C/汇编交互全揭秘-CSDN博客

1 纯汇编点灯

主要是通过汇编代码实现下图逻辑:

汇编代码实现:

复制代码
                                PRESERVE8
                                THUMB
                
; Vevtor Table Mapped to Address 0 at Reset
                                AREA         RESET, DATA, READONLY
                                EXPORT        __Vectors
                                        
__Vectors                DCD                0
                                DCD                Reset_Handler                                ; Reset Handle
                                        
                                AREA        |.text|, CODE, READONLY
                                        
;Reset handler
Reset_Handler        PROC
                                EXPORT Reset_Handler                                [WEAK]
                                        
                                ; enable GPIOB
                                LDR R0, =(0x40021000 + 0x18)
                                LDR R1, [R0]
                                ORR R1, R1, #(1<<3)
                                STR R1, [R0]
                                
                                ; set GPIOB as output
                                LDR R0, =(0x40010C00 + 0x00)
                                LDR R1, [R0]
                                ORR R1, R1, #(1<<0)
                                STR R1, [R0]
                                
                                LDR R2, =(0x40010C00 + 0x0C)                        
loop                        
                                ; set GPIOB0 output high
                                LDR R1, [R2]
                                ORR R1, R1, #(1<<0)
                                STR R1, [R2]
                                
                                LDR R0, =0x100000        ; Delay
                                BL delay
                                
                                ; set GPIOB0 output low
                                LDR R1, [R2]
                                BIC R1, R1, #(1<<0)
                                STR R1, [R2]
                                
                                LDR R0, =0x100000        ; Delay
                                BL delay
        
delay
                                SUBS R0, R0,#1  ; R0--
                                BNE delay                 ; cmp R0,0
                                MOV PC, LR                 ; return
                                
                                b loop
                                
                                ENDP
                                        
                                 END
相关推荐
小鹿撞出了脑震荡2 小时前
汇编学习——iOS开发对arm64汇编的初步了解
汇编·学习·ios
CN.LG14 小时前
tmpfs和普通文件系统相比有哪些优缺点
arm开发
Jia ming19 小时前
Linux 内核对 ARM 大小核架构的支持
linux·arm开发·架构
JANYI20182 天前
GCC编译器安装详细说明(举例arm-2013q3)
arm开发
染指11102 天前
21.第二阶段x64游戏实战-分析采集物偏移
汇编·游戏·反游戏外挂·游戏逆向·x64dbg·x64游戏
Tassel_YUE2 天前
VMware Fusion安装win11 arm;使用Mac远程连接到Win
arm开发·macos
家庭云计算专家2 天前
onlyoffice 源码调试指南-ARM和x86双模式安装支持
arm开发·docker·容器·云计算
wang09073 天前
网络协议之DHCP和PXE分析
网络·arm开发·网络协议
szxinmai主板定制专家4 天前
基于RK3568多功能车载定位导航智能信息终端
大数据·arm开发·人工智能·计算机视觉·fpga开发
CodingCos4 天前
【ARM AMBA AHB 入门 3.1 -- AHB控制信号】
arm开发