使用汇编配置STM32MP157,PE10、PE8、PF10
.text
.global _start
_start:
RCC_AHB4:
ldr r0,=0x50000A28
ldr r1,[r0]
orr r1,r1,#(0x03<<4)
str r1,[r0]
RCC_GPIOE_MODE:
ldr r0,=0x50006000
ldr r1,[r0]
bic r1,r1,#(0x33<<16)
orr r1,r1,#(0x11<<16)
str r1,[r0]
RCC_GPIOF_MODE:
ldr r0,=0x50007000
ldr r1,[r0]
bic r1,r1,#(0x03<<20)
orr r1,r1,#(0x01<<20)
str r1,[r0]
RCC_GPIOE_OTYPER:
ldr r0,=0x50006004
ldr r1,[r0]
bic r1,r1,#(0x05<<8)
str r1,[r0]
RCC_GPIOF_OTYPER:
ldr r0,=0x50007004
ldr r1,[r0]
bic r1,r1,#(0x01<<10)
str r1,[r0]
RCC_GPIOE_OSPEEDR:
ldr r0,=0x50006008
ldr r1,[r0]
orr r1,r1,#(0x33<<16)
str r1,[r0]
RCC_GPIOF_OSPEEDR:
ldr r0,=0x50007008
ldr r1,[r0]
orr r1,r1,#(0x03<<20)
str r1,[r0]
RCC_GPIOE_PUPDR:
ldr r0,=0x5000600c
ldr r1,[r0]
bic r1,r1,#(0x33<<16)
str r1,[r0]
RCC_GPIOF_PUPDR:
ldr r0,=0x5000700c
ldr r1,[r0]
bic r1,r1,#(0x03<<20)
str r1,[r0]
loop: @ 流水灯
bl RCC_GPIOE10_ODR_1 @LED1
bl delay_1s
bl RCC_GPIOE10_ODR_0
bl RCC_GPIOF10_ODR_1 @LED2
bl delay_1s
bl RCC_GPIOF10_ODR_0
bl RCC_GPIOE8_ODR_1 @LED3
bl delay_1s
bl RCC_GPIOE8_ODR_0
b loop
RCC_GPIOE10_ODR_1:
ldr r0,=0x50006014
ldr r1,[r0]
orr r1,r1,#(0x01<<10)
str r1,[r0]
mov pc, lr
RCC_GPIOE10_ODR_0:
ldr r0,=0x50006014
ldr r1,[r0]
bic r1,r1,#(0x01<<10)
str r1,[r0]
mov pc, lr
RCC_GPIOE8_ODR_1:
ldr r0,=0x50006014
ldr r1,[r0]
orr r1,r1,#(0x01<<8)
str r1,[r0]
mov pc, lr
RCC_GPIOE8_ODR_0:
ldr r0,=0x50006014
ldr r1,[r0]
bic r1,r1,#(0x01<<8)
str r1,[r0]
mov pc, lr
RCC_GPIOF10_ODR_1:
ldr r0,=0x50007014
ldr r1,[r0]
orr r1,r1,#(0x01<<10)
str r1,[r0]
mov pc, lr
RCC_GPIOF10_ODR_0:
ldr r0,=0x50007014
ldr r1,[r0]
bic r1,r1,#(0x01<<10)
str r1,[r0]
mov pc, lr
@ 大概1s的延时函数
delay_1s:
mov r3, #0x8000000
mm:
cmp r3, #0
subne r3, r3, #1
bne mm
mov pc, lr
.end