XuSenfeng

个人站

复读了,更新随缘,有的文件不全或者图片缺失具体看我的笔记库(https://github.com/XuSenfeng/note)


模仿stm32编程

目录

模仿stm32编程

stm32寄存器结构体

使用一个结构体把所有的结构体放在一起

清空bss段

.global _bss_start
_bss_start:
    .word __bss_start
.global _bss_end
_bss_end:
    .word __bss_end

_bss_start: 相当于变量的值

.word就是在这里放了一个值

    ldr r0, _bss_start;
    ldr r1, _bss_end;
    mov r2, #0
	bss_loop:
    stmia r0!, {r2} @ 写入数据,然后地址加一
    cmp r0, r1
    ble bss_loop  @ 小于等于的时候进行跳转

结构体

#define CCM_BASE  (0x20c4000)

typedef struct{

    volatile unsigned int CCR;
    volatile unsigned int CCDR;
	...
}CCM_Typedef

#define CCM  ((CCM_Typedef *)RCC_BASE )

注意没有相连的寄存器