嵌入式系统设计(STM32)第1讲课件

上传人:文**** 文档编号:241928178 上传时间:2024-08-06 格式:PPT 页数:88 大小:3.07MB
返回 下载 相关 举报
嵌入式系统设计(STM32)第1讲课件_第1页
第1页 / 共88页
嵌入式系统设计(STM32)第1讲课件_第2页
第2页 / 共88页
嵌入式系统设计(STM32)第1讲课件_第3页
第3页 / 共88页
点击查看更多>>
资源描述
STM32STM32嵌入式微控器嵌入式微控器快速上手快速上手陈志旺陈志旺等等编著编著电子工业出版社电子工业出版社STM32嵌入式微控器快速上手陈志旺等编著参考资料参考资料1.1.喻金钱,喻斌喻金钱,喻斌.STM32F系列系列ARMCortex-M3核微控制器开发与应用核微控制器开发与应用M.清清华大学出版社华大学出版社.2.2.彭刚,秦志刚彭刚,秦志刚.基于基于ARMCortex-M3的的STM32系列嵌入式微控制器应用实系列嵌入式微控制器应用实践践M.电子工业出版社电子工业出版社.3.3.李宁李宁.基于基于MDK的的STM32处理器开发应用处理器开发应用M.北京航空航天大学出版社北京航空航天大学出版社.参考资料喻金钱,喻斌.STM32F系列ARMCortex考试形式考试形式总成绩总成绩 =实验实验40%+平时平时10%+期末期末50%实验时间:实验时间:1-17周周,双周周五上午双周周五上午8:00实验地点:电子楼实验地点:电子楼119考试形式总成绩=实验40%+平时10%+期末50%主要内容主要内容 1.嵌入式系统简介嵌入式系统简介 2.STM32简介简介 3.教学开发板教学开发板 4.工程模板的建立工程模板的建立主要内容1.1.嵌入式系统简介嵌入式系统简介1.1嵌入式系统定义嵌入式系统定义1.2嵌入式系统的特点嵌入式系统的特点1.3嵌入式系统的分类嵌入式系统的分类1.4嵌入式系统的应用嵌入式系统的应用1.5嵌入式系统的发展嵌入式系统的发展1.6通用计算机与嵌入式系统对比通用计算机与嵌入式系统对比1.嵌入式系统简介1.1嵌入式系统定义1.1 1.1 嵌入式系统定义嵌入式系统定义嵌入式系统(嵌入式系统(Embeddedsystem),是一种),是一种“完全嵌入受控器件内部,为特完全嵌入受控器件内部,为特定应用而设计的专用计算机系统定应用而设计的专用计算机系统”,根据英国电器工程师协会(根据英国电器工程师协会(U.K.InstitutionofElectricalEngineer)的定义,嵌入式系统为)的定义,嵌入式系统为“用于控制、监视用于控制、监视或者辅助操作机器和设备的装置或者辅助操作机器和设备的装置”。与个人计算机这样的通用计算机系统不同,嵌入式系统通常执行的是带有与个人计算机这样的通用计算机系统不同,嵌入式系统通常执行的是带有特定要求的预先定义的任务。由于嵌入式系统只针对一项特殊的任务,设特定要求的预先定义的任务。由于嵌入式系统只针对一项特殊的任务,设计人员能够对它进行优化,减小尺寸降低成本。计人员能够对它进行优化,减小尺寸降低成本。嵌入式系统通常进行大量生产,所以单个的成本节约,能够随着产量进行嵌入式系统通常进行大量生产,所以单个的成本节约,能够随着产量进行成百上千的放大。成百上千的放大。1.1嵌入式系统定义嵌入式系统(Embeddedsys1.1 1.1 嵌入式系统定义嵌入式系统定义嵌入式系统的核心是由一个或几个预先编程好以用来执行少数几项任务的嵌入式系统的核心是由一个或几个预先编程好以用来执行少数几项任务的微处理器或者单片机组成。与通用计算机能够运行用户选择的软件不同,微处理器或者单片机组成。与通用计算机能够运行用户选择的软件不同,嵌入式系统上的软件通常是暂时不变的,所以经常称为嵌入式系统上的软件通常是暂时不变的,所以经常称为“固件固件”。国内普遍认同的嵌入式系统定义为:以国内普遍认同的嵌入式系统定义为:以应用应用为中心,以为中心,以计算机技术计算机技术为基础,为基础,软硬件软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的要求的专用计算机系统专用计算机系统。一般而言,嵌入式系统的构架可以分成四个部分:处理器、存储器、输入一般而言,嵌入式系统的构架可以分成四个部分:处理器、存储器、输入输出(输出(I/O)和软件。)和软件。1.1嵌入式系统定义嵌入式系统的核心是由一个或几个预先编1.2 1.2 嵌入式系统的特点嵌入式系统的特点嵌入式系统的几个重要特征:嵌入式系统的几个重要特征:(1)系统内核小系统内核小。由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多。所以内核较之传统的操作系统要小得多。内核,是一个操作系统的核心。是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、内核体系结构设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。(2)专用性强。专用性强。嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植,即使在同一品牌、同一系列的产品中也需要根据系统硬件的般要针对硬件进行系统的移植,即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改。同时针对不同的任务,往往需要对系统进行较大更改,程序的编变化和增减不断进行修改。同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的译下载要和系统相结合,这种修改和通用软件的“升级升级”是完全两个概念。是完全两个概念。1.2嵌入式系统的特点嵌入式系统的几个重要特征:1.2 1.2 嵌入式系统的特点嵌入式系统的特点(3)系统精简系统精简。嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。(4)高实时性高实时性。高实时性的系统软件高实时性的系统软件(OS)是嵌入式软件的基本要求。而且软件要求固态是嵌入式软件的基本要求。而且软件要求固态存储,以提高速度;软件代码要求高质量和高可靠性。存储,以提高速度;软件代码要求高质量和高可靠性。(5)多任务的操作系统多任务的操作系统。嵌入式软件开发要想走向标准化,就必须使用多任务的操作嵌入式软件开发要想走向标准化,就必须使用多任务的操作系统。嵌入式系统的应用程序可以没有操作系统而直接在芯片上运行;但是为了合理地调系统。嵌入式系统的应用程序可以没有操作系统而直接在芯片上运行;但是为了合理地调度多任务,利用系统资源、系统函数以及专家库函数接口,用户必须自行选配度多任务,利用系统资源、系统函数以及专家库函数接口,用户必须自行选配RTOS(Real RTOS(Real Time Operating System)Time Operating System)开发平台,这样才能保证程序执行的实时性、可靠性,并减少开开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量发时间,保障软件质量。1.2嵌入式系统的特点(3)系统精简。嵌入式系统一般没有1.2 1.2 嵌入式系统的特点嵌入式系统的特点(6)专门的开发工具和环境。专门的开发工具和环境。系统开发需要开发工具和环境。由于其本身不具备系统开发需要开发工具和环境。由于其本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发。开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作发工具和环境才能进行开发。开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。为最后的执行机,开发时需要交替结合进行。【自举(bootstrapping)一词来自于人都是靠自身的“自举”机构站立起来的这一思想。计算机必须具备自举能力将自己所有的元件激活,以便能完成加载操作系统这一目的,然后再由操作系统承担起那些单靠自举代码无法完成的更复杂的任务。自举只有两个功能:加电自检和磁盘引导。】1.2嵌入式系统的特点(6)专门的开发工具和环境。系统开1.3 1.3 嵌入式系统的分类嵌入式系统的分类(1)体系结构。普林斯顿结构()体系结构。普林斯顿结构(冯诺依曼结构)和哈佛结构)和哈佛结构(2)指令集。)指令集。CISC(复杂指令系统)和(复杂指令系统)和RISC(精简指令系统)(精简指令系统)(见表(见表1-2,P4)(3)嵌入式处理器种类。一般可以将嵌入式处理器分成)嵌入式处理器种类。一般可以将嵌入式处理器分成4类,即类,即嵌入式微处理器嵌入式微处理器(MicroProcessorUnit,MPU)嵌入式微控制器嵌入式微控制器(MicroControllerUnit,MCU单片机单片机)嵌入式嵌入式DSP处理器处理器(DigitalSignalProcessor,DSP)嵌入式片上系统嵌入式片上系统(SystemOnChip,SoC)(见表(见表1-3,P5)1.3嵌入式系统的分类冯冯诺依曼结构诺依曼结构 :单一存储、统一编址、分时复用:单一存储、统一编址、分时复用冯诺依曼结构:单一存储、统一编址、分时复用哈佛结构:分开存储、独立编址、两倍带宽、效率更高哈佛结构:分开存储、独立编址、两倍带宽、效率更高哈佛结构:分开存储、独立编址、两倍带宽、效率更高CISC vs RISCCISCvsRISC1.4 1.4 嵌入式系统的应用嵌入式系统的应用(1)工业控制)工业控制 基于嵌入式芯片的工业自动化设备将获得长足的发展,目前已经有大量的基于嵌入式芯片的工业自动化设备将获得长足的发展,目前已经有大量的8、16、32位嵌入式微控制器在应用中,网络化是提高生产效率和产品质量、减少人力资源主要位嵌入式微控制器在应用中,网络化是提高生产效率和产品质量、减少人力资源主要途径,如工业过程控制、数字机床、电力系统、电网安全、电网设备监测、石油化工系统。途径,如工业过程控制、数字机床、电力系统、电网安全、电网设备监测、石油化工系统。就传统的工业控制产品而言,低端型采用的往往是就传统的工业控制产品而言,低端型采用的往往是8位单片机。但是随着技术的发展,位单片机。但是随着技术的发展,32位、位、64位的处理器逐渐成为工业控制设备的核心,在未来几年内必将获得长足的发展。位的处理器逐渐成为工业控制设备的核心,在未来几年内必将获得长足的发展。(2)交通管理)交通管理 在车辆导航、流量控制、信息监测与汽车服务方面,嵌入式系统技术已经获得了在车辆导航、流量控制、信息监测与汽车服务方面,嵌入式系统技术已经获得了广泛的应用,内嵌广泛的应用,内嵌GPS模块、模块、GSM模块的移动定位终端已经在各种运输行业获得了成功的模块的移动定位终端已经在各种运输行业获得了成功的使用。目前使用。目前GPS设备已经从尖端产品进入了普通百姓的家庭,只需要几千元,就可以随时设备已经从尖端产品进入了普通百姓的家庭,只需要几千元,就可以随时随地找到你的位置。随地找到你的位置。1.4嵌入式系统的应用(1)工业控制1.4 1.4 嵌入式系统的应用嵌入式系统的应用(3)信息家电)信息家电 这将称为嵌入式系统最大的应用领域,冰箱、空调等的网络化、智能化将引领人这将称为嵌入式系统最大的应用领域,冰箱、空调等的网络化、智能化将引领人们的生活步入一个崭新的空间。即使你不在家里,也可以通过电话线、网络进行远程控制。们的生活步入一个崭新的空间。即使你不在家里,也可以通过电话线、网络进行远程控制。在这些设备中,嵌入式系统将大有用武之地。在这些设备中,嵌入式系统将大有用武之地。(4)家庭智能管理系统)家庭智能管理系统 水、电、煤气表的远程自动抄表,安全防火、防盗系统,其中嵌有的专用控制芯水、电、煤气表的远程自动抄表,安全防火、防盗系统,其中嵌有的专用控制芯片将代替传统的人工检查,并实现更高,更准确和更安全的性能。目前在服务领域,如远片将代替传统的人工检查,并实现更高,更准确和更安全的性能。目前在服务领域,如远程点菜器等已经体现了嵌入式系统的优势。程点菜器等已经体现了嵌入式系统的优势。(5)POS网络及电子商务网络及电子商务 公共交通无接触智能卡公共交通无接触智能卡(ContactlessSmartcard,CSC)发行系统,公共电话卡发行系发行系统,公共电话卡发行系统,自动售货机,各种智能统,自动售货机,各种智能ATM终端将全面走入人们的生活,到时手持一卡就可以行遍天终端将全面走入人们的生活,到时手持一卡就可以行遍天下。下。1.4嵌入式系统的应用(3)信息家电1.4 1.4 嵌入式系统的应用嵌入式系统的应用(6)环境工程与自然)环境工程与自然 水文资料实时监测,防洪体系及水土质量监测、堤坝安全,地震监测网,实时气象水文资料实时监测,防洪体系及水土质量监测、堤坝安全,地震监测网,实时气象信息网,水源和空气污染监测。在很多环境恶劣,地况复杂的地区,嵌入式系统将实现无信息网,水源和空气污染监测。在很多环境恶劣,地况复杂的地区,嵌入式系统将实现无人监测。人监测。(7)国防与航天)国防与航天 嵌入式芯片的发展将使机器人在微型化,高智能方面优势更加明显,同时会大幅度嵌入式芯片的发展将使机器人在微型化,高智能方面优势更加明显,同时会大幅度降低机器人的价格,使其在工业领域和服务领域获得更广泛的应用。降低机器人的价格,使其在工业领域和服务领域获得更广泛的应用。1.4嵌入式系统的应用(6)环境工程与自然1.5 1.5 嵌入式系统的发展嵌入式系统的发展纵观嵌入式系统的发展历程,大致经历了以下纵观嵌入式系统的发展历程,大致经历了以下3个阶段个阶段 :以嵌入式微处理器为基础的初级嵌入式系统以嵌入式微处理器为基础的初级嵌入式系统以嵌入式操作系统为标志的中级嵌入式系统以嵌入式操作系统为标志的中级嵌入式系统以以Internet和实时多任务操作系统为标志的高级嵌入式系统和实时多任务操作系统为标志的高级嵌入式系统1.5嵌入式系统的发展发展趋势发展趋势嵌入式技术与嵌入式技术与Internet技术的结合正在推动着嵌入式技术的飞速发展,为嵌入式技术的结合正在推动着嵌入式技术的飞速发展,为嵌入式市场展现了美好的前景,同时也对嵌入式生产厂商提出了新的挑战,未来嵌入市场展现了美好的前景,同时也对嵌入式生产厂商提出了新的挑战,未来嵌入式系统的几大发展趋势:式系统的几大发展趋势:(1)嵌入式系统的开发成了一项系统工程,开发厂商不仅要提供嵌入式软硬件)嵌入式系统的开发成了一项系统工程,开发厂商不仅要提供嵌入式软硬件系统本身,同时还要提供强大的硬件开发工具和软件支持包。系统本身,同时还要提供强大的硬件开发工具和软件支持包。(2)网络化、信息化的要求随着)网络化、信息化的要求随着Internet技术的成熟和带宽的提高而日益突出,技术的成熟和带宽的提高而日益突出,以往功能单一的设备如电话、手机、冰箱、微波炉等功能不再单一,结构变得以往功能单一的设备如电话、手机、冰箱、微波炉等功能不再单一,结构变得更加复杂,网络互联成为必然趋势。更加复杂,网络互联成为必然趋势。发展趋势嵌入式技术与Internet技术的结合正在推动着嵌入发展趋势发展趋势(3)未来的嵌入式设备为了适应网络发展的要求,必然要求硬件上提供各种网络通)未来的嵌入式设备为了适应网络发展的要求,必然要求硬件上提供各种网络通信接口。传统的单片机对于网络支持不足,而新一代的嵌入式处理器已经开始内嵌信接口。传统的单片机对于网络支持不足,而新一代的嵌入式处理器已经开始内嵌网络接口,除了支持网络接口,除了支持TCP/IP协议,还有的支持协议,还有的支持IEEE1394、USB、CAN、Bluetooth或或IrDA通信接口中的一种或者几种,同时也需要提供相应的通信组网协议软件和物理通信接口中的一种或者几种,同时也需要提供相应的通信组网协议软件和物理层驱动软件。软件方面系统系统内核支持网络模块,甚至可以在设备上嵌入层驱动软件。软件方面系统系统内核支持网络模块,甚至可以在设备上嵌入Web浏浏览器,真正实现随时随地用各种设备上网。览器,真正实现随时随地用各种设备上网。(4)精简系统内核,优化关键算法,降低功耗和软硬成本。)精简系统内核,优化关键算法,降低功耗和软硬成本。(5)提供更加友好的多媒体人机交互界面。)提供更加友好的多媒体人机交互界面。发展趋势(3)未来的嵌入式设备为了适应网络发展的要求,必然要1.6 1.6 通用计算机与嵌入式系统对比通用计算机与嵌入式系统对比1.6通用计算机与嵌入式系统对比硬件平台比较硬件平台比较软件平台比较返回软件平台比较返回2.STM322.STM32简介简介STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的的ARMCortex-M3内核。内核。按性能分成两个不同的系列:按性能分成两个不同的系列:STM32F103“增强型增强型”系列和系列和STM32F101“基本基本型型”系列。系列。增强型系列时钟频率达到增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型,是同类产品中性能最高的产品;基本型时钟频率为时钟频率为36MHz,以,以16位产品的价格得到比位产品的价格得到比16位产品大幅提升的性能,位产品大幅提升的性能,是是16位产品用户的最佳选择。位产品用户的最佳选择。两个系列都内置两个系列都内置32K128K的闪存,不同的是的闪存,不同的是SRAM的最大容量和外设接口的最大容量和外设接口的组合。时钟频率的组合。时钟频率72MHz时,从闪存执行代码,时,从闪存执行代码,STM32功耗功耗36mA,是,是32位位市场上功耗最低的产品,相当于市场上功耗最低的产品,相当于0.5mA/MHz。2.STM32简介STM32系列基于专为要求高性能、低成本2.STM322.STM32简介简介2.1历史历史2.2产品介绍产品介绍2.3Cortex-M3内核内核2.4应用应用2.STM32简介2.1历史2.1 STM322.1 STM32历史历史意法半导体意法半导体 (STMicroelectronics)集团于集团于1987年年6月成立,是由意大利的月成立,是由意大利的SGS微电子公司和法国微电子公司和法国Thomson半导体公司合并而成。半导体公司合并而成。1998年年5月,月,SGS-THOMSONMicroelectronics将公司名称改为意法半导体有限公司将公司名称改为意法半导体有限公司,意法半导意法半导体是世界最大的半导体公司之一。从成立之初至今,体是世界最大的半导体公司之一。从成立之初至今,ST的增长速度超过了的增长速度超过了半导体工业的整体增长速度。自半导体工业的整体增长速度。自1999年起,年起,ST始终是世界十大半导体公司始终是世界十大半导体公司之一。之一。2007年年6月月ST宣布了她的第一款基于宣布了她的第一款基于Cortex-M3并内嵌并内嵌32K128K闪存的闪存的STM32微控制器系列产品。微控制器系列产品。ARM公司在公司在2004年推出了年推出了CM3内核,经过内核,经过5年市场的积累,包括年市场的积累,包括ST公司、公司、TI公司等一些半导体公司推出了基于公司等一些半导体公司推出了基于CM3内核的微控制器产品。内核的微控制器产品。2.1STM32历史意法半导体(STMicroelecARMARM(AdvancedRISCMachines)是英国的一家微处理器企业,)是英国的一家微处理器企业,也可以认也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。为是对一类微处理器的通称,还可以认为是一种技术的名字。见表见表1-5(P10)ARM体系结构定义了指令集和基于这一体系结构下处理器的编程模型。基体系结构定义了指令集和基于这一体系结构下处理器的编程模型。基于同样体系结构可以有多种处理器,每个处理器性能不同,所面向的应用于同样体系结构可以有多种处理器,每个处理器性能不同,所面向的应用也就不同。也就不同。ARMv7有三个分支,即:有三个分支,即:A-应用分支,面向应用,如手持设备。应用分支,面向应用,如手持设备。R-实时分支,面向一般的实时控制。实时分支,面向一般的实时控制。M-微处理机分支,面向深度嵌入系统。微处理机分支,面向深度嵌入系统。ARMARM(AdvancedRISCMachines)ARMARM处理器系列处理器系列ARM处理器系列2.2 2.2 Cortex-M3Cortex-M3内核内核Cortex-M3Cortex-M3系列微处理器的主要特点如下:系列微处理器的主要特点如下:(1 1)Thumb-2 Thumb-2 指令集架构指令集架构(ISA,InstructionSetArchitecture)。(2 2)哈佛处理器架构,在加载)哈佛处理器架构,在加载/存储数据的同时能够执行指令取指。存储数据的同时能够执行指令取指。(3 3)三级流水线。)三级流水线。(4 4)32 32 位单周期乘法。位单周期乘法。(5 5)具备硬件除法。)具备硬件除法。(6 6)ThumbThumb状态和调试状态。状态和调试状态。(7 7)处理模式和线程模式。)处理模式和线程模式。(8 8)ISRISR(Interrupt Service Routine)的低延迟进入和退出。的低延迟进入和退出。(9 9)可中断)可中断-可继续的可继续的LDM/STMLDM/STM(批量传输数据的指令),),PUSH/POPPUSH/POP。(1010)ARMv6ARMv6类型类型BE8/LEBE8/LE支持。支持。(字节不变式大端模式big-endian/小端模式little-endian)(1111)ARMv6 ARMv6 非对齐访问。非对齐访问。(1212)分支预测功能)分支预测功能 2.2Cortex-M3内核Cortex-M3系列微处理器关于指令集关于指令集CortexM3处理器采用处理器采用ARMv7-M架构,它包括所有的架构,它包括所有的16位位Thumb指令集和基本的指令集和基本的32位位Thumb-2指令集架构,指令集架构,Cortex-M3处理器不能执行处理器不能执行ARM指令集。指令集。Thumb-2在在Thumb指令集架构(指令集架构(ISA)上进行了大量的改进,它与)上进行了大量的改进,它与Thumb相比,具有更高的相比,具有更高的代码密度并提供代码密度并提供16/32位指令的更高性能。位指令的更高性能。为兼容数据总线宽度为为兼容数据总线宽度为16位的应用系统,位的应用系统,ARM体系结构除了支持执行效率很高的体系结构除了支持执行效率很高的32位位ARM指令集以外,同时支持指令集以外,同时支持16位的位的Thumb指令集。指令集。Thumb指令集是指令集是ARM指令集的一个子集,是针对代码密度问题而提出的,它具有指令集的一个子集,是针对代码密度问题而提出的,它具有16位的代位的代码宽度。与等价的码宽度。与等价的32位代码相比较,位代码相比较,Thumb指令集在保留指令集在保留32位代码优势的同时,大大的节位代码优势的同时,大大的节省了系统的存储空间。省了系统的存储空间。关于指令集CortexM3处理器采用ARMv7-M架构,它Cortex-M3只支持最新的只支持最新的Thumb-2指令集,这样设计的优势在于:指令集,这样设计的优势在于:免去免去Thumb和和ARM代码的互相切换,对于早期的处理器来说,这种切换会降低性能。代码的互相切换,对于早期的处理器来说,这种切换会降低性能。Thumb-2指令集的设计是专门面向指令集的设计是专门面向C语言的,切包括语言的,切包括If/Then结构、硬件除法以及本地位结构、硬件除法以及本地位域操作。域操作。Thumb-2指令集允许用户在指令集允许用户在C代码层面维护修改程序。代码层面维护修改程序。Thumb-2指令集也包含了调用汇编代码的功能。指令集也包含了调用汇编代码的功能。综合以上优势,新产品的开发将更易于实现,上市时间也大为缩短。综合以上优势,新产品的开发将更易于实现,上市时间也大为缩短。Cortex-M3只支持最新的Thumb-2指令集,这样设计三级流水线三级流水线-取指、译码、执行取指、译码、执行三级流水线-取指、译码、执行关于工作状态关于工作状态Coretx-M3处理器有处理器有2种工作状态。种工作状态。Thumb状态:这是状态:这是16位和位和32位位“半字对齐半字对齐”的的Thumb和和Thumb-2指令的执行指令的执行状态。状态。调试状态:处理器停止并进行调试,进入该状态。调试状态:处理器停止并进行调试,进入该状态。关于工作状态关于工作模式关于工作模式Cortex-M3处理器支持处理器支持2种工作模式:线程模式和处理模式。种工作模式:线程模式和处理模式。在复位时处理器进入在复位时处理器进入“线程模式线程模式”,异常返回时也会进入该模式,特权和用户,异常返回时也会进入该模式,特权和用户(非特权)模式代码能够在(非特权)模式代码能够在“线程模式线程模式”下运行。下运行。出现异常模式时处理器进入出现异常模式时处理器进入“处理模式处理模式”,在处理模式下,所有代码都是特权,在处理模式下,所有代码都是特权访问的。访问的。关于工作模式Cortex-M3处理器支持2种工作模式:线程模关于中断关于中断Cortex-M3的一个创新在于嵌套中断向量控制器(的一个创新在于嵌套中断向量控制器(NVIC,NestedVectoredInterruptController),是),是Cortex-M3内部的独有集成单元。内部的独有集成单元。NVIC提供如下的功能:提供如下的功能:可嵌套中断支持可嵌套中断支持向量中断支持向量中断支持动态优先级调整支持动态优先级调整支持中断延迟大大缩短中断延迟大大缩短中断可屏蔽中断可屏蔽关于中断Cortex-M3的一个创新在于嵌套中断向量控制器(ARMARM数据存储格式数据存储格式ARM数据存储格式Cortex-M3处理器能够以小端格式或大端格式访问存储器中的数处理器能够以小端格式或大端格式访问存储器中的数据字,而访问代码时始终使用小端格式。据字,而访问代码时始终使用小端格式。小端格式是小端格式是 ARM处理器默认的存储器格式。处理器默认的存储器格式。Cortex-M3处理器能够以小端格式或大端格式访问存储器2.3 2.3 产品介绍产品介绍在在STM32F105和和STM32F107互连型系列微控制器之前,意法半导体已经推出互连型系列微控制器之前,意法半导体已经推出STM32基本型系列、增强型系列、基本型系列、增强型系列、USB基本型系列、增强型系列;新系列产基本型系列、增强型系列;新系列产品沿用增强型系列的品沿用增强型系列的72MHz处理频率。内存包括处理频率。内存包括64KB到到256KB闪存和闪存和 20KB到到64KB嵌入式嵌入式SRAM。新系列采用新系列采用LQFP64、LQFP100和和LFBGA100三种封装,不同的封装保持引脚三种封装,不同的封装保持引脚排列一致性,结合排列一致性,结合STM32平台的设计理念,开发人员通过选择产品可重新平台的设计理念,开发人员通过选择产品可重新优化功能、存储器、性能和引脚数量,以最小的硬件变化来满足个性化的优化功能、存储器、性能和引脚数量,以最小的硬件变化来满足个性化的应用需求。应用需求。2.3产品介绍在STM32F105和STM32F107互LQFP也就是薄型QFP(Low-profileQuadFlatPackage)指封装本体厚度为1.4mm的QFP,是日本电子机械工业会制定的新QFP外形规格所用的名称。QFP封装:这种技术的中文含义叫四方扁平式封装技术(QuadFlatPackage),该技术实现的CPU芯片引脚之间距离很小,管脚很细。一般大规模或超大规模集成电路采用这种封装形式,其引脚数一般都在100以上。该技术封装CPU时操作方便,可靠性高;而且其封装外形尺寸较小,寄生参数减小,适合高频应用;该技术主要适合用SMT表面贴装技术在PCB上安装布线。LQFP也就是薄型QFP(Low-profileQuadLFBGA封装:也就是薄型FBGAFBGA(Fine-PitchBallGridArray:细间距球栅阵列)是一种在底部有焊球的面阵引脚结构,使封装所需的安装面积接近于芯片尺寸。BGA是英文BallGridArrayPackage的缩写,即球栅阵列封装。LFBGA封装:也就是薄型FBGA2.3 2.3 产品介绍产品介绍基本型:基本型:STM32F101R6,STM32F101C8,STM32F101R8,STM32F101V8,STM32F101RB,STM32F101VB增强型:增强型:STM32F103C8,STM32F103R8,STM32F103V8,STM32F103RB,STM32F103VB,STM32F103VE,STM32F103ZE2.3产品介绍基本型:STM32F101R6,STM3STM32STM32型号的说明型号的说明以以STM32F103RBT6这个型号的芯片为例,该型号的组成为这个型号的芯片为例,该型号的组成为7个部分,其命名规则如下:个部分,其命名规则如下:STM32:STM32代表代表ARMCortex-M3内核的内核的32位微控制器。位微控制器。F:F代表芯片子系列。代表芯片子系列。103:103代表增强型系列。代表增强型系列。R:R这一项代表引脚数,其中这一项代表引脚数,其中T代表代表36脚,脚,C代表代表48脚,脚,R代表代表64脚,脚,V代表代表100脚脚,Z代代表表144脚。脚。B:B这一项代表内嵌这一项代表内嵌Flash容量,其中容量,其中6代表代表32K字节字节Flash,8代表代表64K字节字节Flash,B代表代表128K字节字节Flash,C代表代表256K字节字节Flash,D代表代表384K字节字节Flash,E代表代表512K字节字节Flash。T:T这一项代表封装,其中这一项代表封装,其中H代表代表BGA封装,封装,T代表代表LQFP封装封装,U代表代表VFQFPN封装。封装。6:6这一项代表工作温度范围,其中这一项代表工作温度范围,其中6代表代表-40-85,7代表代表-40-105。STM32型号的说明以STM32F103RBT6这个型号的芯STM32F103RBT6STM32F103RBT6封装引脚图封装引脚图STM32F103RBT6封装引脚图2.4 STM32F1032.4 STM32F103性能性能STM32F系列属于中低端的系列属于中低端的32位位ARM微控制器,该系列芯片是意法半导体微控制器,该系列芯片是意法半导体(ST)公司出品,其内核是)公司出品,其内核是Cortex-M3。该系列芯片按片内该系列芯片按片内Flash的大小可分为三大类:的大小可分为三大类:小容量(小容量(16K和和32K)、)、中容量(中容量(64K和和128K)、)、大容量(大容量(256K、384K和和512K)。)。芯片集成有芯片集成有USB,CAN,最多,最多8个定时器,个定时器,2个个ADC,SPI,IIC,USB,UART等等多种功能。多种功能。2.4STM32F103性能STM32F系列属于中低端的2.4 STM32F1032.4 STM32F103性能性能内核:内核:ARM32位位Cortex-M3CPU,最高工作频率,最高工作频率72MHz,1.25DMIPS/MHz。单周期乘法和硬件。单周期乘法和硬件除法。除法。存储器:存储器:片上集成片上集成32512KB的的Flash存储器。存储器。6 64KB的的SRAM存储器。存储器。时钟、复位和电源管理:时钟、复位和电源管理:2.0 3.6V的电源供电和的电源供电和I/O接口的驱动电压;上电接口的驱动电压;上电/断电复位;断电复位;416MHz的晶振;内嵌出厂前调校的的晶振;内嵌出厂前调校的8MHzRC振荡电路;内部振荡电路;内部40kHz的的RC振荡电路;用于振荡电路;用于CPU时时钟的钟的PLL(PhaseLockedLoop,锁相环);带校准用于锁相环);带校准用于RTC(real-timeclock)的)的32kHz的晶振。的晶振。可编程电压检测(可编程电压检测(PVD)。)。低功耗:低功耗:3种低功耗模式:休眠,停止,待机模式。为种低功耗模式:休眠,停止,待机模式。为RTC和备份寄存器供电的和备份寄存器供电的VBAT(电池引(电池引脚)。脚)。调试模式:调试模式:串行调试(串行调试(SWD)和)和JTAG接口。接口。DMA(DirectMemoryAccess):12通道通道DMA控制器。支持的外设:定时器,控制器。支持的外设:定时器,ADC,DAC,SPI,IIC和和UART。2个个12位的位的us级的级的A/D转换器(转换器(16通道)通道):A/D测量范围:测量范围:0-3.6V。双采样和保持能力。片上。双采样和保持能力。片上集成一个温度传感器。集成一个温度传感器。2.4STM32F103性能内核:ARM32位Corte2.4 STM32F1032.4 STM32F103性能性能2通道通道12位位D/A转换器转换器:STM32F103xC,STM32F103xD,STM32F103xE独有。独有。最多高达最多高达112个的快速个的快速I/O端口端口:根据型号的不同,有:根据型号的不同,有26,37,51,80,和,和112的的I/O端口,端口,所有的端口都可以映射到所有的端口都可以映射到16个外部中断向量。除了模拟输入,所有的都可以接受个外部中断向量。除了模拟输入,所有的都可以接受5V以内的以内的输入。输入。最多多达最多多达11个定时器个定时器:4个个16位定时器,每个定时器有位定时器,每个定时器有4个个IC/OC/PWM或者脉冲计数器。或者脉冲计数器。2个个16位的位的6通道高级控制定时器:最多通道高级控制定时器:最多6个通道可用于个通道可用于PWM输出。输出。2个看门狗定时器(独立个看门狗定时器(独立看门狗和窗口看门狗)。看门狗和窗口看门狗)。Systick定时器:定时器:24位倒计数器。位倒计数器。2个个16位基本定时器用于驱动位基本定时器用于驱动DAC。最多多达最多多达13个通信接口个通信接口:2个个IIC接口。接口。5个个USART接口。接口。3个个SPI接口,两个和接口,两个和IIS复用。复用。CAN接口(接口(2.0B)。)。USB2.0全速接口。全速接口。SDIO接口。接口。ECOPACK封装封装:STM32F103xx系列微控制器采用系列微控制器采用ECOPACK封装形式(封装形式(一种无铅的BGA封装)。)。2.4STM32F103性能2通道12位D/A转换器:S2.5 应用应用返回2.5应用返回3.3.教学开发板教学开发板3.教学开发板嵌入式系统设计(STM32)第1讲课件嵌入式系统设计(STM32)第1讲课件嵌入式系统设计(STM32)第1讲课件嵌入式系统设计(STM32)第1讲课件嵌入式系统设计(STM32)第1讲课件嵌入式系统设计(STM32)第1讲课件返回返回4 4 工程模板的建立工程模板的建立4.1ARMCortex-M3处理器编程环境处理器编程环境需要准备的资料需要准备的资料:1.STM32F10 x_StdPeriph_Lib_V3.5.0(这是这是ST官网下载的固件库完官网下载的固件库完整版整版)2.安装安装MDK4.70a(Keil)3.注册注册License(破解破解,如果不破解只能支持如果不破解只能支持32K的代码的代码)安装成功后,桌面上安装成功后,桌面上Keil4显示图标显示图标4工程模板的建立4.1ARMCortex-M3处理器固件库是压缩文件,解压缩后,准备编程时用。固件库是压缩文件,解压缩后,准备编程时用。固件库是压缩文件,解压缩后,准备编程时用。4.2 新建工程4.2新建工程输入工程名,保存输入工程名,保存选择CPU,STM32F103VB选择CPU,STM32F103VB弹出对话框弹出对话框“CopySTM32StartupCodetoproject.”,询问是否添加启动代,询问是否添加启动代码到我们的工程中,这里我们选择码到我们的工程中,这里我们选择“否否”,因为我们使用的,因为我们使用的ST固件库文件固件库文件已经包含了启动文件。已经包含了启动文件。弹出对话框“CopySTM32StartupCode接下来,在接下来,在Template工程目录下面,新建工程目录下面,新建3个文件夹个文件夹 CORE,USER,STM32F10 x_FWLib。USER用来放我们主函数文件用来放我们主函数文件main.c,以及其他包括以及其他包括system_stm32f10 x.c等等等,等,CORE用来存放启动文件等,用来存放启动文件等,STM32F10 x_FWLib文件夹顾名思义用来存放文件夹顾名思义用来存放ST官方提供的库函数源码文官方提供的库函数源码文件。件。还可以新建一个还可以新建一个OUTPUT文件夹,用来放。文件夹,用来放。HEX等编译输出的文等编译输出的文件。件。接下来,在Template工程目录下面,新建3个文件夹CO嵌入式系统设计(STM32)第1讲课件下面要将官方的固件库包里的源码文件复制到我们的工程目录文件夹下面。下面要将官方的固件库包里的源码文件复制到我们的工程目录文件夹我们只用到我们只用到arm目录下面的目录下面的startup_stm32f10 x_md.s文件,这个文件是针对中等文件,这个文件是针对中等容量芯片的启动文件。容量芯片的启动文件。其他两个主要的为其他两个主要的为startup_stm32f10 x_ld.s为小容量,为小容量,startup_stm32f10 x_hs.c为为大容量芯片的启动文件。这里大容量芯片的启动文件。这里copy进来是方便其他开发者使用小容量或者大容进来是方便其他开发者使用小容量或者大容量芯片的用户。量芯片的用户。我们只用到arm目录下面的startup_stm32f10 x嵌入式系统设计(STM32)第1讲课件将目录下面的将目录下面的srcsrc、incinc文件夹文件夹copycopy到到STM32F10 x_FWLibSTM32F10 x_FWLib文件夹下面。文件夹下面。srcsrc存放的存放的是固件库的是固件库的.c.c文件,文件,incinc存放的是对应的存放的是对应的.h.h文件,每个外设对应一个文件,每个外设对应一个.c.c文件和一文件和一个个.h.h头文件。头文件。将目录下面的src、inc文件夹copy到STM32F10 x下面将这些文件加入我们的工程中去。右键点击下面将这些文件加入我们的工程中去。右键点击Target1Target1,选择,选择Manage Manage Components Components 下面将这些文件加入我们的工程中去。右键点击Target1,选Project TargetsProject Targets一栏,将一栏,将TargetTarget名字修改为名字修改为Template,Template,然后在然后在GroupsGroups一栏删掉一个,一栏删掉一个,建立三个建立三个GroupsGroups:USER,CORE,FWLIB.USER,CORE,FWLIB.点击点击OK.OK.ProjectTargets一栏,将Target 名字修改为嵌入式系统设计(STM32)第1讲课件下面我们往Group里面添加我们需要的文件。右键点击点击Tempate,选择选择Manage Components.然后选择需要添加文件的Group,这里第一步我们选择FWLIB,然后点击右边的Add Files,定位到我们刚才建立的目录STM32F10 x_FWLib/src下面,将里面所有的文件选中(Ctrl+A),然后点击Add,然后Close.可以看到Files列表下面包含我们添加的文件下面我们往Group里面添加我们需要的文件。右键点击点击Te嵌入式系统设计(STM32)第1讲课件嵌入式系统设计(STM32)第1讲课件嵌入式系统设计(STM32)第1讲课件下面我们点击编译按钮下面我们点击编译按钮 编译工程,编译工程,可以看到很多报错,因为找不到库文件。可以看到很多报错,因为找不到库文件。下面我们点击编译按钮编下面要告诉MDK,在哪些路径之下搜索相应的文件。回到工程主菜单,点击魔术棒,出来一个菜单,然后点击 c/c+选项.然后点击IncludePaths右边的按钮。弹出一个添加path的对话框,然后我们将图上面的3个目录添加进去。记住,keil只会在一级目录查找,所以如果你的目录下面还有子目录,记得path一定要定位到最后一级子目录。然后点击OK.下面要告诉MDK,在哪些路径之下搜索相应的文件。嵌入式系统设计(STM32)第1讲课件嵌入式系统设计(STM32)第1讲课件重新定位到c/c+界面,然后copy“STM32F10X_MD,USE_STDPERIPH_DRIVER”到 Define里面。重新定位到c/c+界面,然后copy“STM32F10X在编译之前,我们记得打开工程在编译之前,我们记得打开工程USURUSUR下面的下面的main.cmain.c,复制下面代码到,复制下面代码到main.cmain.c覆盖已有代码,然后进行编译。(记得在代码的最后面加上一个回车,否则覆盖已有代码,然后进行编译。(记得在代码的最后面加上一个回车,否则会有警告)会有警告)#includestm32f10 x.hGPIO_InitTypeDefGPIO_InitStructure;intmain(void)SystemInit();RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_2;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;在编译之前,我们记得打开工程USUR下面的main.c,复制GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GPIOD,&GPIO_InitStructure);while(1)/*SetPD0andPD2*/GPIOD-BSRR=0 x00000005;/*ResetPD0andPD2*/GPIOD-BRR=0 x00000005;GPIO_InitStructure.GPIO_Mode=这次编译可以看出,已经成功了。这样一个工程模版建立完毕。下面还需要配置,让编译之后能够生成hex文件。同样点击魔术棒,进入配置菜单,选择Output。然后勾上下三个选项。其中Create HEX file是编译生成hex文件这次编译可以看出,已经成功了。这样一个工程模版建立完毕。嵌入式系统设计(STM32)第1讲课件设置输出文件路径设置输出文件路径编程器ISP设置返回编程器ISP设置返回练习题一练习题一1.1.国内普遍认同的嵌入式系统定义为:以(国内普遍认同的嵌入式系统定义为:以()为中心,以()为中心,以()为基础,()为基础,()可裁)可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。2.2.嵌入式系统的重要特征有嵌入式系统的重要特征有:(:()、()、()、()、()、()、()、)、多任务的操作系统多任务的操作系统和和专门专门的开发工具和环境。的开发工具和环境。3.3.嵌入式系统体系结构分为两种嵌入式系统体系结构分为两种:(:()和()和()。)。ARM7采用(采用()结构;)结构;DSP和和ARM9都采用的(都采用的()结构。)结构。4.4.计算机指令系统分为(计算机指令系统分为()指令系统和()指令系统和()指令系统。)指令系统。5.5.嵌入式处理器分成嵌入式处理器分成4类类:(:()、()、()、()、()和)和SoC。6.6.嵌入式系统的发展历程,大致经历了以下嵌入式系统的发展历程,大致经历了以下3个阶段个阶段:(:()、()、()、()、()。)。7.7.嵌入式系统未来的发展趋势是:(嵌入式系统未来的发展趋势是:()、()、()、()、()。)。练习题一国内普遍认同的嵌入式系统定义为:以()为中心,以练习题一练习题一8.8.()公司在)公司在2004年推出了年推出了CM3内核。内核。9.2007年年6月(月()公司宣布了她的第一款基于()公司宣布了她的第一款基于()内核的)内核的STM32微控制器系列产品。微控制器系列产品。10.CortexM3处理器采用(处理器采用()架构,它包括所有的()架构,它包括所有的()位)位Thumb指令集和基本的指令集和基本的32位位Thumb-2指令集架构。指令集架构。11.Cortex-M3CPU的最高工作频率是(的最高工作频率是()MHz。12.Cortex-M3系列微处理器采用(系列微处理器采用()级流水线。)级流水线。13.13.大端模式(大端模式(big-endian)是指高字节存放在()是指高字节存放在()地址单元。)地址单元。14.STM32F103RBT6这个型号的芯片,这个型号的芯片,R表示(表示(););B表示(表示(););T表示(表示(););6表表示(示()。)。15.15.通用计算机与嵌入式系统的主要区别有哪些?通用计算机与嵌入式系统的主要区别有哪些?练习题一()公司在2004年推出了CM3内核。本章结束本章结束本章结束
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!