zoukankan      html  css  js  c++  java
  • 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函数的入口地址。

      

  • 相关阅读:
    使用Idea第一次创建一个Mavne工程时没有src目录
    (转)Idea使用教程以及各种问题解决
    'mvn' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
    对于synchronized的理解
    聚簇索引和非聚簇索引的区别
    Mysql的两种存储引擎以及区别
    [期末复习]《语义网与知识图谱》期末复习(二)
    [期末复习]《语义网与知识图谱》期末复习(一)
    [论文理解] Attentional Pooling for Action Recognition
    [论文理解] CapsuleNet
  • 原文地址:https://www.cnblogs.com/Waming-zhen/p/4583137.html
Copyright © 2011-2022 走看看