1907_Arm Cortex-M3的基本了解

1907_Arm Cortex-M3的基本了解

全部学习汇总: g_arm_cores: ARM内核的学习笔记 (gitee.com)

我发现Arm Coretex-M3有一个专门的DataSheet,看起来这个的确是被当做了一个设计的产品来对待的。正好,基于这个文件来看看M3具备哪些基本的特性,尤其是我关注的软件设计方面。

  • ATB是高级trace总线的意思。一直听说trace是很高级的调试功能,但是时至今日我没有用过。惭愧、惭愧!
  • M3的MPU这里描述是可选的,在之前看M系列内核的对比表的时候还以为这个是必然会集成的。
  • 串口的调试方式,就是调试器设置的时候需要选择的SWD模式。

增加之前看过的文档关于MPU部分的截图,的确是让我在这里产生了疑惑。

支持的基本功能:内核、NVIC中断控制器、各种总线、可选的MPU、调试以及trace的支持。

这里提到了一个printf风格的调试,不知道是一个什么样的具体功能。而我个人的确是很喜欢在软件调试的时候一通printf的。

调试口是直接接到总线上而不是CPU上,trace的模块ETM则是靠近CPU一些。

指令中是支持基本的push以及pop操作的。不过,这两个指令在我看各种汇编代码的时候似乎是没看到。

看起来,trace不仅是硬件到位了就能够顺利开启的一个功能。这个也是需要软件配置寄存器来支持一下的,或者,也可能是调试器来修改寄存器?

这个是一个指令集的图,看的一知半解。几个想到的点记录一下:

  • M3和M4都是基于v7的指令集的,但是在指令集上也有不同。其实,从之前的M系列的对比表上也是可以看出一些信息的。M4是有DSP的,而M3是没有DSP的。DSP肯定是有自己的指令集的,因此M4肯定有多于M3的指令。
  • v6以及v7中似乎有一些指令是完全相同的名称,比如ADC、ADD等。大概看了下,可能左下角的小方块是v6的架构,其他的全都是v7?这么看,v7相对于v6来说在指令集上的扩种的确是多很多。
  • 两个坐标方向中的箭头,我觉得可能是划定对应矩形的意思。如果是这样,M4比M3多出来的指令是很多的。不过,从这个包含的关系上来看,或许M4可以完全按照M3来使用?
  • 这么看下来,可能M4的优势是在于DSP的指令扩展。不知道现在的编译器是否会优先考虑这方面的使用,否则两者的算力或者性能岂不是没有过多的差距?

这个术语表还是可以复习看一下的,里面很多功能块需要关注下。算是丰富对这个架构理解的很好的语言元素。

相关推荐
武文斌7710 小时前
项目学习总结:LVGL图形参数动态变化、开发板的GDB调试、sqlite3移植、MQTT协议、心跳包
linux·开发语言·网络·arm开发·数据库·嵌入式硬件·学习
GilgameshJSS11 小时前
STM32H743-ARM例程15-RTC
c语言·arm开发·stm32·实时音视频
szxinmai主板定制专家16 小时前
RK3588+AI算力卡替代英伟达jetson方案,大算力,支持FPGA自定义扩展
arm开发·人工智能·分布式·fpga开发
CodingCos19 小时前
【ARM 嵌入式 编译系列 10.4.3 -- 查看 bss 段在bin 文件中存在吗?】
arm开发
CodingCos2 天前
【ARM 嵌入式 编译系列 10.9.1 -- llvm-size -B 与 llvm-readelf -S 区别】
arm开发
szxinmai主板定制专家3 天前
一种基于 RK3568+AI 的国产化充电桩安全智能交互终端的设计与实现,终端支持各种复杂的交互功能和实时数据处理需求
arm开发·人工智能·嵌入式硬件·安全
szxinmai主板定制专家3 天前
基于 ZYNQ ARM+FPGA+AI YOLOV4 的电网悬垂绝缘子缺陷检测系统的研究
arm开发·人工智能·嵌入式硬件·yolo·fpga开发
全栈工程师修炼日记5 天前
ARM TrustZone技术如何守护你的隐私
arm开发·trustzone·安全世界·非安全世界
m0_631274365 天前
嵌入式八股文-ARM
arm开发
aitav06 天前
⚡ arm 32位嵌入式 Linux 系统移植 QT 程序
linux·arm开发·qt