• STM32F10XXX 启动设置


    在STMF103XXX 里,可以通过Boot[1:0]引脚选择3种不同的启动模式:

          启动模式选择引脚      启动模式                 说明
      BOOT1   BOOT0
          X       0   主闪存存储器 主闪存存储器被选择为启动区域,这是正常的工作模式。
          0       1   系统存储器 系统存储器被选择为启动区域,这种模式启动的程序功能由厂家设置。
          1       1   内置SRAM 内置SRAM被选择为启动区域,这种模式可以用于调试

      在系统复位后,SYSCLK的第4个上升沿,Boot引脚的值将被所存。用户可以通过设置Boot1和Boot0引脚的电平来选择复位后的启动模式。

          在从待机模式推出时,Boot引脚的值将被重新所存。因此,在待机模式下Boot引脚应保持为需要的启动配置。在启动延迟后,Cpu从地址0x0000 0000获取堆栈的地址,并从启动存储器的0x0000 0004指示的地址开始执行代码。

      根据选定的启动模式,主闪存存储器、系统存储器或SRAM可以按照以下方式访问:

      (1)从主闪存存储器启动:主闪存存储器被映射到启动空间(0x0000 0000),但仍然能够在它原有的地址(0x0800 0000)访问它,即主闪存存储器的内容可以在两个地址区域访问(0x0000 0000 或0x0800 0000)。

      (2)从系统存储器启动:系统存储器被映射到启动空间(0x0000 0000),但仍然能够在它原有的地址(互联型产品原有地址为0x1FFF B000,其它产品原有地址为0x1FFF F000)访问它。

      (3)从内置SRAM启动:只能在0x2000 0000开始的地址区访问SRAM,多数情况下,SRAM只是在调试时使用,也可以做其他一些用途。如做故障的局部诊断,写一段小程序加载到SRAM中诊断板上的其他电路,或者用此方法读/写板上的flash或EEPROM等。还可以通过这种方法解除内部flash的读/写保护,当让解除读/写保护的同时,flash的内容也被自动清除,以防止恶意的软件复制。

      ps:当从内置SRAM启动,在应用程序的初始化代码中,必须使用NVIC的异常表和偏移寄存器,重新映射向量表到SRAM中。

      嵌入式系统的启动还需要一段启动代码(bootloader),类似于启动Pc时的BIOS,一般用于完成微控制器的初始化工作和自检。STM32的启动代码在startup_stm32f10x_xx.s(xx根据微控制器所带的大、中、小容量存储器分别为hd、md、ld)中,其中的程序功能主要包括初始化堆栈、定义程序启动地址、中断向量表和中断服务程序入口地址,以及系统复位启动时,从启动代码跳转到用户main函数的入口地址。

      

  • 相关阅读:
    LightOJ1031 Easy Game(区间DP)
    POJ1325 Machine Schedule(二分图最小点覆盖集)
    ZOJ1654 Place the Robots(二分图最大匹配)
    LightOJ1025 The Specials Menu(区间DP)
    POJ2288 Islands and Bridges(TSP:状压DP)
    LightOJ1021 Painful Bases(状压DP)
    LightOJ1013 Love Calculator(DP)
    POJ1780 Code(欧拉路径)
    POJ1201 Intervals(差分约束系统)
    ZOJ2770 Burn the Linked Camp(差分约束系统)
  • 原文地址:https://www.cnblogs.com/Waming-zhen/p/4583137.html
Copyright © 2020-2023  润新知