STM32学习之路之入门篇
2006年ARM公司推出了基于ARMV7架构的cortex系列的标准体系结构,以满足各种技术得不同性能要求,包含了A,R,M三个分工明确的系列
其中A系列面向复杂的尖端应用程序,用于运行开放式的复杂操作系统;R系列适合实时操作系统,M系列专门针对低成本的微控制领域。而我们今天要学习的STM32就是M3的处理器
STM32(M3)处理器的基本结构,基本结构如图所示,主要包括处理器核cortex-m3 core,NVIC,BUS MATRIS,FLASH转换,及断点单元,DWT,ITM,MPU,ETM,TPIU,ROM Table
SW/SWJ-DP等模块,其中MPU和ETM单元是可选单元。
这些单元可分为内外两个层次,其中ETM,TPIU,ROM Table,SW/SWJ-DP单元属于外层,因为这四个单元或可选或可灵活配置实现,也就是在处理器具体实现时TPIU,ROM Table
,SW/SWJ-DP可能与图1-1可能不同,
cortex-m3核内部寄存器包括:13个通用32位寄存器,连接寄存器LR,程序计数器PC,程序状态寄存器 xpsr和2个堆栈指针寄存器;
Cortex-M3处理器支持两种处理器的操作模式,还支持两级特权操作。
两种操作模式分别为:处理者模式和线程模式(thread mode)。
引入两个模式的本意,是用于区别普通应用程序的代码和异常服务例程的代码——包括中断服务例程的代码。
两级特权操作分别为:特权级和用户级。
这可以提供一种存储器访问的保护机制,使得普通的用户程序代码不能意外地,甚至是恶意地执行涉及到要害的操作。
处理器支持两种特权级,这也是一个基本的安全模型。
主应用程序(线程模式),既可以使用特权级,也可以使用用户级;
异常服务例程(处理者模式)必须在特权级下执行。
通过引入特权级和用户级,就能够在硬件水平上限制某些不受信任的或者还没有调试好的程序,
不让它们随便地配置涉及要害的寄存器,因而系统的可靠性得到了提高。
STM32学习之路之入门篇的更多相关文章
- Web 前端开发学习之路(入门篇)
字数1374 阅读4622 评论0 喜欢49 以前学习过一段时间的web前端开发,整理了一些我看过的/我认为比较好的学习资料(网站.书籍).不要问我为啥没有进阶版,我只是一条产品汪而已,求轻喷.== ...
- STM32学习之路入门篇之指令集及cortex——m3的存储系统
STM32学习之路入门篇之指令集及cortex——m3的存储系统 一.汇编语言基础 一).汇编语言:基本语法 1.汇编指令最典型的书写模式: 标号 操作码 操作数1, 操作数2,... ...
- [精品书单] C#/.NET 学习之路——从入门到放弃
C#/.NET 学习之路--从入门到放弃 此系列只包含 C#/CLR 学习,不包含应用框架(ASP.NET , WPF , WCF 等)及架构设计学习书籍和资料. C# 入门 <C# 本质论&g ...
- python学习之路网络编程篇(第四篇)
python学习之路网络编程篇(第四篇) 内容待补充
- netty深入学习之中的一个: 入门篇
netty深入学习之中的一个: 入门篇 本文代码下载: http://download.csdn.net/detail/cheungmine/8497549 1)Netty是什么 Netty是Java ...
- 『NiFi 学习之路』入门 —— 下载、安装与简单使用
一.概述 "光说不练假把式." 官网上的介绍多少让人迷迷糊糊的,各种高大上的词语仿佛让 NiFi 离我们越来越远. 实践是最好的老师.那就让我们试用一下 NiFi 吧! 二.安装 ...
- Python学习之路【第一篇】-Python简介和基础入门
1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是 ...
- Extjs5.0 学习之路【资源篇】
磨刀不误砍柴工. 先收集资源,然后再开始学习之路. Extjs5.0 文件下载 API-5.0 API离线包 http://cdn.sencha.com/downloads/docs/ext-docs ...
- 学习python之路_入门篇A
偶尔经同事的介绍进入了金角大王的博客里,看到大王编写的文章都是关于python编程的,由于自己一直也是做软件测试方面的工作,也一直想往自动化测试方面发展,了解到利用python可以进行自动化测试操作, ...
随机推荐
- 【ExtJS】各种获取元素组件方法
1.get().getDom().getCmp().getBody().getDoc(): get(id/obj): get方法用来得到一个Ext元素,也就是类型为Ext.Element的对象, Ex ...
- Android Studio使用心得
说实话 開始接触这个工具 真的认为非常恶心 毕竟大陆被墙 非常多东西用起来不是非常方便 并且Eclipse转到Android Studio还是一个跨度 废话不多说 以下 讲下我遇到的问题 1. 安 ...
- linux中vim中文显示乱码
这里所说的都是全局设定,打开vimrc文件后,只需要在文件最后添加以下代码就可以了: set fileencodings=utf-8,gb2312,gbk,gb18030 set termencodi ...
- 【C#】用List做动态数组
需求:有时候我们需要一个动态数组,如拼接URL的时候,希望string[]能够动态添加数据. 这时可以使用List集合,List集合可以动态添加元素.最后使用时用List.toArray()方法转成s ...
- 【mybase】绿色版---mybase非常好用的笔记软件
mybase绿色软件,体积小,解压可以直接使用,PC端非常好用的笔记软件. 包含两个版本: mybase6.5.0 mybase7.0.0 软件下载地址: 链接: http://pan.baidu.c ...
- Specified VM install not found: type Standard VM, name jdk1.6...
运行ant的时候出现 Specified VM install not found: type Standard VM, name.... 搞了好久..汗汗 尝试删除这些文件: ... / .meta ...
- [从jQuery看JavaScript]-匿名函数与闭包
jQuery片段: (function(){ //这里忽略jQuery所有实现 })(); 半年前初次接触jQuery的时候,我也像其他人一样很兴奋地想看看源码是什么样的.然而,在看到源码的第一眼,我 ...
- 继电器是如何成为CPU的
阅读目录(Content) 从电池.开关和继电器开始 用继电器做个与门 用继电器做个或门 用继电器做个异或门 做一些看起来可用的东西 小小约定 振荡器 加法器 寄存器 R-S触发器 D触发器 上升沿D ...
- RunnableException与CheckedException
Checked Exception 编译时异常 编译的时候检查你的代码可能在运行的时候抛出异常,这通常在编译的时候要去处理的. RunnableException 运行时异常,可以编译通过,但如果不处 ...
- i2c驱动笔记
基于bcm5300x芯片 注册平台总线设备,设备名bcm5300x_i2c,通过名称与驱动进行匹配. 注册平台总线驱动.驱动名称"bcm5300x_i2c",与设备进行匹配. dr ...