自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 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 2249

原创 Cortex-M3/M4架构——异常和中断

异常是指会改变程序流的事件,当异常产生时,处理器会暂停当前正在执行的任务,转而执行一段被称作是异常处理的程序,在处理完成后会继续之前程序。(中断是异常的一种)NVIC处理异常。NVIC可以处理IRQ和NMI(不可屏蔽中断),IRQ一般是片上外设或外部中断I/O输入,NMI可用于看门狗定时器或掉电检测。SysTick定时器也可以产生定时中断请求;处理器自身也是一个异常事件源,包括表示系统错误状态的错误事件及软件产生、支持嵌入式OS的异常,异常类型如下图所示:1~15被称为系统异常,16以上的用于中断。

2024-07-18 15:54:22 614

原创 Cortex-M3/M4架构——存储器系统

2.架构定义的存储器映射,预定义的存储器和外设对应多个存储器区域,优化了处理器的性能;Cortex-M处理器使用的栈模型被称作“满递减”,在处理器启动时,SP指针指向栈存储空间的最后位置,对于PUSH操作,首先会减小SP的值,然后将数据存储在SP指向的位置。5.写缓冲,若对于可缓冲存储器的写传输要花费较长时间,Cortex-M可能会将本次传输缓存起来,处理器继续执行下一条指令,可以提高执行速度;例:在函数返回的情况下,首先LR(R14)的数值压到栈存储中,在函数结束时将其恢复到PC(R15)中。

2024-07-18 11:32:23 1304

原创 Cortex-M3/M4架构——应用程序状态寄存器

GE位域在APSR中占用4位,在Cortex-M3中不存在。许多SIMD指令都会更新该标志位。对于具有16位数据的SIMD指令,第0和1位由低半字的结果控制,第2和3位由高半字的结果控制;在数字信号处理时,若计算结果的保存寄存器位宽度不够,会导致上溢或下溢。Q表示饱和运算过程中产生了饱和,在Cortex-M0中不存在。1.整数运算的状态标志(N-Z-C-V位),因此可以在饱和运算流程结束后检查该位确定是否产生了饱和;例如可以将64位加法的高32位放在低32位进位标志。2.饱和运算的状态标志(Q位)

2024-07-17 15:41:52 456

原创 Cortex-M3/M4架构——编程模型

Cortex-M3/M4架构都是基于ARMv7-M架构。在一般应用中使用Cortex-M微控制器无需了解架构的详细内容,只需要对编程模型、异常处理、存储器映射、外设以及软件驱动库即可。操作模式和状态M3/M4处理器有两种操作状态和两个模式,同时处理器还分为特权和非特权模式。非特权模式意味着有些存储器区域是无法访问的(用户状态);操作状态:1.调试状态:处理器被暂停时会进入调试状态,停止指令执行;2.Thumb状态:执行指令时的状态;

2024-07-17 14:47:45 1766

原创 Cortex-M3/M4处理器基本信息

Cortex-M处理器使用Thumb(16位)使用方法,ARM指令能以很高的性能执行所有支持的指令,Thumb指令可以得到很好的代码密度;Cortex处理器主要使用的是AHB Lite总线接口协议(程序存储器和系统总线接口)、APB高级外设总线(用于基于ARM的微控制器)处理器存储系统地址空间最大为4GB,包括程序代码、数据、外设以及处理器内的调试支持部件;处理器内核、NVIC、SysTick、可选的浮点单元、内部总线系统、存储器保护单元。但是混合使用的代价是状态切换的开销,增加软件编译的复杂度;

2024-07-17 10:18:57 385

原创 微控制器调试信息显示方法

4.使用商业板的调试适配器,如J-LINK等,可以使用指令跟踪单元ITM的特性,将消息传递回调试主机且在开发环境中显示消息。不需要额外的硬件和太多的软件开销。大多数嵌入式应用不具备丰富的GUI,但是简单的基于字符的通信方法对于软件开发还是很有必要的,例如通过printf显示AD采集值。3.使用USB和虚拟COM端口实现通信在编写软件是会麻烦一些,但是不需要额外的模块开销;3.将微控制器上的USB接口设置为虚拟的COM端口,并且同运行在PC上的终端程序通信;2.使用简单的UART同PC上运行的终端程序通信;

2024-07-17 09:13:45 197

66666666666666666

66666666666666666

2024-08-26

linux 66666666

linux 66666666

2024-08-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除