基于ARM3,4内核的stm32等芯片,由于数据手册内容较多,手册中也没有明确给出各个外设的物理地址,可以通过两种方法找到
1.通过库文件
从数据手册了了解到spi1的物理地址为SPI_DAT 寄存器,找到SPI_Module结构体找到DAT寄存器,那么&SPI->DAT就是它的物理地址,可以如下定义:
2.通过数据手册查找
上文件提到spi1的物理地址为SPI_DAT 寄存器,那么通过总线地址映射图找到SPI1的地址如下图:
然后再找到SPI_DAT 寄存器的偏移地址如下图:
那么spi1的物理地址为: 0x40013000+0x00C= 0x4001300C;