本文共 4619 字,大约阅读时间需要 15 分钟。
RCC_BASE EQU 0x40021000
RCC_CR EQU (RCC_BASE + 0x00)RCC_CFGR EQU (RCC_BASE + 0x04)RCC_CIR EQU (RCC_BASE + 0x08)RCC_APB2RSTR EQU (RCC_BASE + 0x0C)RCC_APB1RSTR EQU (RCC_BASE + 0x10)RCC_AHBENR EQU (RCC_BASE + 0x14)RCC_APB2ENR EQU (RCC_BASE + 0x18)RCC_APB1ENR EQU (RCC_BASE + 0x1C)RCC_BDCR EQU (RCC_BASE + 0x20)RCC_CSR EQU (RCC_BASE + 0x24)AFIO_BASE EQU 0x40010000
AFIO_EVCR EQU (AFIO_BASE + 0x00)AFIO_MAPR EQU (AFIO_BASE + 0x04)AFIO_EXTICR1 EQU (AFIO_BASE + 0x08)AFIO_EXTICR2 EQU (AFIO_BASE + 0x0C)AFIO_EXTICR3 EQU (AFIO_BASE + 0x10)AFIO_EXTICR4 EQU (AFIO_BASE + 0x14)GPIOA_BASE EQU 0x40010800
GPIOA_CRL EQU (GPIOA_BASE + 0x00)GPIOA_CRH EQU (GPIOA_BASE + 0x04)GPIOA_IDR EQU (GPIOA_BASE + 0x08)GPIOA_ODR EQU (GPIOA_BASE + 0x0C)GPIOA_BSRR EQU (GPIOA_BASE + 0x10)GPIOA_BRR EQU (GPIOA_BASE + 0x14)GPIOA_LCKR EQU (GPIOA_BASE + 0x18)GPIOC_BASE EQU 0x40011000
GPIOC_CRL EQU (GPIOC_BASE + 0x00)GPIOC_CRH EQU (GPIOC_BASE + 0x04)GPIOC_IDR EQU (GPIOC_BASE + 0x08)GPIOC_ODR EQU (GPIOC_BASE + 0x0C)GPIOC_BSRR EQU (GPIOC_BASE + 0x10)GPIOC_BRR EQU (GPIOC_BASE + 0x14)GPIOC_LCKR EQU (GPIOC_BASE + 0x18)USART1_BASE EQU 0x40013800
USART1_SR EQU (USART1_BASE + 0x00)USART1_DR EQU (USART1_BASE + 0x04)USART1_BRR EQU (USART1_BASE + 0x08)USART1_CR1 EQU (USART1_BASE + 0x0c)USART1_CR2 EQU (USART1_BASE + 0x10)USART1_CR3 EQU (USART1_BASE + 0x14)USART1_GTPR EQU (USART1_BASE + 0x18)NVIC_BASE EQU 0xE000E000
NVIC_SETEN EQU (NVIC_BASE + 0x0010)NVIC_IRQPRI EQU (NVIC_BASE + 0x0400)NVIC_VECTTBL EQU (NVIC_BASE + 0x0D08)NVIC_AIRCR EQU (NVIC_BASE + 0x0D0C)SETENA0 EQU 0xE000E100SETENA1 EQU 0xE000E104SysTick_BASE EQU 0xE000E010
SYSTICKCSR EQU (SysTick_BASE + 0x00)SYSTICKRVR EQU (SysTick_BASE + 0x04)FLASH_ACR EQU 0x40022000
SCB_BASE EQU (SCS_BASE + 0x0D00)
Bit0 EQU 0x00000001
Bit1 EQU 0x00000002Bit2 EQU 0x00000004Bit3 EQU 0x00000008Bit4 EQU 0x00000010Bit5 EQU 0x00000020Bit6 EQU 0x00000040Bit7 EQU 0x00000080Bit8 EQU 0x00000100Bit9 EQU 0x00000200Bit10 EQU 0x00000400Bit11 EQU 0x00000800Bit12 EQU 0x00001000Bit13 EQU 0x00002000Bit14 EQU 0x00004000Bit15 EQU 0x00008000Bit16 EQU 0x00010000Bit17 EQU 0x00020000Bit18 EQU 0x00040000Bit19 EQU 0x00080000Bit20 EQU 0x00100000Bit21 EQU 0x00200000Bit22 EQU 0x00400000Bit23 EQU 0x00800000Bit24 EQU 0x01000000Bit25 EQU 0x02000000Bit26 EQU 0x04000000Bit27 EQU 0x08000000Bit28 EQU 0x10000000Bit29 EQU 0x20000000Bit30 EQU 0x40000000Bit31 EQU 0x80000000CDT MSP_TOP, DATA, READONLY
CDT Start, DATA, READONLYCDT NMI_Handler, DATA, READONLYCDT HardFault_Handler, DATA, READONLYCDT 0, DATA, READONLYCDT 0, DATA, READONLYCDT 0, DATA, READONLYCDT 0, DATA, READONLYCDT 0, DATA, READONLYCDT 0, DATA, READONLYCDT SysTick_Handler, DATA, READONLYAREA .text, CODE, READONLY
ENTRY
Start
ldr r0, =RCC_CR
ldr r1, [r0]or r1, #Bit16str r1, [r0]ldr r0, =RCC_CR
ldr r1, [r0]ands r1, #Bit17beq ClkOkldr r0, =FLASH_ACR
mov r1, #0x00000032str r1, [r0]ldr r0, =RCC_CFGR
ldr r1, [r0]or r1, #(Bit18 :OR: Bit19 :OR: Bit20 :OR: Bit16 :OR: Bit14)or r1, #Bit10str r1, [r0]ldr r0, =RCC_CR
ldr r1, [r0]or r1, #Bit24str r1, [r0]ldr r0, =RCC_CFGR
ldr r1, [r0]or r1, #(Bit18 :OR: Bit19 :OR: Bit20 :OR: Bit16 :OR: Bit14)or r1, #Bit10or r1, #Bit1str r1, [r0]ldr r0, =RCC_APB2ENR
mov r1, #(Bit14 :OR: Bit4 :OR: Bit2)str r1, [r0]ldr r0, =GPIOC_CRL
ldr r1, [r0]or r1, #(Bit28 :OR: Bit29)str r1, [r0]ldr r0, =GPIOA_CRH
ldr r1, [r0]or r1, #(Bit4 :OR: Bit5)str r1, [r0]ldr r0, =AFIO_MAPR
ldr r0, =SYSTICKRVR
mov r1, #9000str r1, [r0]ldr r0, =SYSTICKCSRmov r1, #0x03str r1, [r0]ldr r0, =SETENA0
mov r1, #0x00800000str r1, [r0]ldr r0, =SETENA1mov r1, #0x00000100str r1, [r0]ldr r0, =PSP_TOP
msr psp, r0mov r0, #3msr control, r0mov r1, #0
ldr r0, =Flag1str r1, [r0]ldr r0, =PSP_TOP
msr psp, r0mov r0, #3msr control, r0main
ldr r0, =Flag1ldr r1, [r0]tst r1, #Bit1beq mainsend_a_char
push {r0 - r3}ldr r2, =USART1_DRstr r0, [r2]LedFlas
push {r0 - r3}ldr r0, =Flag1ldr r1, [r0]tst r1, #Bit0beq ONLEDldr r0, =b_flas
mov r1, #0str r1, [r0]ldr r0, =GPIOC_BRR
ldr r1, [r0]or r1, #Bit7str r1, [r0]NMI_Handler
bx lrHardFault_Handler
bx lrSysTick_Handler
ldr r0, =SysTimldr r1, [r0]add r1, #1str r1, [r0]cmp r1, #500bcc TickExitmov r1, #0str r1, [r0]ldr r0, =b_05smov r1, #1str r1, [r0]TickExit
bx lr转载地址:http://dfxd.baihongyu.com/