cortexM3/M4
文章平均质量分 72
akari水无灯里
单片机、Linux、C++等
展开
-
Cortex-M3/M4——指令集(一)
所有的ARM Cortex-M都是基于Thumb-2技术(允许混合使用16位和32位指令)。早期的ARM处理器是支持ARM的32位指令集,功能强大,但是随着移动电话等应用不断发展,功耗和成本变得十分关键,因此16位指令集Thumb也应运而生。1995年ARM发布了ARM7TDMI处理器,可以在ARM和Thumb状态之间进行切换,与等价的ARM代码相比,减小了代码密度。然而Thumb仍然有一些局限性,例如操作可选的寄存器、可用的寻址模式及用于数据或地址的立即数范围较小等。原创 2024-07-18 21:03:34 · 1949 阅读 · 0 评论 -
Cortex-M3/M4架构——存储器系统
2.架构定义的存储器映射,预定义的存储器和外设对应多个存储器区域,优化了处理器的性能;Cortex-M处理器使用的栈模型被称作“满递减”,在处理器启动时,SP指针指向栈存储空间的最后位置,对于PUSH操作,首先会减小SP的值,然后将数据存储在SP指向的位置。5.写缓冲,若对于可缓冲存储器的写传输要花费较长时间,Cortex-M可能会将本次传输缓存起来,处理器继续执行下一条指令,可以提高执行速度;例:在函数返回的情况下,首先LR(R14)的数值压到栈存储中,在函数结束时将其恢复到PC(R15)中。原创 2024-07-18 11:32:23 · 1180 阅读 · 0 评论 -
Cortex-M3/M4架构——异常和中断
异常是指会改变程序流的事件,当异常产生时,处理器会暂停当前正在执行的任务,转而执行一段被称作是异常处理的程序,在处理完成后会继续之前程序。(中断是异常的一种)NVIC处理异常。NVIC可以处理IRQ和NMI(不可屏蔽中断),IRQ一般是片上外设或外部中断I/O输入,NMI可用于看门狗定时器或掉电检测。SysTick定时器也可以产生定时中断请求;处理器自身也是一个异常事件源,包括表示系统错误状态的错误事件及软件产生、支持嵌入式OS的异常,异常类型如下图所示:1~15被称为系统异常,16以上的用于中断。原创 2024-07-18 15:54:22 · 426 阅读 · 0 评论 -
Cortex-M3/M4架构——编程模型
Cortex-M3/M4架构都是基于ARMv7-M架构。在一般应用中使用Cortex-M微控制器无需了解架构的详细内容,只需要对编程模型、异常处理、存储器映射、外设以及软件驱动库即可。操作模式和状态M3/M4处理器有两种操作状态和两个模式,同时处理器还分为特权和非特权模式。非特权模式意味着有些存储器区域是无法访问的(用户状态);操作状态:1.调试状态:处理器被暂停时会进入调试状态,停止指令执行;2.Thumb状态:执行指令时的状态;原创 2024-07-17 14:47:45 · 1423 阅读 · 0 评论 -
Cortex-M3/M4处理器基本信息
Cortex-M处理器使用Thumb(16位)使用方法,ARM指令能以很高的性能执行所有支持的指令,Thumb指令可以得到很好的代码密度;Cortex处理器主要使用的是AHB Lite总线接口协议(程序存储器和系统总线接口)、APB高级外设总线(用于基于ARM的微控制器)处理器存储系统地址空间最大为4GB,包括程序代码、数据、外设以及处理器内的调试支持部件;处理器内核、NVIC、SysTick、可选的浮点单元、内部总线系统、存储器保护单元。但是混合使用的代价是状态切换的开销,增加软件编译的复杂度;原创 2024-07-17 10:18:57 · 297 阅读 · 0 评论 -
微控制器调试信息显示方法
4.使用商业板的调试适配器,如J-LINK等,可以使用指令跟踪单元ITM的特性,将消息传递回调试主机且在开发环境中显示消息。不需要额外的硬件和太多的软件开销。大多数嵌入式应用不具备丰富的GUI,但是简单的基于字符的通信方法对于软件开发还是很有必要的,例如通过printf显示AD采集值。3.使用USB和虚拟COM端口实现通信在编写软件是会麻烦一些,但是不需要额外的模块开销;3.将微控制器上的USB接口设置为虚拟的COM端口,并且同运行在PC上的终端程序通信;2.使用简单的UART同PC上运行的终端程序通信;原创 2024-07-17 09:13:45 · 147 阅读 · 0 评论