1、寄存器
1.1 SCR寄存器:
SystemInit()函数操作SCB->VTOR重定位中断向量表,在STM32MP157参考手册中未找到相关寄存器。通过百度得知,这个寄存器定义需要参考《ARM+Cortex-M3与Cortex-M4权威指南》。通过查找该手册在“”4.6章节系统控制块”找到该寄存器描述信息。7.9.3章节 向量表偏移寄存器(VTOR)在不同版本的Cortex-M3和Cortex-M4有些区别但寄存器地址都为0xE000ED0C。
2、启动文件
startup_stm32mp15xx.s
启动文件是系统上电后第一个运行的程序文件,主要由汇编语言编写
3、堆、栈
堆:用于存放进程运行中被动态分布的内存段,一般由程序员释放。
栈:一般是存放函数的参数值和局部变量的值。由编译器自动分配释放。
若工程中使用的局部变量较多,定义的数据长度较大时,如果不调整栈的空间大小,就会导致程序栈溢出,程序运行异常。
4、链接脚本
程序编译步骤:预处理、汇编、编译、链接
5、模块功能开发
5.1 GPIO
5.1.1 介绍
每个GPIO都有4个32 bit配置寄存器(GPIOx_MODER,GPIOx_OTYPER, GPIOx_OSPEEDR and GPIOx_PUPDR),2个32 bit数据寄存器(GPIOx_IDR and GPIOx_ODR)和1个32 bit置位\复位寄存器(GPIOx_BSRR)。另外所有的GPIO都有一个32 bit锁定寄存器(GPIOx_LCKR)和2个32 bit复用功能寄存器(GPIOx_AFRH and GPIOx_AFRL)。
5.1.2 GPIO主要feature
输出状态:push-pull or open drain + pull-up/down(上拉或下拉的推挽或开漏)
输入状态:浮空,上拉,下拉,模拟
5.1.3 GPIO功能描述
输入浮空
输入上拉
输入下拉
模拟输入
上拉或下拉开漏输出
上拉或下拉推挽输出
上拉或下拉推挽复用功能
上拉或下拉开漏复用功能
注解:开漏输出: "漏"指的是 MOS 管的漏极,其输出端相当于三极管的集电极,默认情况下,开漏只能输出低电平,要得到有