.text
.global _start
_start:
/**********LED1点灯**************/
/*给GPIOE寄组器使能*/
RCC_init:
ldr r0,=0x50000A28
ldr r1,[r0]
orr r1,r1,#(0x1<<4)
str r1,[r0]
/*给LED1灯初始化*/
LED1_INET:
ldr r0,=0x50006000 @通过寄存器GPIOE_MODER将PE10的引脚设置为输出模式
ldr r1,[r0]
bic r1,r1,#(0x3<<20)
orr r1,r1,#(0x1<<20)
str r1,[r0]
ldr r0,=0x50006004 @通过寄存器GPIOE_OTYPER将PE10的引脚设置为推挽
ldr r1,[r0]
bic r1,r1,#(0x1<<10)
str r1,[r0]
ldr r0,=0x50006008 @通过寄存器GPIOE_OSPEEDR将PE10的引脚设置为低速输出模式
ldr r1,[r0]
bic r1,r1,#(0x3<<20)
str r1,[r0]
ldr r0,=0x5000600c @通过寄存器GPIOE_PUPDR将PE10的引脚设置为不上下拉
ldr r1,[r0]
bic r1,r1,#(0x3<<20)
str r1,[r0]
loop:
bl LED1_ON
bl delay_1s
bl LED1_OFF
bl delay_1s
bl RCC_init_GIOPF
bl LED2_INET
bl LED2_ON
bl delay_1s
bl LED2_OFF
bl delay_1s
bl RCC_init_led2
bl LED3_INET
bl LED3_ON
bl delay_1s
bl LED3_OFF
bl delay_1s
b loop
/*LED2 PF10初始化*/
RCC_init_GIOPF:
ldr r0,=0x50000A28
ldr r1,[r0]
orr r1,r1,#(0x1<<5)
str r1,[r0]
mov pc,lr
LED2_INET:
ldr r0,=0x50007000 @通过寄存器GPIOE_MODER将PF10的引脚设置为输出模式
ldr r1,[r0]
bic r1,r1,#(0x3<<20)
orr r1,r1,#(0x1<<20)
str r1,[r0]
ldr r0,=0x50007004 @通过寄存器GPIOE_OTYPER将PF10的引脚设置为推挽
ldr r1,[r0]
bic r1,r1,#(0x1<<10)
str r1,[r0]
ldr r0,=0x50007008 @通过寄存器GPIOE_OSPEEDR将PF10的引脚设置为低速输出模式
ldr r1,[r0]
bic r1,r1,#(0x3<<20)
str r1,[r0]
ldr r0,=0x5000700c @通过寄存器GPIOE_PUPDR将PF10的引脚设置为不上下拉
ldr r1,[r0]
bic r1,r1,#(0x3<<20)
str r1,[r0]
mov pc,lr
/* LED3 PE8初始化*/
RCC_init_led2:
ldr r0,=0x50000A28
ldr r1,[r0]
orr r1,r1,#(0x1<<4)
str r1,[r0]
LED3_INET:
ldr r0,=0x50006000 @通过寄存器GPIOE_MODER将PE8的引脚设置为输出模式
ldr r1,[r0]
bic r1,r1,#(0x3<<16)
orr r1,r1,#(0x1<<16)
str r1,[r0]
ldr r0,=0x50006004 @通过寄存器GPIOE_OTYPER将PF8的引脚设置为推挽
ldr r1,[r0]
bic r1,r1,#(0x1<<8)
str r1,[r0]
ldr r0,=0x50006008 @通过寄存器GPIOE_OSPEEDR将PF8的引脚设置为低速输出模
ldr r1,[r0]
bic r1,r1,#(0x3<<16)
str r1,[r0]
ldr r0,=0x5000600c @通过寄存器GPIOE_PUPDR将PF8的引脚设置为不上下拉
ldr r1,[r0]
bic r1,r1,#(0x3<<16)
str r1,[r0]
mov pc,lr
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
@ 大概1s的延时函数
delay_1s:
mov r3, #0x10000000
mm:
cmp r3, #0
subne r3, r3, #1
bne mm
mov pc,lr
.end
基于cortex-A7
于 2023-07-20 21:26:49 首次发布