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的指令扩展。不知道现在的编译器是否会优先考虑这方面的使用,否则两者的算力或者性能岂不是没有过多的差距?

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/713893.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue 使用vue-scroller 列表滑动到底部加载更多数据

安装插件 npm install vue-scroller -dmain.js import VueScroller from vue-scroller Vue.use(VueScroller)<template><div class"wrap"><div class"footer"><div class"btn" click"open true">新增</d…

多层控制上身姿态的方法

1选择要施加的clip并调出层控制窗口 2点选motion层控制 3选择并复制pose&#xff08;注意在哪个层中选中的情况下复制的是那个层中的pose&#xff09; 4在新建层中分别选择头帧粘贴pose和尾帧粘贴pose因是上半身&#xff0c;因此mask中把下半身去掉即变灰

提升工作能力的方法

1.接受工作&#xff0c;只问标准 2.请示工作&#xff0c;必带方案&#xff1b; 3.汇报工作&#xff0c;突出成果&#xff1b; 4.分享工作&#xff0c;细说流程&#xff1b; 5.复盘工作&#xff0c;总结SOP 如果能这么做&#xff0c;那将是一个非常通透的高手&#xff0c;所以高…

2024年春招小红书前端实习面试题分享

文章目录 导文面试重点一、方便介绍一下&#xff0c;你之前实习都做了什么嘛&#xff1f;二、 可以讲一下封装组件相关逻辑嘛&#xff1f;1. 为什么要封装组件&#xff1f;2. 封装组件的步骤3. 封装组件的原则4. 组件的复用和扩展5. 组件的维护和文档 三、项目的性能优化你有什…

selenium测试工具用来模拟用户浏览器的操作

执行JS的类库&#xff1a;execjs&#xff0c;PyV8&#xff0c;selenium&#xff0c;node pip list pip install selenium pip install xlrd pip install xlwt pip install PyExecJS pip install xlutils selenium测试工具可以用来模拟用户浏览器的操作&#xff0c;其支持的浏览…

能当老板的AI大模型多智体框架MetaGPT自动完成项目

能当老板的AI大模型多智体框架MetaGPT自动完成项目。 MetaGPT是一个创新的多智能体框架&#xff0c;它结合了大语言模型&#xff08;LLM&#xff09;和多智能体协作系统&#xff0c;旨在通过模拟人类工作流程来解决复杂问题。这个框架的核心在于将标准化操作程序&#xff08;SO…

Python实现MACD工具判断信号:股票技术分析的工具系列(1)

Python实现MACD工具判断信号&#xff1a;股票技术分析的工具系列&#xff08;1&#xff09; 介绍代码rolling函数介绍核心代码计算指数移动平均值计算MACD指标 完整代码 介绍 先看看官方介绍&#xff1a; MACD (平滑异同平均线&#xff09; 指标说明 DIF线&#xff1a;收盘价短…

#单片机(TB6600驱动42步进电机)

1.IDE:keil 2.设备:保密 3.实验&#xff1a;使用单片机通过普通IO口控制TB6600驱动42步进电机 4.时序图&#xff1a; TB6600 ENA、ENA-DIR-、DIRPUL-、PULB-、BA、A-VCC、GND使能电机&#xff08;直接悬空不接&#xff09;方向脉冲输入&#xff08;普通IO口模拟即可&#xff…

Linux系统编程7--线程 写个测试脚本

Linux系统编程7–线程_写个测试脚本 参考博客&#xff1a; Linux多线程编程初探 - 峰子_仰望阳光 - 博客园 (cnblogs.com) 我的PC是8核*16进程&#xff0c;所以在固定的时间点&#xff0c;我可以同时运行8 * 16的进程&#xff0c;更多的线程&#xff08;任务管理器&#xff09;…

【学习笔记】Diffusion扩散模型

导读 Diffusion models是现在人工智能领域最火的方向之一&#xff0c;并引爆了AIGC领域&#xff0c;一大批创业公司随之诞生。 AIGC&#xff08;AI-Generated Content&#xff09;&#xff1a;人工智能创作内容的生产方式。 扩散模型Diffusion 扩散模型Duffison的训练过程 …

等概率事件算法

1等概率的生成(0-8)范围内的正整数 // Math.random 数据范围[0,1) 且 是 等概率的产生随机数 // 应用&#xff1a; // 1.生成等概率的整数&#xff08;等概率的生成(0-8)范围内的正整数 int value (int) (Math.random() * 9); System.out.println("value "…

非阻塞实现高效键盘扫描功能(STM32F4XX)

目录 概述 1 原理分析 1.1 技术背景 1.2 系统硬件 1.3 STM32 IO&#xff08;输入模式&#xff09;寄存器分析 1.3.1 输入IO的功能描述 1.3.2 输入配置 1.3.3 GPIO 寄存器&#xff08;输入模式相关&#xff09; 1.3.3.1 GPIO 端口模式寄存器 1.3.3.2 GPIO 端口上拉/下拉…

springboot,druid动态数据源切换

关键字&#xff1a;springboot&#xff0c;druid数据库连接池&#xff0c;两个数据源&#xff08;可以切换成多个&#xff09;&#xff0c;事务管理 关于druid简介传送门&#xff1a;https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98 具体分为四…

Doris【数据模型】

一、数据模型简介 在 Doris 中&#xff0c;数据以表&#xff08;Table&#xff09;的形式进行逻辑上的描述。 一张表包括行&#xff08;Row&#xff09;和列&#xff08;Column&#xff09;。Row 即用户的一行数据。Column 用于描述一行数据中不同的字段。 Column 可以分为两…

autoware.universe中跟踪模块详解,一看就懂!

目录 问题:阅读关键点:总结问题: 根据对预测模块代码的分析,发现预测框出现在点云前方的原因在于跟踪框出现在点云前方 对rviz上的目标进行观察后发现 车辆的检测框先出来一段时间后,跟踪框和预测框同步一块出来 跟踪框总是超出点云一部分 阅读关键点: 每个跟踪器最少要统计…

7.1.2 Selenium的用法1

目录 1. 初始化浏览器对象和访问页面 2. 查找节点及节点交互 2.1 查找单个节点 &#xff08;1&#xff09;获取方法1——特定方法 &#xff08;2&#xff09;通用方法 2.2 查找多个节点 2.3 节点交互 3. 动作链 4. 执行 JavaScript 之下拉进度条 5. 获取节点信息 5.…

谷歌seo推广秒收录怎么做?

谷歌SEO推广秒收录想要做到&#xff0c;可以利用我们光算科技独家技术&#xff0c;GSI快速收录&#xff0c;通过技术手段和操作&#xff0c;帮你的网站快速被谷歌发现和记录 这项技术具体核心就是GPC爬虫池系统&#xff0c;这个系统是专门研究谷歌搜索引擎优化的规律和算法创造…

66-ES6:var,let,const,函数的声明方式,函数参数,剩余函数,延展操作符,严格模式

1.JavaScript语言的执行流程 编译阶段&#xff1a;构建执行函数&#xff1b;执行阶段&#xff1a;代码依次执行 2.代码块&#xff1a;{ } 3.变量声明方式var 有声明提升&#xff0c;允许重复声明&#xff0c;声明函数级作用域 访问&#xff1a;声明后访问都是正常的&…

QT C++实现点击按键弹出窗口并显示图片/视频|多窗口应用程序的设计和开发

一、介绍 首先&#xff0c;QT界面开发中主要大体分为2种多窗口的形式&#xff1a; 嵌入式&#xff1a; 新生成的窗口嵌入在主窗口内部独立窗口&#xff1a; 以弹窗形式的新窗口生成和展示 这里就讲解最简单的&#xff1a;点击案件后&#xff0c;跳出一个新窗口 二、代码实…

利用FFMPEG 将RTSP流的音频G711 转码为AAC 并 推流到RTMP

之前我们的视频转码项目中 是没有加入音频的 现在 需要加入音频 &#xff0c;由于RTMP只支持AAC的 音频流 而有的RTSP流的音频编码并不是AAC 大多数都是G711编码 还分为G711A 和G711U 之前用ffmpeg命令行可以直接 完成转码 并推送到RTMP 但是考虑到无法获取更详细的状…