
【20210203】V6.0
 为了提高应用程序的可移植性，实现操作系统驻留与不驻留时其函数使用方式不作变化
（1）更新gec.c文件中ComponentFun列表中所有RT-Thread函数接口为RT-Thread内核原函数接口
（2）删除06文件夹下OsApi文件,OS_start函数迁移到rtthread_start文件
    
     
     
     

【20201208】V4.0 jjl
1.O1及以上情况下优化，BIOS烧录后出现第一扇区消失问题
问题出现原因： O1优化会将循环加快，导致延时时间不够
解决办法如下：
将主函数中的
uint32_t mMainLoopCount;  //主循环次数变量
改为
vuint32_t mMainLoopCount;  //主循环次数变量
所有关于mMainLoopCount的语句将不会进行优化

【20201115】V3.8 lq
1.flash构件更新（User同理）。
2.ram起始地址后移512B。

【20201027】V3.7 lq cc
1.动态命令取消校验。
2.动态命令扇区扩充，牺牲构件函数代码区以保证总空间不变。
3.flash构件更新（User同理）。
4.动态命令基本形式添加传参。
5.函数代码区扩充以满足带RTOS的O0编译。
6.版本号MCU型号更新。






-【20200915】叶柯阳改
本工程与未驻留的BIOS工程相比
1.做了以下修改
（1）STM32L431RCTX_FLASH.ld文件
更改BIOS程序结束扇区号为“GEC_BIOS_SECTOR_END =21;”
更改动态命令开始扇区号为“GEC_DYNAMIC_START =22;”
更改动态命令结束扇区号为“GEC_DYNAMIC_END =23;”
更改函数列表开始扇区号为“GEC_COMPONENT_LST_START =24;”
更改函数列表结束扇区号为“GEC_COMPONENT_LST_END =25;”
更改函数代码开始扇区号为“GEC_COMPONENT_FUN_START =26;”
更改函数代码结束扇区号为“GEC_COMPONENT_FUN_END =30;”
（2）gec.h文件
更改BIOS程序结束扇区号为“GEC_BIOS_SECTOR_END =21;”
更改动态命令开始扇区号为“GEC_DYNAMIC_START =22;”
更改动态命令结束扇区号为“GEC_DYNAMIC_END =23;”
更改函数列表开始扇区号为“GEC_COMPONENT_LST_START =24;;”
更改函数列表结束扇区号为“GEC_COMPONENT_LST_END =25;”
更改函数代码开始扇区号为“GEC_COMPONENT_FUN_START =26;”
更改函数代码结束扇区号为“GEC_COMPONENT_FUN_END =30;”
（3）gec.c文件
添加RT-Thread相关映射函数到函数映射表.component_list中
（4）includes.h文件
添加头文件包含：
#include "rtthread.h"
#include "rthw.h"
2.添加了以下文件
（1）在04_GEC文件夹下添加RT-Thread相关映射函数具体代码构件文件OsApi.h和OsApi.c
（2）新增08_RT-Thread文件夹，包含RT-Thread内核相关文件
（3）新增09_RT-ThreadPrg文件夹，包含RT-Thread启动相关文件

==================================================================================
工程名称：BIOS_RT-Thread_Resident_STM32
版权所有：SUDA-ARM(sumcu.suda.edu.cn)
版本更新：2020-09-15
程序介绍：本程序为基于STM32L431RC微控制器的RT-Thread驻留BIOS端程序。
本程序实现了：（1）在BIOS中驻留RT-Thread操作系统。
              （2）实现驻留RT-Thread的启动、线程创建以及线程启动的函数。
          
==================================================================================

2. 软件环境
(1)AHL-GEC-IDE 4.11
3. 硬件环境
核心板：金葫芦系列STM32L432RC核心板  
UART2接线： microUSB串口线

---版本历史---

【20200908】 V3.6  includes.h中gRst_Count等变量调整到前面，避免与User区
             全局变量交叠
【20200830】 V3.5  规范程序，规范对于User模板，适应RTOS
【20200829】 V3.4  复位后重置动态命令
【20200812】修改.s文件，缺省中断，直接返回
【20200630】（1）获取对应芯片的官方工程样例。
            （2）参照本BIOS标准工程，整理工程文件夹结构。
                 01_Doc：存放makefile文件和其他说明文档
                 02_CPU：存放内核头文件。
                         复制本工程中的cpu.h，根据可移植性标识
                         对【变动】部分加以改动，使之适应目标芯片。
                 03_MCU：存放链接文件、启动文件和基本驱动（gpio、uart、flash）。
                         复制本工程中的mcu.h，根据可移植性标识对【变动】部分加以改动，
                         使之适应目标芯片。
                         链接文件的修改：复制本工程链接文件的第（1）部分并加以改动，
                         使之适应目标芯片。Flash字段中各分段的赋值方式直接拷贝本工
                         程链接文件的第（2）部分。Section字段将本工程的第（3）部分
                         中头部的【固定】部分复制并添加至头部。
                         参照标准工程链接文件将存储空间分为对应的分段。
                         其中BIOS分段的大小在编译后根据程序大小，取最小的值。
                         动态命令分段、构建函数列表分段均取4KB大小左右，视存储空间大小，
                         构建函数代码分段可取10KB及以上。
                         在对应的SECTIONS断中同样对各个分段给出对应的定义。
                 04_GEC、05_UserBoard、06_SoftComponent、07_NosPrg直接拷贝。
                         对gec.h和user.h中【变动】部分加以改动，使之适应目标芯片
【20200526】V3.0 （1）MCU_TYPE改为3.0；（2）删除mcu.h中无用定义；
                 （3）修改类型转换构件名及内部函数名

---移植规则---【20200806】
不同芯片BIOS及User框架基本规则
02_CPU 该文件夹除cpu.h之外，其他文件BIOS工程与User工程同
       cpu.h 变动（1）～（2），根据MCU型号变动
03_MCU mcu.h 变动（1）～（3）,根据MCU型号变动，且BIOS工程与User工程同
             在该文件中修改MCU型号及BIOS版本号
       .ld文件：根据MCU型号变动,且BIOS工程与User工程不同
       .s文件：改动类似BSS处，且BIOS工程与User工程不同
04_GEC 各芯片BIOS工程一致，
       各芯片User工程一致，但同芯片BIOS与User工程的04_GEC
       内容不同
05_UserBoard BIOS中除去User.h根据MCU型号变动，其他文件相同
06、07文件夹：各芯片BIOS相同，同功能的User相同



































