学习记录(1)

Cortex-M微控制器都用Flash存储器存放程序,然后创建程序映像,之后下载到微控制器的Flash存储器中。

学习记录(1)_第1张图片

链接器的作用是:合并多个目标文件,并定义存储器配置

由于接口外设的定义大部分都是由供应商提供,因此通过读取微控制器供应商提供的用户手册才能知道使用方法。

··外设时钟一般默认是关闭,在使用一个外设前需要使能开启时钟,可能还需要使能外设总线系统时钟

··若外设需要使用中断操作,需要使能中断和配置中断优先级

··外设寄存器经过了存储器映射,因此可以使用指针访问

··将外设寄存器定义为数据结构体

学习记录(1)_第2张图片

把每个外设基地址(GPIO A~GPIO G)定义为指向这个结构体的指针

volatile关键词影响编译器编译的结果,用volatile声明的变量表示该变量随时可能发生变化,与该变量有关的运算,不要进行编译优化,以免出错

CMSIS(Cortex微控制器软件接口标准),它开始是为了Cortex-M微控制器的设备驱动库建立一致性,现在已经成为了CMSIS-Core。由于有了统一的软件架构,不同来源的软件可以配合工作,降低了集成的风险,提高了可移植性和重用性。

CMSIS就像是一座桥梁,连接了开发人员和ARM Cortex处理器之间的软件交流。它提供了一系列标准化的API(Application Programming Interface,应用程序编程接口),开发人员可以使用这些API来编写针对Cortex处理器的软件,而不用担心具体处理器型号的差异。

程序存储器,一般是Flash;数据存储器,一般是SRAM。

CMSIS-Core则为大多数常见的中断控制任务提供了所需的寄存器定义和访问函数(API)。

学习记录(1)_第3张图片

存储器系统特性:

学习记录(1)_第4张图片

异常和中断

中断是异常的一种,一般由外设或外部输入产生,有时也可以由软件触发。

中断的异常处理也被称作为中断服务程序(ISR)。

在ARM架构中,异常(Exception)是指由于程序执行过程中发生了某些特定的事件或条件而引发的控制流的突变。异常可以是由于软件、硬件或外部事件引起的。常见的异常包括中断(Interrupt)、陷阱(Trap)、中止(Abort)和错误(Error)等。

IRQ是中断请求(Interrupt Request)的缩写。在计算机系统中,IRQ通常指的是一种硬件信号,用于向处理器(CPU)请求注意或执行中断服务程序。

IPSR是ARM Cortex-M处理器中的一个特殊寄存器,全称是Interrupt Program Status Register,即中断程序状态寄存器。

在ARM Cortex-M处理器中,IPSR寄存器用于存储当前正在执行的中断服务程序(ISR)的编号或异常类型编号。当处理器进入中断服务程序时,IPSR寄存器会保存当前的执行状态,以便在中断处理完成后恢复到正确的执行状态。

IPSR寄存器的位宽度通常取决于所用的ARM Cortex-M处理器型号,不同型号的处理器可能有不同的IPSR寄存器配置。

系统控制块(SCB)

学习记录(1)_第5张图片

SWD协议由ARM开发,可以仅使用两个引脚实现和JTAG相同的调试特性,而且不会损失调试性能。

2的32次方等于4,294,967,296,约等于4G,咱们通常所说的1GB是1G的byte

1MB = 1024KB = 1024*1024B

1GB=1024MB=10241024KB=102410241024B=2^102^10*2^10B=2^30B

所以32位的系统2^32是4GB 64位系统的最大内存是32位系统的多少倍呢?2^64/2^32=2^32

Cortex-M3和Cortex-M4的NVIC支持最多240个IRQ(中断请求)、1个不可屏蔽中断(NMI)、1个SysTick(系统节拍)定时中断及多个系统异常。多数IRQ由定时器、I/O端口和通信接口(如UART和IPC)等外设产生。NMI通常由看门狗定时器或掉电检测器等外设产生,其余的异常则是来自处理器内核,中断还可以利用软件生成。

你可能感兴趣的:(单片机,嵌入式硬件)