ARM内核
ARM的历史ARM架构对比8051架构ARM芯片速度快的原因① 在相同晶振时ARM有PLL锁相环的倍频可以让频率更高② 三级流水线取址、译码、执行*3③ 32位比8位快4倍*4三级流水线https://www.bilibili.com/video/BV1iMTuzWE8u?spm_id_from333.788.videopod.episodesvd_source013cdb0097f528046ab6512cfc15aaf0p2ARM的7种工作模式https://www.bilibili.com/video/BV1rJ41187V6/?spm_id_from333.337.search-card.all.clickvd_source013cdb0097f528046ab6512cfc15aaf0https://www.bilibili.com/video/BV1YpTVz8E65/?spm_id_from333.337.search-card.all.clickvd_source013cdb0097f528046ab6512cfc15aaf0ARM Cortex-A主要用于需要运行Linux/安卓操作系统的应用场景如全志的很多芯片。ARM Cortex-R主要用于高实时性的应用场景如汽车电子。ARM Cortex-M主要用于低成本、低功耗运行裸机或轻量 RTOS的场景。传统 ARM 架构支持7种工作模式用户模式USR、系统模式SYS、一般中断模式IRQ、快速中断模式FIQ、管理模式SVC、终止模式ABT、未定义模式UNDARM Cortex-M 系列不支持传统 ARM 的 7 种工作模式支持特权模式 非特权模式均采用简化的线程模式 处理模式设计线程模式Thread Mode普通程序如应用任务、主函数运行的模式可处于 “特权级” 或 “用户级” 状态处理模式Handler Mode用于处理中断和异常如 IRQ 中断、系统调用、故障异常始终处于 “特权级” 状态。https://blog.csdn.net/zxjiaya/article/details/146983766TCMTCM高速缓冲Tightly Coupled Memory分为两种ITCMInstruction TCM、DTCMData TCM某些对时间要求非常严格的代码可以放到ITCM中执行以有效地提高运行速度。某些需要频繁存取的数据也可以放到DTCM中以节省存取时间。把代码放到ITCM中有两种方法一种是使用gcc特有的“属性标签”将指定代码赋予“ITCM”属性此时该代码会被载入ITCM中执行。一种方法是直接将.c源文件改成.itcm.c此时源文件会被直接编译成在ITCM中运行的目标文件。DTCM就方便得多了。虽然两个TCM都是可映射的也就是说它们的地址并非固定但是一般会将其分别映射到固定地址。既然已经有了固定地址那么就可以很轻松地访问了。不过正如刚才所说的这两块内存空间都是有特殊用途的所以不建议直接访问。相比于ITCM来说DTCM更加重要。因为在这块内存中存在着一个非常重要的对象——栈。局部变量和函数调用的参数就是靠栈进行传递的。由于DMA无法访问TCM所以也就无法访问栈。又由于局部变量是被开辟到栈中所以DMA也无法对局部变量进行传递。关于DMATCMITCM和DTCM和Cache的理解_itcm dtcm-CSDN博客