IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32嵌入式微控制器快速入手 -> 正文阅读

[嵌入式]STM32嵌入式微控制器快速入手

嵌入式系统分类:

普林斯顿结构(冯*诺依曼结构),内部单一的地址总线和数据总线,单存储空间,不能同时进行取数据和取指令操作,ARM7属于这种结构

哈弗结构有数据和程序两个存储空间,吞吐量比普林斯顿高一倍(DSP,ARM9,Cortex)

CISC和RISC比较
CISCRISC
价格硬件复杂,价格高软件复杂,价格低
指令集复杂庞大????????

精简

指令周期不固定一个周期
编码长度可变,1-15B? ? ? ? ??固定,4B
高级语言支持软件完成硬件完成
寻址模式复杂,,支持内存到内存寻址简单,仅允许LOAD和STORE指令存内存,其他操作基于寄存器
寄存器数目
总线结构普林斯顿哈弗
编译难以优化编译器优化编译生成高效代码程序
应用实例MCS-51系列,PC内处理器芯片ARM系列

ARM

(1)ARM是一种RISC体系结构,x86架构是CISC体系结构,还有MIPS,PowerPC

(2)Advanced RISC Machine Limited公司简称

(3)一类产品总称?

ARM处理器主要特征:

1.采用RISC体系结构? ? ? ? 2.大量的寄存器多种用途? ? ? ? 3.Load/Store体系结构? ? ? ? 4.每条指令条件执行? ? ? ? 5.指令长度固定

Cortex-M体系结构

CM3处理器(32位):ARMv7-M体系结构,哈弗结构,3种功耗模式(睡眠模式,停止模式,待机模式)

分为特权级和用户级,用户级到特权级的唯一途径就是异常,特权级可保护关键存储区不被破坏

通用寄存器包括R0-R12.R0-R7低组寄存器,字长32位,所有指令都可访问,R8-R12高组寄存器16位指令不可访问。堆栈指针R13,连接寄存器R14,程序计数器R15

CM3处理器5个总线
总线名称类型范围
ICodeAHB0x0000 0000~0x1fff ffff
DCode?AHB0x0000 0000~0x1fff ffff
系统总线AHB

0x2000 0000~0xdfff ffff

0xe010 0000~0xffff ffff

外部专用外设总线APB0xe004 0000~0xe00f ffff
内部专用外设总线AHB

0xe000 0000~0xe003?ffff

ARM 体系结构最大寻址空间4GB(2^32B)

RAM 分为静态SRAM(速度最快,价格贵)动态DRAM(读写稍慢,价格便宜)

ROM分为PROM,EPROM(紫外线擦除),EEPROM(电擦除,价格高写入时间长,写入慢)

FLASH(可电擦除可编程,断电不丢失)用作存储BootLoader或U盘

NORFlash随机读取,可直接运行代码,NANDFlash一次读一块,不能直接运行代码(加一小块NORFlash运行启动代码)

SRAM别名区初值0x2200 0000,原绑定内存区0x2000 0000-0x200f ffff(1M),将位绑定区的每一位映射到别名区的一个字(扩大了32倍地址)。别名区地址=0x2200 0000+字节偏移地址*32+位*4.

片上外设区b别名区0x4200 0000,原地址0x4000 0000-0x400f ffff(1M)

ARM指令集分为跳转指令,数据处理指令,程序状态寄存器(PSR)处理指令,加载/存储指令,协处理器指令,异常指令? ? ? ? 六大类

ARM指令寻址方式包括立即寻址,寄存器寻址,寄存器间接寻址,基址加变址寻址,堆栈寻址,块复制寻址,相对寻址

THumb指令集是ARM指令集的子集,操作数32位,指令长度16位,大大节省系统存储空间?

CM3处理器3级流水线:取指,解码,执行。

异常通常定义为在正常的程序执行流程中发生暂时的停止并转向相应的处理。中断请求信号来自内核外部,异常是内核活动产生的。CM3有15个异常,优先级数值越小,优先级越高。三个系统异常(复位,NMI,硬fault),有固定的优先级且优先级是负数。如果一个发生的异常不能被立即响应,就称它被挂起。

中断(异常)基于优先级动作:占先(当前中断碰到更高优先级中断重新压栈),末尾连锁(新中断没有当前中断优先级高,当前中断执行完之后不出栈直接相应新中断),返回(出栈),迟来(低优先级中断响应前被高优先级中断抢先相应)

存储器保护单元(MPU)将关键数据,os内核及向量表等重要区域的属性设置为只读。

STM32最小系统

电压调节器有三种工作模式运行模式(主模式),停止模式(低功耗模式),待机模式(关断模式)

锁相环(PLL Phrase Locked Loop)是一种反馈控制电路,其特点是利用外部的参考信号控制环路内部振荡信号的频率和相位,使外部的输入信号和内部的振荡信号同步。

四种主要时钟频率:HSE(high speed External clock signal)4-16MHz,常用8MHz

HSI(high speed Internal clock signal)内部8MHz,可直接做系统时钟或2分频后做PLL输入

LSE,外部32.768kHz? ? ? ? LSI,内部40kHz

RCC寄存器管理时钟

STM32F10xxx支持三种复位形式:系统复位,电源复位,备份区复位

JTAG(Join Test Action Group)接口四个引脚JTMS(测试模式选择引脚)JTCK(测试时钟输入引脚)JTDI(测试数据输入引脚)JTDO(测试数据输出引脚)

STM32最小系统包括电源电路,时钟电路,复位电路,启动电路,程序下载电路

STM32程序设计

硬件逻辑被虚拟化成汇编语句,汇编语句再次被封装虚拟成高级语言语句,再次被封装成函数,函数互相调用与组合最后形成了应用程序。

CMSIS(Cortex Microcontroller Software Interface Standard)是独立于供应商的Cortex-M处理器系列硬件抽象层,提供了连续简单的处理器软件接口。

基于CMSIS标准的软件架构主要分为4层,用户应用层,操作系统层,CMSIS层,硬件寄存器层,CMSIS起到承上启下的作用

自减运算符比自加效率高代码精简? ? ? ? a%8~a&7? ? ? ? a*8~a<<3? ? ? ? a/8~a>>3? ? ? ? if 比?效率高? ? ? ? dowhile比while效率高

GPIO原理及应用

GPIO输出功能:推挽输出(既可以向负载灌电流,也可以从负载抽电流,既提高电路负载能力,又提高开关速度)

开漏输出不输出电压,低电平接地高电平上拉到上拉电阻电压(外接上拉电阻时)

EXTI原理及应用

EXTI0到达时内核暂停当前程序执行跳转到0x0000 0058拿到中断处理函数EXTI0——IRQHandler()地址并跳转,函数执行结束后返回原地址(3次跳转)

挂起是暂停正在进行的中断去执行同级或更高级别的中断。

USART:同步通信与异步通信区别:

1、同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;异步通信时不要求接收端时钟和发送端时钟同步,发送端发送完一个字节后,可经过任意长的时间间隔再发送下一个字节。

2、同步通信效率高;异步通信效率较低。

3、同步通信较复杂,双方时钟的允许误差较小;异步通信简单,双方时钟可允许一定误差。

4、同步通信可用于点对多点;异步通信只适用于点对点。

RS-232常用串行通信接口标准之一

存储器直接访问DMA(Direct Memory Access)是一种高速的数据传输操作,允许外部设备和存储器之间利用系统总线直接读写数据

操作系统是计算机硬件的封装和功能的扩充,操作系统是资源的管理者。

非抢占式内核一个特点是几乎不需要使用信号量来不糊共享数据,不担心被高优先级任务抢占,但响应高优先级任务较慢。

当系统响应时间重要时要使用占先式内核,高优先级任务一旦就绪总能剥夺CPU使用权。

可重入(reentrant)函数可以由多于一个任务并发使用,而不必担心数据错误。相反, 不可重入(non-reentrant)函数不能由超过一个任务所共享,除非能确保函数的互斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可以在任意时刻被中断,稍后再继续运行,不会丢失数据。可重入函数要么使用本地变量,要么在使用全局变量时保护自己的数据。访问全局变量时用互斥信号量保护全局变量。

绝大多数微处理器的堆栈都是从高地址向低地址增长。

UC/OS-II任务共有5种状态:休眠,就绪,运行,等待,中断服务,临界代码段要关闭中断。任务控制块用于记录任务堆栈指针,任务当前状态,任务优先级与任务管理有关的属性表。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-10-03 17:14:14  更:2021-10-03 17:14:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:28:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码