[CortexM0--stm32f0308]系统框架

目录

    • 目录
    • 问题描述
    • 系统框架概述
      • Masters
      • Slaves
      • 框架图示
    • Memory概述
      • SRAM
      • Flash
      • boot配置
        • 如何配置
        • boot分类

问题描述

stm32f0308为CortexM0架构,系统框架部分将进行简述,详细的可参看ARM的CortexM0相关的文档。

系统框架概述

stm32f0308 IC内部系统框架可简单划分为2个master和4个slave系统。这里的master和slave概念是相对于Busmatrix而言的:

Masters

  • Cortex-M0 core AHB bus
  • GP-DMA

Slaves

  • 内部SRAM
  • 内部Flash
  • AHB2APB
  • AHB到GPIO ports

框架图示

对于AHB2APB Bridge,如果要使用APB bus连接到的peripherals,必须要调用RCC_AHBENR之类的寄存器先使能该peripheral的时钟。

Memory概述

程序,数据,register, IO端口等都统一映射在4G的地址空间中(32bit机器一般都这样做,只是细微有些区别)。stm32f0308的memory map详细划分,需要看下它的datasheet,上面有详细的介绍。

SRAM

对于stm32f0308的SRAM,有8K byte大小,可以用byte, word, half-word为单位访问的,这部分的作用,就是存放编译链接后的代码的.data, .bss数据,程序运行中的堆栈也会在这区域中,程序运行时,数据会不断的被读或写入到这片SRAM中。

Flash

stm32f0308一般使用其内部flash就足够了,因为其IC定位就是如此,选用合适的资源,做合适的事情。64K的用户Flash空间。

Flash在IC中,会称为内部Flash,有时也会用ROM(ROM和Flash的区别,应当是在能耗更低,但功能是和Flash相同,掉电保存数据)。

stm32f0308的内部Flash其实是又分为了两类,一类是那64K,用来下载用户编译链接后所生成的.bin代码。另一类是Info Flash,这部分其实又分了两种,一种是option byte,这个option byte比较简单,就是可以写入数据,对IC的某些功能进行配置,这里先不详述。Info Flash的另外一种在stm32f0308中被称为System memory,可以想见,这是IC系统的memory,里面放了一段在IC流片时就固化了的代码,这份代码肯定是不开源的,只能大概猜测其做法。对于System memory的作用,就是当做一个内嵌的bootloader,其实一般debug不会用到。一般的用法是,用一个调试器通过swd接口连接到IC,然后代码下载调试很方便做到,但是,对于产品来说,就很可能不会将swd接口引出,此时只需要通过某些用到的串行接口,透过IC内部的System memory的bootloader将已经调试完成的产品.bin代码下载到用户Flash并运行,这是当前比较流行的固件更新的大概流程。对于System memory的bootloader,STM肯定会给出接口和使用Demo的,可以找到很多相关说明文档,都是说明如何使用其内部的bootloader的。

boot配置

前面说的透过swd debug,称为在系统编程的方式,而使用bootloader加载和启动程序,应当是属于在应用编程的范畴。对于boot,不同的应用场景可能有不同的需求,因此stm有3中可以配置的boot方式。

如何配置

首先有boot pin,看外部电路如何设计了,将这个boot pin连接到高电平,或者接地,那IC刚起来时就会判断这个boot pin电平情况,从而切换到对应boot模式。另外在option byte中也有个nBOOT1,配置对应的boot方式即可。

boot分类

3中,从用户Flash boot,这个应当最常见,编译链接完,下载,然后reset,就跑自己的Flash代码了,就是这种。另外是System memory boot,这就是上面说的用IC内部bootloader来boot。SRAM boot。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-29 08:55:53

[CortexM0--stm32f0308]系统框架的相关文章

java大数据 高并发 系统框架 springmvc mybatis Bootstrap html5 shiro maven SSM SSH

获取[下载地址]   QQ: 313596790   [免费支持更新]A 代码生成器(开发利器);全部是源码     增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页面 都生成   就不用写搬砖的代码了,生成的放到项目里,可以直接运行B 阿里巴巴数据库连接池druid;  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩展性.稳定性和性能方面都有明显的优势C 安全权限框架shiro ;  Shiro 是一个用

【数据清洗】2012-数据清洗及其一般性系统框架

(1)准备.包括需求分析.信息环境分析.任务定义.方法定义.基本配置,以及基于以上工作获得数据清洗方案等.通过需求分析明确信息系统的数据清洗需求,通过信息环境分析明确数据所处的信息环境特点,任务定义要明确具体的数据清洗任务目标,方法定义确定合适的数据清洗方法,基本配置完成数据接口等的配置,要形成完整的数据清洗方案,并整理归档.      (2)检测.包括检测必需的数据预处理,并进行相似重复记录.不完整记录.逻辑错误.异常数据等数据质量问题的检测,对检测结果进行统计,以获得全面的数据质量信息,并将

Java日志系统框架的设计与实现

推荐一篇好的文章介绍java日志系统框架的设计的文章:http://soft.chinabyte.com/database/438/11321938.shtml 文章内容总结: 日志系统对跟踪调试.程序状态记录.数据恢复等功能有重要作用 日志系统一般作为服务进程或者系统调用存在,我们一般程序中使用系统调用 常用日志系统包括log4j的简单介绍 日志系统的系统架构 日志系统的信息分级 日志输出的设计 下面是全文的引用: 在Java领域,存在大量的日志组件,open-open收录了21个日志组件.日

[编写高质量iOS代码的52个有效方法](十一)系统框架

[编写高质量iOS代码的52个有效方法](十一)系统框架 参考书籍:<Effective Objective-C 2.0> [英] Matt Galloway 先睹为快 47.熟悉系统框架 48.多用块枚举,少用for循环 49.对自定义其内存管理语义的容器使用无缝桥接 50.构建缓存时选用NSCache而非NSDictionary 51.精简initialize与load的实现代码 52.别忘了NSTimer会保留其目标对象 目录 编写高质量iOS代码的52个有效方法十一系统框架 先睹为快

系统框架 springmvc mybatis Bootstrap html5 shiro maven SS

获取[下载地址]   QQ: 313596790   [免费支持更新]支持三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体[新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统]A 代码生成器(开发利器);      增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页面 都生成   就不用写搬砖的代码了,生成的放到项目里,可以直接运行B 阿里巴巴数据库连接池druid

java大数据 高并发 系统框架 springmvc mybatis Bootstrap html5 shiro maven SSM

获取[下载地址]   [免费支持更新]三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体[新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统] A集成代码生成器 [正反双向(单表.主表.明细表.树形表,开发利器)+快速构建表单;freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,service等完整模块B 集成阿里巴巴数据库连接池druid;  数据库连接池  阿里巴巴的 druid.Drui

java大数据 高并发 系统框架 springmvc mybatis Bootstrap html5

获取[下载地址]   QQ: 313596790   [免费支持更新]三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体[新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统]A 集成代码生成器(开发利器);                                         技术:313596790   增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页面

Android动画学习(一)——Android动画系统框架简介

这几天在找工作,面试的时候被问到了Android动画,之前完全没接触过这部分,直接给懵了,当然其它不会的还有很多.回来之后就开始查Android动画方面的资料,边查边学,把自己不会的东西全部记录下来,同时也把废弃了半年的博客重新维护起来.希望自己以后看问题能更深入一点,努力成为一个大牛! 尽量拒绝三手技术!尽量拒绝三手技术!尽量拒绝三手技术!重要的事情说三遍~所以我不百度了~ 在Android 3.0之前,Android提供了两类动画.一类是Tween Animation,即补间动画,它提供了淡

【译】什么是游戏开发实体系统框架(终)

今天朋友提醒我说,我要翻译的这篇文章已经被翻译了,我一看,还真是,翻译的还不错.本着不重复造轮子的原则,本系列就不再往下翻译了(虽然只翻译了一点点...),大家如有兴趣请参看下面的译文: http://blog.csdn.net/aisajiajiao/article/details/19011259 但是翻译工作还是要继续的,下篇将进行一个flappy bird的教程翻译,敬请期待... [译]什么是游戏开发实体系统框架(终)