欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    存储器与总线架构.ppt

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

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

    存储器与总线架构.ppt

    关于存储器与总线架构现在学习的是第1页,共37页一、系统构架1、STM32系统包含的基本单元l四个驱动单元:Cortex-M3内核ICode总线(I-bus)、DCode 总线(D-bus)和系统总线(S-bus),GP-DMA(通用DMA)l三个被动单元:内部SRAM,内部闪存FLASH存储器,AHB到APB的桥(AHB2APBx),它连接所有的APB设备现在学习的是第2页,共37页2、系统结构如下图所示现在学习的是第3页,共37页lICode总线:该总线将Cortex-M3内核的指令总线与Flash指令接口相连接,指令预取在此总线上完成。lDCode总线:该总线将Cortex-M3内核的DCode总线与闪存存储器的数据接口相连接(常量加载和调试访问)。l系统总线:此总线连接Cortex-M3内核的系统总线(外设总线)到总线矩阵,总线矩阵协调着内核和DMA间的访问。lDMA总线:此总线将DMA的AHB主控接口与总线矩阵相联,总线矩阵协调着CPU的DCode和DMA到SRAM、闪存和外设的访问。现在学习的是第4页,共37页l总线矩阵:此总线矩阵协调内核系统总线和DMA主控总线之间的访问仲裁。此总线矩阵由3个驱动部件(CPU的DCode、系统总线和DMA总线)和3个被动部件(闪存存储器接口、SRAM和AHB2APB桥)构成。AHB外设通过总线矩阵与系统总线相连,允许DMA访问。lAHB/APB桥(APB):两个AHB/APB 桥在AHB和2个APB总线间提供同步连接。APB1操作速度限于36MHz,APB2工作在全速状态(最高72MHz)。现在学习的是第5页,共37页二、存储器组织1、存储器的组织方法l程序存储器、数据存储器、寄存器和输入输出端口被组织在同一个4GB的线性地址空间内。l数据字节以小端格式存放在存储器中。一个字中最低地址字节被认为是该字的最低位字节,而最高地址字节是最高位字节。l可访问的存储器空间被分成8个512MB的主要块,其他所有没有分配给片上存储器和外设的存储器空间都是保留的地址空间现在学习的是第6页,共37页2、存储器映像 现在学习的是第7页,共37页(续图)现在学习的是第8页,共37页3、外设存储器映像 起始地址外设总线寄存器映像0 x4002 2400-0 x4002 3FFF 保留0 x4002 2000-0 x4002 23FF 闪存存储器接口0 x4002 1400-0 x4002 1FFF 保留AHB 0 x4002 1000-0 x4002 13FF 复位和时钟控制0 x4002 0400-0 x4002 0FFF 保留0 x4002 0000-0 x4002 03FF DMA 现在学习的是第9页,共37页0 x4001 3C00-0 x4001 3FFF 保留0 x4001 3800-0 x4001 3BFF USART1 0 x4001 3400-0 x4001 37FF 保留0 x4001 3000-0 x4001 33FF SPI1 0 x4001 2C00-0 x4001 2FFF TIM1时钟0 x4001 2800-0 x4001 2BFF ADC2 APB10 x4001 2400-0 x4001 27FF ADC1 0 x4001 2000-0 x4001 1FFF 保留0 x4001 1800-0 x4001 1BFF GPIO端口E 0 x4001 1400-0 x4001 17FF GPIO端口D 0 x4001 1000-0 x4001 13FF GPIO端口C 0X4001 0C00-0 x4001 0FFF GPIO端口B 现在学习的是第10页,共37页0 x4001 0800-0 x4001 0BFF GPIO端口A 0 x4001 0400-0 x4001 07FF EXTI 0 x4001 0000-0 x4001 03FF AFIO 0 x4000 8000-0 x4000 77FF 保留0 x4000 7000-0 x4000 73FF 电源控制0 x4000 6C00-0 x4000 6FFF 后备寄存器(BKP)APB10 x4000 6800-0 x4000 6BFF 保留0 x4000 6400-0 x4000 67FF bxCAN 0 x4000 6000-0 x4000 63FF USB的SRAM 256x16 位0 x4000 5C00-0 x4000 5FFF USB寄存器0 x4000 5800-0 x4000 5BFF I2C2 0 x4000 5400-0 x4000 57FF I2C1 现在学习的是第11页,共37页0 x4000 5000-0 x4000 4FFF 保留0 x4000 4800-0 x4000 4BFF USART3 0 x4000 4400-0 x4000 47FF USART2 0 x4000 4000-0 x4000 3FFF 保留0 x4000 3800-0 x4000 3BFF SPI2 0 x4000 3400-0 x4000 37FF 保留APB10 x4000 3000-0 x4000 33FF 独立看门狗(IWDG)0 x4000 2C00-0 x4000 2FFF 窗口看门狗(WWDG)0 x4000 2800-0 x4000 2BFF RTC 0 x4000 2400-0 x4000 0FFF 保留0 x4000 0800-0 x4000 0BFF TIM4定时器0 x4000 0400-0 x4000 07FF TIM3定时器0 x4000 0000-0 x4000 03FF TIM2定时器现在学习的是第12页,共37页4、STM32F10X中各接口部件中的寄存器 STM32F103系列微控制器嵌入的各种接口部件都有三大类寄存器:控制寄存器、数据寄存器和状态寄存器,每一类寄存器都包含了多个寄存器,它们在相同的基地址下具有不同的偏移地址。例:TIM2定时器的基地址是:0 x4000 0000 控制寄存器1的偏移地址是:00H 控制寄存器2的偏移地址是:04H 从模式控制寄存器的偏移地址是:08H DMA/中断使能寄存器的偏移地址是:0CH等现在学习的是第13页,共37页由上表述可得到它们的物理地址是:控制寄存器1的物理地址是:0 x4000 0000 控制寄存器2的物理地址是:0 x4000 0004 从模式控制寄存器的物理地址是:0 x4000 0008 DMA/中断使能寄存器的物理地址是:0 x4000 000C等因此对这些寄存器的操作实际上就是对其物理地址中内容的操作现在学习的是第14页,共37页5、嵌入式SRAM STM32F10 x内置20K字节的静态SRAM,它可以以字节、半字(16位)或全字(32位)访问,SRAM的起始地址是0 x2000 0000现在学习的是第15页,共37页6、嵌入式闪存高性能的闪存模块有以下的主要特性:128K字节闪存擦写次数:100万次存储器结构:闪存存储器有主存储块和信息块组成(1)主存储块为16Kx64位,每个主存储块又划分为128个1K字节的页。(2)信息块为320 x64位,每个信息块又划分为一个2K字节和一个0.5K字节的页现在学习的是第16页,共37页三、启动配置 启动模式选择管脚启动模式说明BOOT1BOOT0 x0用户Flash用户闪存被选为启动区域01系统存储器系统存储器被选为启动区域11内嵌SRAM内嵌 SRAM被选为启动区域 在STM32F10 x里,可以通过BOOT1:0引脚选择三种不同启动模式现在学习的是第17页,共37页四、STM32F10X提供的固件库 固件库包括了程序、数据结构和覆盖所有外部特性的宏单元,还包括设备驱动的描述以及每个外围模块的实例。为了方便用户的编程,STM32F10X对接口部件中寄存器的操作转变成了对固件库的操作。即只要调用固件库中的相关函数,就可以完成对接口寄存器的操作。STM32F10X中固件库中的函数是以接口部件来分类的。现在学习的是第18页,共37页1、STM32固件库的定义规则STM32固件库中使用的缩写词:缩写外围模块/单元缩写外围模块/单元ADC模/数转换PWR电源控制BKP备份寄存器RCC复位和时钟控制CAN控制器区域网络RTC实时时钟DMA直接存储器存取控制SPI串行外围接口EXTI外部中断控制器SysTick系统tick定时器FLASHFlash存储器TIM通用定时器GPIO通用I/OTIM1先进的控制定时器I2CI2C接口USART通用同步异步接收传送器IWDG独立看门狗WWDG窗口看门狗NVIC嵌套向量中断控制器现在学习的是第19页,共37页(1)固件库的命名规则 PPP表示外围模块的缩写 系统文件名和源/头文件名以“stm32f10 x_”的形式表示,例如stm32f10 x_conf.h。在单一文件中使用的常量在该文件中定义,在多个文件中使用的常量定义在头文件中,所有的常量以大写字母表示。寄存器当作常量看待。同样以大写字母表示。现在学习的是第20页,共37页 外围模块功能函数的名字需要有相应的外围模块缩写加下划线这样的前缀。每个单词的首写字符需要大写。例SPI_SendData 使用PPP_InitTypeDef中指定的参数初始化PPP外围模块的函数,被命名为PPP_Init。复位PPP外围模块寄存器为默认值的函数,命名为PPP_DeInit。将PPP_InitTypeDef结构体中的每个成员设置为复位值的函数,命名为PPP_StructInit。现在学习的是第21页,共37页 用来使能或禁止指定的PPP外围模块的函数,命名为PPP_Cmd 用来使能或禁止指定的PPP外围模块的某个中断资源的函数,命名为PPP_ITConfig 用来使能或禁止指定的PPP外围模块的DMA接口的函数,被命名为PPP_DMAConfig。用来设置某个外围模块的函数,总是以“Config”结尾。现在学习的是第22页,共37页 用来检测指定PPP的标志是否被置位或清0的函数,命名为PPP_GetFlagStatus。用来清除某个PPP的标志的函数,命名为PPP_ClearFlag 用来检验指定PPP的中断是否发生的函数,命名为PPP_GetITPendingBit 用来清除某个PPP中断挂起位的函数,命名为PPP_ClearITPendingBit现在学习的是第23页,共37页(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;现在学习的是第24页,共37页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;现在学习的是第25页,共37页 布尔(bool)类型布尔类型在头文件stm32f10 x_type.h中定义Typedef enumFALSE=0,TRUE=!FALSEbool;标志状态(FunctionlState)类型标志状态类型在头文件stm32f10 x_type.h中定义Typedef enumRESET=0,SET=!RESETFlagStatus;现在学习的是第26页,共37页 功能状态(FunctionlState)类型功能状态类型在头文件stm32f10 x_type.h中定义Typedef enumDISABLE=0,ENABLE=!DISABLEFunctionlState;错误状态(FunctionlState)类型错误状态类型在头文件stm32f10 x_type.h中定义Typedef enumERROR=0,SUCCESS=!ERRORErrorStatus;现在学习的是第27页,共37页(3)外围模块指向外围模块的指针,用来访问外围模块控制寄存器。外围模块控制寄存器结构stm32f10 x_map.h包含了所有外围模块结构的定义。下面是一个SPI寄存器结构的声明Typedef structvu16CR1/*SPI 控制寄存器1*/u16RESERVED0 /*保留0*/vu16CR2/*SPI 控制寄存器2*/u16RESERVED1 /*保留1*/现在学习的是第28页,共37页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是正数,作为保留域的下标)表示保留域。现在学习的是第29页,共37页 外围模块声明所有外围模块在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)现在学习的是第30页,共37页/*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*/现在学习的是第31页,共37页说明:(1)定义标签_SPI,用来在应用程序中引入SPI外围模块库(_SPI标签定义在stm32f10 x_conf.h中)。(2)定义label_SPIn,用来访问SPIn的外围寄存器(_SPIn标签定义在stm32f10 x_conf.h中)。(3)为了进入调试模式,用户必须在头文件stm32f10 x_conf.h中定义标签DEBUG。这样就构成了一个指向SRAM中外围模块结构体的指针,从而使调试变的简单,并且所有寄存器的设置可以通过转储一个外围变量来实现。现在学习的是第32页,共37页2、STM32固件库的层次结构(1)示例(Examples)文件夹Examples包含每个外设模块的子文件夹,每个子文件夹提供了运行该外设所需要的最小文件集。readme.txt:描述示例如何工作。stm32f10 x_conf.h:头文件,配置所使用的外围模块,并且包括各种DEFINE语句。stm32f10 x_it.c:中断处理函数的源文件。stm32f10 x_it.h:中断处理函数的原型。main.c:示例代码。现在学习的是第33页,共37页(2)库(Library)文件夹Inc子文件夹包含固件库的头文件,不需用户修改。stm32f10 x_type.h:所有其它文件中使用的普通数据类型和枚举。stm32f10 x_map.h:外围模块内存映射和寄存器数据结构。stm32f10 x_lib.h:主头文件,引入所有其它头文件。现在学习的是第34页,共37页 stm32f10 x_ppp.h(每个外围模块对应一个头文件)函数原型,数据结构和枚举。cortexm3_macro.h:cortexm3_macro.s(专用的Cortex-M3指令的封装)的头文件。src子文件夹包含固件库的源文件,不需用户修改。stm32f10 x_lib.c:所有外围模块指针初始化。stm32f10 x_ppp.c(每个外围模块对应一个源文件):每个外围模块的函数体。现在学习的是第35页,共37页(3)工程(Project)文件夹 它包含了一个标准的模板工程,用户可以在此基础上建立新的用户工程。stm32f10 x_conf.h:配置文件,包括所有外围模块的默认定义。stm32f10 x_it.c:源文件,包括中断处理函数。stm32f10 x_it.h:头文件,包含所有中断处理的原型。main.c:主函数体。EWARM,RVMDK:由工具链使用。现在学习的是第36页,共37页感感谢谢大大家家观观看看现在学习的是第37页,共37页

    注意事项

    本文(存储器与总线架构.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开