跳转到主要内容

Cortex-M3

《ARM Cortex-M3权威指南》笔记

editor /

<strong><font size="5">第1章 介绍</font></strong>

<strong>一、ARM Cortex‐M3处理器初探 </strong>

CM3处理器内核是单片机的中央处理单元(CPU)。完整的基于CM3的MCU还需要很多其它组件。在芯片制造商得到CM3处理器内核的使用授权后,它们就可以把CM3内核用在自己的硅片设计中,添加存储器,外设,I/O以及其它功能块。不同厂家设计出的单片机会有不同的配置,包括存储器容量、类型、外设等都各具特色。本书主讲处理器内核本身。如果想要了解某个具体型号的处理器,还需查阅相关厂家提供的文档。

<center><img src="http://mm32.eetrend.com/files/2016-08/wen_zhang_/100002101-6337-1.gif&q…; alt=""></center>

Cortex-M3(M0)汇编-启动代码分析

editor /

;先在RAM 中分配系统使用的栈,RAM 的起始地址为0x2000_0000

;然后在RAM 中分配变量使用的堆

;然后在CODE 区(flash)分配中断向量表,flash 的起始地址为0x0800_0000,该中断向量表就从这个起始地址开始分配

;分配完成后,再定义和实现相应的中断函数,

;所有的中断函数全部带有[weak]特性,即弱定义,如果编译器发现在别处文件中定义了同名函数,在链接时用别处的地址进行链接。

;中断函数仅仅实现了Reset_Handler,其他要么是死循环,要么仅仅定义了函数名称

;STM32 被设置为从内部FLASH 启动时(这也是最常见的一种情况),当STM32 遇到复位信号后,CPU-M3 会自动

;从0x0800_0000 处取出栈顶地址存放于MSP 寄存器,从0x0800_0004 处取出复位中断服务入口地址放入PC 寄存器,

;继而执行复位中断服务程序Reset_Handler,

;Reset_Handler 仅仅执行了两个函数调用,一个是SystemInit,另一个__main,

【下载】Cortex-M3基础知识指南

editor /

Cortex‐M3 是一个32 位处理器内核。内部的数据是32 位的,寄存器是32 位的,存储器接口也是32 位的。

CM3 采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行。这样一来数据访问不再占用指令总线,从而提升了性能。

<strong> 内容提要</strong>

<li>寄存器组</li>

<li>异常和中断</li>

<li>操作模式和特权极别</li>

<li>存储器映射</li>

<li>总线接口</li>

<li>指令集</li>

【视频】Cortex-M3之中断调试管理

editor /

Cortex-M3是一个32位的核,在传统的单片机领域中,有一些不同于通用32位CPU应用的要求。在工控领域,用户要求具有更快的中断速度,Cortex-M3采用了Tail-Chaining中断技术,完全基于硬件进行中断处理,最多可减少12个时钟周期数,在实际应用中可减少70%中断。

<center><embed src="http://player.youku.com/player.php/sid/XNjMzMjE4OTQ4/v.swf&quot; allowFullScreen="true" quality="high" width="480" height="400" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash"></embed></center>