Toc
  1. 上电运行Bootloader
  2. 关于QSPI内存映射后的情况
  3. App的运行
  4. 上一篇—–>>H7PI-启动顺序
  5. 下一篇—–>>H7PI-定义自己的MDK-Keil下载算法FLM
Toc
0 results found
Pinno
H7PI-启动顺序
2020/05/31 H7PI H7PI

上电运行Bootloader

  • H7PI可以使用USB供电,在上电后,程序从0x08000000(内部flash)开始启动Bootloader。
  • Bootloader将进行Micro SD卡和Spi Flash的检查,如果可以挂在文件系统并检查到update文件夹中的fw.json,如果检查到文件并无误,将开始加载bin文件数据。
  • 如果没有检查到更新固件,将进行QSPI Flash的映射,然后跳转到0x90000000,运行App

关于QSPI内存映射后的情况

  • STM32H750内存映射后,内部QSPI控制器将处于长期读缓存的状态,因此不能进行写操作
  • QSPI内存映射后因为不能写操作,因为不可以连接PSRAM内存影射用于增加SRAM空间

App的运行

  • Bootloader运行内存映射并跳转后,将会在App的int main(void)处运行。
  • STM32的重新初始化完成后,将启动系统FreeRTOS,启动函数sys_OsStart();
  • sys_OsStart()位于文件sys.c, 他将启动一个空闲优先级的函数void StartDefaultTask(void const * argument),用来启动各种App。
  • StartDefaultTask首先初始化一些板载驱动,如:
    1. spi flash 和 psram
    2. 虚拟串口和U盘
    3. 文件系统
    4. 其他…
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      void StartDefaultTask(void const * argument)
      {
      sys_Init();
      //
      //APP start
      app_blink_start();

      while(1)
      {
      osDelay(10000);
      }

      }
  • 初始化完成后,启动App, App需要自定义一个App_xxxx.c到User/Apps中,并加入keil工程
  • App的定义方式可以参考app_blink.c

上一篇—–>>H7PI-启动顺序

下一篇—–>>H7PI-定义自己的MDK-Keil下载算法FLM

打赏
支付宝
微信
本文作者:Pinno
版权声明:本文首发于Pinno,转载请注明出处!