zoukankan      html  css  js  c++  java
  • Silicon labs Gecko bootloader 的存储分配【三】

    在前面两篇文章大致介绍了Gecko bootloader(下称bootloader)的基础知识和重要功能,这次来介绍bootloader对于芯片的内存是如何分配的。 内存分配对于bootloader的工作原理理解,以及修改或者定制bootloader有至关重要的意义。

    作为一个系列的文章,如果有不清楚的,可以先阅读

    1.   Gecko bootloader的介绍(Silicon Labs) 【一】

    2.   Silicon Labs Gecko bootloader的主要特性 【二】

    Bootloader自身对FLASH的占用是有规律的,同时也管理着整个芯片上,以及外挂载的FLASH。首先来看Bootloader本身在芯片是如何存放的。

    第一阶段引导代码,它总是占用大约2kB的空间,在Series 1系列的芯片上,这会占用一个页面(flash page)。

    第二阶段主引导代码会复杂一些,不同的功能需求导致了占用空间会有多有少。在一个典型的应用中,通过不会超过14kB。所以bootloader占用的全部空间应该是在16kB以内。

    Silicon Labs也建议保留给bootloader的空间是16kB。在不同的芯片上,空间的分配又各有不同。

    EFR32Xg1 (含 Mighty Gecko, Flex Gecko, Blue Gecko)

    Bootloader位于FLASH程序区

    第一阶段引导地址 0x0

    第二阶段引导地址 0x800

    应用程序首地址 0x4000

    EFR32XG12 ( 含Mighty Gecko12, Flex Gecko 12, Blue Gecko 12及其他后面推出的Series1产品)

    Bootloader位于专属区域(Information Block / Bootloader area)

    应用程序首地址0x0

    第一阶段引导地址 0X0FE10000

    第二阶段引导地址 0x0FE10800

    EFR32XG21 (含 Mighty Gecko, Blue Gecko)

    Bootloader位于FLASH程序区

    第二阶段引导地址 0x0

    应用程序首地址 0x4000

    关于Bootloader, 未完待续。。。

  • 相关阅读:
    python中的基础坑
    Django组件content-type使用方法详解
    数据库范式
    MySQL常见面试题索引、表设计
    python操作MySQL之pymysql模块
    MySQL备份与还原
    MySQL查询缓存
    MySQL索引及查询优化
    MySQL事务隔离之MVCC版本控制
    MySQL事务及实现、隔离级别及锁与优化
  • 原文地址:https://www.cnblogs.com/newbit/p/boot3.html
Copyright © 2011-2022 走看看