# FreeRTOS for MCS-251 **Repository Path**: myzhlzhang/freertos ## Basic Information - **Project Name**: FreeRTOS for MCS-251 - **Description**: 支持MCS-251(STC32G系列)的FreeRTOS - **Primary Language**: C - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 14 - **Created**: 2022-08-31 - **Last Updated**: 2022-08-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FreeRTOS for MCS-251 #### 介绍 支持MCS-251(STC32G系列)的FreeRTOS #### 使用说明 目前移植的FreeRTOS版本支持STC32G的larg-ROM和huge-ROM两个版本 切换larg-ROM的配置方法: 1. FreeRTOSConfig.h 里面配置configUSE_ROMHUGE 为 0 2. 点击Keil工程配置按钮【Options for Target】 3. 点击【Target】-> 【Code Rom Size】-> Larg模式 4. 点击【Target】-> 【C251】 -> 【Define】 输入 configSUPPORT_MCS251 5. 点击【Target】-> 【C251】 -> 【Level】 选择4级 6. 点击【Target】-> 【C251】 勾选 Link Code 7. 点击【Target】-> 【C251】 勾选 Generate reentrant 切换Huge-ROM的配置方式: 1. FreeRTOSConfig.h 里面配置configUSE_ROMHUGE 为 1 2. 点击Keil工程配置按钮【Options for Target】 3. 点击【Target】-> 【Code Rom Size】-> Huge模式 3. 点击【Target】-> 【Exeternal Memory】-> 【ROM】 起始地址:0xFE2000 大小:0x1E000 4. 点击【Target】-> 【C251】 -> 【Define】 输入 configSUPPORT_MCS251 5. 点击【Target】-> 【C251】 -> 【Level】 选择4级 6. 点击【Target】-> 【C251】 勾选 Link Code 7. 点击【Target】-> 【C251】 勾选 Generate reentrant port.c 为移植接口,注释用英文撰写,为了保持字体编码兼容。 为了方便阅读和学习,以C语言编写为主,但这不是最优方案,还可以使用汇编进行优化。 当前方案,在35M速度下: 任务切换速度耗时在10us左右,使用汇编优化,可以到5~8us左右。 默认系统时钟24M,可以根据需要,自己调整。 如果要启动软件仿真,需要进行如下操作: 点击Keil工程配置按钮【Options for Target】-> 【Target】-> 【C251】 -> 【Define】 输入 `__SOFT_DEBUG__` (注意不要删除configSUPPORT_MCS251) **开启软件仿真以后,不能在真实硬件上跑。** #### 参与贡献 1. **请加QQ群:1001220381** 2. Fork 本仓库 3. 新建 Feat_xxx 分支 4. 提交代码 5. 新建 Pull Request