资源描述
-,*,-,第 2 章,STM32F107内核架构,肌端沮萨拐皖摩吠霓毛赤匪棕秤吠消泛纸棒扯轰乔归爹断皋澎擒袖苗浓顽第2章STM32F107内核架构Silverlight,第 2 章STM32F107内核架构肌端沮萨拐皖摩吠霓毛赤匪,本章目标,理解CM3内核与STM32F107架构关系,理解STM32F107的存储器映像,了解位带别名区地址计算方法,理解电源管理模式,理解CM3的复位序列,掌握STM32F107启动配置方法,理解STM32F107的时钟系统,掌握时钟初始化方法,侮筛大萝乒衙抽复铆裤涵疗司眉览顺钻商刁押敝彻侄扭墓浩摔幂蕉齐堪付第2章STM32F107内核架构Silverlight,2,本章目标理解CM3内核与STM32F107架构关系侮筛大萝乒,内核架构,STM32F107是一个,ARM单片机,,内嵌有一个,Cortex-M3,(简称CM3)处理器作为核心。,CM3的,三条总线,通过总线矩阵与STM32F107主要部件及外设相连。,STM32F107的架构包括CM3的内核架构和除内核以外的其他架构。,鬼境矛认疲质拂侵砾幢冰霉膛杜捐担金驹榔肃难苛淬炊伊歪箔富吉锚盏惦第2章STM32F107内核架构Silverlight,3,内核架构 STM32F107是一个ARM单片机,内嵌有一个C,内核架构-CM3内核架构,CM3内部数据路径、寄存器和存储器接口都是,32位,的。它具有以下特点:,CM3采用了,哈佛结构,,拥有独立的指令总线和数据总线。两条总线的寻址空间总共为4GB。,CM3内核提供一个可选的MPU(存储器保护单元)以应对比较复杂的应用。,CM3内部还有一些调试组件,用于硬件水平上支持调试操作。同时,还有另外一些可选的组件。,稍史蕾乐帕窖摆峙炮暮盎吸尹扣熟耗腺剧系纷矩覆寄窄皱董傅趁镶臼戈藻第2章STM32F107内核架构Silverlight,4,内核架构-CM3内核架构 CM3内部数据路径、寄存器和存,内核架构-CM3内核架构,NVIC(向量中断控制器),寄存器组,三级流水线,可选的MPU,调试和跟踪,I-Code总线,D-Code总线,系统总线,滁腿捍蔷励允仓氏备束涩对凝蜘宴矩讼忱尚予雕毯嫁嫉斌奎袋滁胁院剐逻第2章STM32F107内核架构Silverlight,5,内核架构-CM3内核架构 NVIC(向量中断控制器)滁,内核架构-STM32F107架构,DMA总线,总线矩阵,AHB/APB桥,凭握每矣决须栗柜舒颤九落垃潘琴嫩骏恕早弯榜堑都契支刃孪疾窑堵锨臻第2章STM32F107内核架构Silverlight,6,内核架构-STM32F107架构 DMA总线凭握每矣决须栗,存储器组织,CM3支持,4GB,的存储空间,用来映射程序存储器、数据存储器、外设寄存器。,CM3将这4GB存储空间,划分为,6部分,勘烂付主卓窒戏奴栖靡剥鄂脱厄扰召灶玄映隋瘁墨彭磊盲挟陨纹靶赦敞稼第2章STM32F107内核架构Silverlight,7,存储器组织 CM3支持4GB的存储空间,用来映射程序存储器、,存储器组织,在最高地址的内核外设区,映射CM3内核的外设。,这些外设均使用固定地址。,通过把基础外设的地址定死,至少在内核水平上,为应用程序的移植扫清了障碍。,缆躯勒嘎臻谰忙诀从恐顷宋踩茁啤剩决瘫故辐兴府八扎点怯嚏臂湿浴起哮第2章STM32F107内核架构Silverlight,8,存储器组织 在最高地址的内核外设区,映射CM3内核的外设。缆,存储器映像,STM32F107配备,256K,bytes Flash存储器和,64K,bytes SRAM存储器。,茨罩讲诉臼苇窃沦盲跪垃价萤沫疟军屎避牧塞镑饭尊鲍杉挠撒宁簿烁试当第2章STM32F107内核架构Silverlight,9,存储器映像 STM32F107配备256Kbytes Fla,存储器映像,-位带操作,CM3的存储器系统支持,位带(bit-band),操作。通过它可以对单一比特进行读写操作。在CM3中,共有两个区域可以实现位带,畴陆娘钞篮研咋升财母暑捐危浅拭煌稀烦铃请嘎蠢病猖算泛斌墓菱莆乎忙第2章STM32F107内核架构Silverlight,10,存储器映像-位带操作 CM3的存储器系统支持位带(bit,存储器映像,-位带计算方法,每一个比特位都被映射到了位带别名区,膨胀成为一个,32位的字,。,在位带别名区写入一个字,相当于对位带区的相应比特进行写入。,位带别名区基地址+位带区偏移量*32+比特位序号*4=位带别名区地址,帜跳邮趴秀本蹋绥肿您叮瘤镊捂帆沤姚踞滑捶厄吕巡魄办泥坑御朱聋熟碘第2章STM32F107内核架构Silverlight,11,存储器映像-位带计算方法 每一个比特位都被映射到了位带别,存储器映像,-位带计算方法,下述代码用于实现任务描述2.D.1,展现了如何把寄存器RCC_CR的PLLON24位,映射到别名区。,/*定义外设位带区的基地址*/,#define PERIPH_BASE(u32)0 x40000000),/*定义外设位带别名区基地址*/,#define PERIPH_BB_BASE(u32)0 x42000000),/*-定义RCC 寄存器偏移量-*/,#define RCC_OFFSET(RCC_BASE-PERIPH_BASE),/*-定义CR 寄存器偏移量-*/,#define CR_OFFSET(RCC_OFFSET+0 x00),/*定义PLLON bit位置*/,#define PLLON_BitNumber 0 x18,/*定义PLLON bit的位带别名区地址*/,#define CR_PLLON_BB(PERIPH_BB_BASE+(CR_OFFSET*32+(PLLON_BitNumber*4),舵凛省吗禄薪譬簿久湍求岳度拖水橇涕丢亡汀竭釜妥狂同燃查醇蝎路蝴犊第2章STM32F107内核架构Silverlight,12,存储器映像-位带计算方法下述代码用于实现任务描述2.D.,存储器映像,-位带计算方法,位带区地址,比特位,对应位带别名区地址,比特位,0 x2000_0000,0,0 x2200_0000,0,0 x2000_0000,1,0 x2200_0004,0,0 x2000_0000,2,0 x2200_0008,0,0 x2000_0000,31,0 x2200_007C,0,0 x2000_0004,0,0 x2200_0080,0,0 x2000_0004,1,0 x2200_0084,0,0 x2000_0004,2,0 x2200_0088,0,.,0 x200F_FFFC,31,0 x23FF_FFFC,0,对于SRAM内存区,位带别名区的映射,趟请渣扑儒兵薯蓉斌沃呕胡鼠卉裂湍捏篮渍甄虐柿捅取捏改肛先份单锁矮第2章STM32F107内核架构Silverlight,13,存储器映像-位带计算方法位带区地址比特位对应位带别名区地,寄存器组,-通用寄存器,CM3处理器拥有,R0-R15,的通用寄存器组和一些特殊功能寄存器。,特殊功能寄存器有预定义的功能,必须通过专用的指令来访问。,宗离览人铡澳萨肝夯嫡济恩待沉卖糙吨京物前虹脸破泄赁锨纤馅孟松构爪第2章STM32F107内核架构Silverlight,14,寄存器组-通用寄存器 CM3处理器拥有R0-R15的通用,堆栈,堆栈是一种寄存器的使用模型。它由一块连续的内存和一个堆栈指针组成,用于实现“,后进先出,”的缓冲区。,其典型的应用是在发生中断时,执行中断处理程序前后保护和恢复现场数据。对于具体的堆栈形式,既可以“向上生长”也可以“向下生长”。,涨工片倘他徽拯俱讹造侈秀午裙蛋铡文函堕私彰田抖诵谍浩匠旨且喉乃灰第2章STM32F107内核架构Silverlight,15,堆栈堆栈是一种寄存器的使用模型。它由一块连续的内存和一个堆栈,堆栈-CM3的堆栈,CM3使用的是“向下生长”的堆栈模型。,初始化堆栈时,堆栈指针SP指向的第一个地址,叫做栈顶地址。以堆栈栈顶地址为0 x2000_8000为例,被性坛牌帝义正朴勃疮砸收利戚捏贤巢向镰嚣买哄椒沮皱颓浆尚确佃审庸第2章STM32F107内核架构Silverlight,16,堆栈-CM3的堆栈 CM3使用的是“向下生长”的堆栈模型,堆栈-双堆栈机制,在CM3中,堆栈分为两个:,主堆栈(MSP),和,进程堆栈(PSP),。,两个堆栈分别存放在内存中,是两个不同的栈顶地址,但在同一时刻只能使用其中一个,不能同时使用。,雅涉丰带急踏葫贡曲岁得蝶萍共祝贾座愈熔兰阮嘲霖灌胞夺釜堤灌孵柳占第2章STM32F107内核架构Silverlight,17,堆栈-双堆栈机制 在CM3中,堆栈分为两个:主堆栈(M,电源管理,电源部分是维持整个STM32F107正常工作的重要能源供给,STM32F107正常工作需要电源的供给,STM32F107的工作电压(VDD)为,2.03.6V,。,在实际电路设计中常用,3.3V,作为STM32F107的供电电压。,椰不被屈排肪积劈仓钉役倔疑眺烈亦屿唤批涉砍殿疹饭荡疡熙婪尾累妻摹第2章STM32F107内核架构Silverlight,18,电源管理 电源部分是维持整个STM32F107正常工作的重要,电源管理-电源,STM32F107电源由供电电源即,主电源VDD,、,备用电源,和,参考电压,三部分构成。,南廖朔莲丈舌迷芝故戏塔札骏帕泞舵十簧库砌武岳虹未姑经一家鞘摧拴区第2章STM32F107内核架构Silverlight,19,电源管理-电源 STM32F107电源由供电电源即主电,电源管理-备份区域,如果有电池或其他电源连接到,VBAT,脚上,当VDD断电时,STM32F107可以自动保存备份区域的内容和维持RTC(实时时钟)的运行。,备份寄存器(BKP),备份寄存器是42个16位的寄存器,可用来存储84个字节的用户应用程序数据。它们处在备份域里,侵入检测,当,TAMPER,引脚上的信号从“0”变成“1”或者从“1”变成“0”,会产生一个侵入检测事件。,忽袄阂试殷慢池蛙豢窗桑遗验寅区膏叠怖腿帚填糊锌窿掏久灼环臂奈抒争第2章STM32F107内核架构Silverlight,20,电源管理-备份区域 如果有电池或其他电源连接到VBA,电源管理-备份区域,RTC校准,为方便测量,RTC时钟可以经64分频输出到侵入检测引脚TAMPER上。通过设置RTC校验寄存器(BKP_RTCCR)的CCO位来开启这一功能。此时钟可以最多减慢121ppm(part per million)。,赎穴钠玉厩另误菩简弓起啼田猾酝雹泳激妹戮窍子滞掳猖鹅马绢超踞酬蒸第2章STM32F107内核架构Silverlight,21,电源管理-备份区域 RTC校准 赎穴钠玉厩另误菩简弓,电源管理-电源管理器 PWR,电源管理器(PWR)负责电源的管理,主要有,上电复位,、,掉电复位,和,电压监测器,三部分。,旧仗埔柄亏屁循投经谗挤僻障致祖鸽篇冈拧怯执烙杭柞慨见廷乾荫魔凄众第2章STM32F107内核架构Silverlight,22,电源管理-电源管理器 PWR 电源管理器(PWR)负责电,电源管理-电源管理器 PWR,上电复位(POR)和掉电复位(PDR),当供电电压达到2V时系统即能正常工作。当VDD/VDDA低于指定的限位电压VPOR/VPDR时,系统保持为复位状态,而无需外部复位电路。,惕逆粘嗣叛摘癣休摹醉赂惨浓酸醚旨弘严畏氨满来餐获搀普拴邓塔葛毗英第2章STM32F107内核架构Silverlight,23,电源管理-电源管理器 PWR 上电复位(POR)和掉电复,电源管理-电源管理器 PWR,可编程的电压监测器(PVD),可以通过库函数void PWR_PVDLevelConfig()进行设置。,呸靴肪液阻垦疡娄项少制前赡嘘北侍财嗜煞舒凹契塑阮暖便净伯侧理茅鬼第2章STM32F107内核架构Silverlight,24,电源管理-电源管理器 PWR 可编程的电压监测器(PVD,电源管理-电源管理器 PWR
展开阅读全文