欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    第2章存储器与总线架构课件.ppt

    • 资源ID:1488148       资源大小:840.50KB        全文页数:37页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第2章存储器与总线架构课件.ppt

    第2章 存储器与总线构架,一、系统构架,1、STM32系统包含的基本单元四个驱动单元:Cortex-M3内核ICode总线(I-bus)、DCode 总线(D-bus)和系统总线(S-bus),GP-DMA(通用DMA) 三个被动单元:内部SRAM,内部闪存FLASH存储器,AHB到APB的桥(AHB2APBx),它连接所有的APB设备,2、系统结构如下图所示,ICode总线:该总线将Cortex-M3内核的指令总线与Flash指令接口相连接,指令预取在此总线上完成。DCode总线:该总线将Cortex-M3内核的DCode总线与闪存存储器的数据接口相连接(常量加载和调试访问)。系统总线:此总线连接Cortex-M3内核的系统总线(外设总线)到总线矩阵,总线矩阵协调着内核和DMA间的访问。DMA总线:此总线将DMA的AHB主控接口与总线矩阵相联,总线矩阵协调着CPU的DCode和DMA到SRAM、闪存和外设的访问。,总线矩阵:此总线矩阵协调内核系统总线和DMA主控总线之间的访问仲裁。此总线矩阵由3个驱动部件(CPU的DCode、系统总线和DMA总线)和3个被动部件(闪存存储器接口、SRAM和AHB2APB桥)构成。AHB外设通过总线矩阵与系统总线相连,允许DMA访问。AHB/APB桥(APB):两个AHB/APB 桥在AHB和2个APB总线间提供同步连接。APB1操作速度限于36MHz,APB2工作在全速状态(最高72MHz)。,二、存储器组织,1、存储器的组织方法程序存储器、数据存储器、寄存器和输入输出端口被组织在同一个4GB的线性地址空间内。数据字节以小端格式存放在存储器中。一个字中最低地址字节被认为是该字的最低位字节,而最高地址字节是最高位字节。可访问的存储器空间被分成8个512MB的主要块,其他所有没有分配给片上存储器和外设的存储器空间都是保留的地址空间,2、存储器映像,(续图),3、外设存储器映像,4、STM32F10X中各接口部件中的寄存器 STM32F103系列微控制器嵌入的各种接口部件都有三大类寄存器:控制寄存器、数据寄存器和状态寄存器,每一类寄存器都包含了多个寄存器,它们在相同的基地址下具有不同的偏移地址。例:TIM2定时器的基地址是:0 x4000 0000 控制寄存器1的偏移地址是:00H 控制寄存器2的偏移地址是:04H 从模式控制寄存器的偏移地址是:08H DMA/中断使能寄存器的偏移地址是:0CH等,由上表述可得到它们的物理地址是: 控制寄存器1的物理地址是: 0 x4000 0000 控制寄存器2的物理地址是: 0 x4000 0004 从模式控制寄存器的物理地址是: 0 x4000 0008 DMA/中断使能寄存器的物理地址是: 0 x4000 000C等因此对这些寄存器的操作实际上就是对其物理地址中内容的操作,5、嵌入式SRAM STM32F10 x内置20K字节的静态SRAM,它可以以字节、半字(16位)或全字(32位)访问,SRAM的起始地址是0 x2000 0000,6、嵌入式闪存高性能的闪存模块有以下的主要特性:128K字节闪存擦写次数:100万次存储器结构:闪存存储器有主存储块和信息块组成(1)主存储块为16Kx64位,每个主存储块又划分为128个1K字节的页。(2)信息块为320 x64位,每个信息块又划分为一个2K字节和一个0.5K字节的页,三、启动配置,在STM32F10 x里,可以通过BOOT1:0引脚选择三种不同启动模式,四、STM32F10X提供的固件库,固件库包括了程序、数据结构和覆盖所有外部特性的宏单元,还包括设备驱动的描述以及每个外围模块的实例。 为了方便用户的编程,STM32F10X对接口部件中寄存器的操作转变成了对固件库的操作。即只要调用固件库中的相关函数,就可以完成对接口寄存器的操作。 STM32F10X中固件库中的函数是以接口部件来分类的。,1、STM32固件库的定义规则STM32固件库中使用的缩写词:,(1)固件库的命名规则 PPP表示外围模块的缩写 系统文件名和源/头文件名以“stm32f10 x_”的形式表示,例如stm32f10 x_conf.h。 在单一文件中使用的常量在该文件中定义,在多个文件中使用的常量定义在头文件中,所有的常量以大写字母表示。 寄存器当作常量看待。同样以大写字母表示。,外围模块功能函数的名字需要有相应的外围模块缩写加下划线这样的前缀。每个单词的首写字符需要大写。例SPI_SendData 使用PPP_InitTypeDef中指定的参数初始化PPP外围模块的函数,被命名为PPP_Init。 复位PPP外围模块寄存器为默认值的函数,命名为PPP_DeInit。 将PPP_InitTypeDef结构体中的每个成员设置为复位值的函数,命名为PPP_StructInit。,用来使能或禁止指定的PPP外围模块的函数,命名为PPP_Cmd 用来使能或禁止指定的PPP外围模块的某个中断资源的函数,命名为PPP_ITConfig 用来使能或禁止指定的PPP外围模块的DMA接口的函数,被命名为PPP_DMAConfig。 用来设置某个外围模块的函数,总是以“Config”结尾。,用来检测指定PPP的标志是否被置位或清0的函数,命名为PPP_GetFlagStatus。 用来清除某个PPP的标志的函数,命名为PPP_ClearFlag 用来检验指定PPP的中断是否发生的函数,命名为PPP_GetITPendingBit 用来清除某个PPP中断挂起位的函数,命名为PPP_ClearITPendingBit,(2)代码标准 变量定义了18个变量类型,在头文件stm32f10 x_type.h中Typedef signed long s32;Typedef signed short s16;Typedef signed char s8;Typedef volatile signed long v32;Typedef volatile signed short v16;Typedef volatile signed char v8;Typedef unsigned long u32;Typedef unsigned short u16;Typedef unsigned char u8;,Typedef unsigned long const uc32;Typedef unsigned short const uc16;Typedef unsigned char const uc8;Typedef volatile unsigned long vu32;Typedef volatile unsigned short vu16;Typedef volatile unsigned char vu8;Typedef volatile unsigned long const vuc32;Typedef volatile unsigned short const vuc16;Typedef volatile unsigned char const vuc8;,布尔(bool)类型布尔类型在头文件stm32f10 x_type.h中定义Typedef enumFALSE = 0,TRUE = !FALSEbool; 标志状态(FunctionlState)类型标志状态类型在头文件stm32f10 x_type.h中定义Typedef enumRESET = 0,SET = !RESETFlagStatus;,功能状态(FunctionlState)类型功能状态类型在头文件stm32f10 x_type.h中定义Typedef enumDISABLE = 0,ENABLE = !DISABLEFunctionlState; 错误状态(FunctionlState)类型错误状态类型在头文件stm32f10 x_type.h中定义Typedef enumERROR = 0,SUCCESS = !ERRORErrorStatus;,(3)外围模块指向外围模块的指针,用来访问外围模块控制寄存器。 外围模块控制寄存器结构stm32f10 x_map.h包含了所有外围模块结构的定义。下面是一个SPI寄存器结构的声明Typedef structvu16CR1/* SPI 控制寄存器1 */u16RESERVED0 /* 保留0 */vu16CR2/* SPI 控制寄存器2 */u16RESERVED1 /* 保留1 */,vu16SR/* SPI 状态寄存器 */u16RESERVED2/* 保留2 */vu16DR/* SPI 数据寄存器 */u16RESERVED3/* 保留3 */vu16CRCPR/* SPI CRC多项式寄存器 */u16RESERVED4/* 保留4 */vu16RXCRCR/* SPI Rx CRC 寄存器 */ u16RESERVED5/* 保留5 */vu16TXCRCR/* SPI Tx CRC 寄存器 */ u16RESERVED6/* 保留6 */SPI_TypeDef 每个外围模块的寄存器名是该寄存器的缩写,用大写表示。RESERVEDi(i是正数,作为保留域的下标)表示保留域。,外围模块声明所有外围模块在stm32f10 x_map.h中声明。下面给出了SPI外围模块的声明#ifndef EXT#Define EXT extern#endif#define PERIPH_BASE(u32)0 x40000000)#define APB1PERIPH_BASE PERIPH_BASE#define APB2PERIPH_BASE(PERIPH_BASE + 0 x10000)/* SPI2 基地址的定义 */#define SPI2_BASE(APB1PERIPH_BASE + 0 x3800),/* SPI2 外围声明 */#ifndef DEBUG#ifdef _SPI2 #define SPI2(SPI_TypeDef *)SPI2_BASE)#endif /* _SPI2 */#else /* DEBUG */#ifdef _SPI2 EXT SPI_TypeDef *SPI2#endif/* _SPI2 */#endif/* DEBUG */,说明:(1)定义标签_SPI,用来在应用程序中引入SPI外围模块库(_SPI标签定义在stm32f10 x_conf.h中)。(2)定义label_SPIn,用来访问SPIn的外围寄存器(_SPIn标签定义在stm32f10 x_conf.h中)。(3)为了进入调试模式,用户必须在头文件stm32f10 x_conf.h中定义标签DEBUG。这样就构成了一个指向SRAM中外围模块结构体的指针,从而使调试变的简单,并且所有寄存器的设置可以通过转储一个外围变量来实现。,2、STM32固件库的层次结构(1)示例(Examples)文件夹Examples包含每个外设模块的子文件夹,每个子文件夹提供了运行该外设所需要的最小文件集。 readme.txt:描述示例如何工作。 stm32f10 x_conf.h:头文件,配置所使用的外围模块,并且包括各种DEFINE语句。 stm32f10 x_it.c:中断处理函数的源文件。 stm32f10 x_it.h:中断处理函数的原型。 main.c:示例代码。,(2)库(Library)文件夹Inc子文件夹包含固件库的头文件,不需用户修改。 stm32f10 x_type.h:所有其它文件中使用的普通数据类型和枚举。 stm32f10 x_map.h:外围模块内存映射和寄存器数据结构。 stm32f10 x_lib.h:主头文件,引入所有其它头文件。,stm32f10 x_ppp.h(每个外围模块对应一个头文件)函数原型,数据结构和枚举。 cortexm3_macro.h:cortexm3_macro.s(专用的Cortex-M3指令的封装)的头文件。src子文件夹包含固件库的源文件,不需用户修改。 stm32f10 x_lib.c:所有外围模块指针初始化。 stm32f10 x_ppp.c(每个外围模块对应一个源文件):每个外围模块的函数体。,(3)工程(Project)文件夹 它包含了一个标准的模板工程,用户可以在此基础上建立新的用户工程。 stm32f10 x_conf.h:配置文件,包括所有外围模块的默认定义。 stm32f10 x_it.c:源文件,包括中断处理函数。 stm32f10 x_it.h:头文件,包含所有中断处理的原型。 main.c:主函数体。 EWARM,RVMDK:由工具链使用。,3、STM32固件库的使用使用固件库建立示例应用的过程如下: 使用IAR建立一个工程 添加一个新的源文件main.c,并添加其内容,其中主体实现在函数main中。 引入固件库 编译并运行,

    注意事项

    本文(第2章存储器与总线架构课件.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开