STM32

发布于 / STM32 / 0 条评论

STM32 de BOOT0和BOOT1

  • 这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序:
    • BOOT0=x,BOOT1=0:从用户闪存启动,这是正常的工作模式;
    • BOOT0=0,BOOT1=1:从系统存储器启动,这种模式启动的程序功能由厂家设置
    • BOOT0=1,BOOT1=1:从内置SRAM启动,这种模式可以用于调试
  • Main Flash memory
    • STM32内置的Flash,一般我们使用JTAG或者SWD模式下载程序时,就是下载到这个里面,重启后也直接从这启动程序;
  • System menory
    • 从系统存储器启动,这种模式启动的程序功能是由厂家设置的,一般这种启动方式用的比较少。系统存储器是芯片内部一块特定的区域,STM32在出厂时,由ST在这个区域内部预置了一段BootLoder,这是一块ROM,出厂后无法修改;
    • 一般来说,选用这种启动模式时,是为了从串口下载程序,在厂家提供的BootLoader中,提供了串口下载程序的固件,可以通过这个BootLoader将程序下载到系统的Flash中,步骤如下:
    • step1:将Boot0设置为1,Boot1设置为0,然后按下复位键,程序从系统存储器启动BootLoader;
    • step2:通过串口下载程序;
    • step3:程序下载完成后,将BOOT0设置为0,手动复位,程序从Flash中启动;
  • Embedded memory
    • 内置SRAM,没有程序存储的能力,这个模式一般用于程序调试;假如我只修改了代码中一个小小的地方,然后就需要重新擦除整个Flash,比较费时,可以考虑从整个模式启动代码,用于快速的程序调试,等程序调试完成后,再将程序下载到Flash中;
    • 一般不使用这种方式启动,因为SRAM掉电后数据就会丢失,多数情况下SRAM只是在调试时使用;
    • 可以用这种方式进行故障诊断,写一小段程序加载到SRAM中,诊断板上的其他电路;
    • 用此方法读写板上的Flash或EEPROM,通过这种方法解除内部Flash的读写保护,解除读写保护的同时Flash的内容也被自动清除,以防止恶意的软件拷贝。
转载原创文章请注明,转载自: seadaughter » STM32
Not Comment Found