Files
cosyos/Demo-Build/8051
2026-07-31 13:44:53 +00:00
..
2026-07-30 17:04:14 +00:00

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
经 CosyOS-III Cube 升级安装之后的系统构建

1、系统配置
   CosyOS-配置 / syscfg.h -> 系统配置>>标准头文件,应首先被正确定义。
   而后,在 C51、A51 标签页中,可能需要添加标准头文件的包含路径。

2、MCU配置
   CosyOS-配置 / mcucfg_8051.h -> 系统时钟频率,需要正确定义。

3、main函数(参照例程 demo_main.c
   初始化 PendSV中断(必须)
   配置 DEBUG(可选)
   启动 CosyOS(必须)

4、系统中断(参照例程 demo_int.c)
   屏蔽 定时器0中断原函数(必须)
   屏蔽 PendSV中断原函数(必须)

5、DEBUG(可选,参照例程 demo_debug.c)

不出意外的话,您的项目现在已经可以正常编译了。

但在未来,仍需重点关注如下内容:

1、系统配置
   CosyOS-配置 / syscfg.h [Keil支持图形]

2、MCU配置
   CosyOS-配置 / mcucfg_8051.h [Keil支持图形]

3、启动文件配置
   CosyOS-移植 / startup_8051.s [Keil支持图形]
   启动文件关乎硬件栈配置、内存零安装等重要功能,但往往却被用户忽略。

4、移植文件配置
   CosyOS-移植 / port_8051s.s
   其中的用户定义部分,与PendSV中断配置、用户自定义任务切换现场保护
   等功能息息相关,在未来可能需要适当调整。

5、编译器配置
   Cube 已经为您初步优化了编译器配置,并配置为 NOOVERLAY方案。
   如果您要自行调整编译器配置,应注意以下事项:
   (1)内存模型,必须选择Large模型
   (2)优化级别,可选级别:4~8级,推荐级别:8级
   CosyOS for 8051,有如下三种编译方案供您选择:
   (1)NOOVERLAY
   2OVERLAY-虚拟中断
   3OVERLAY-手动修改调用树
   其中 NOOVERLAY方案,不仅具有良好的易用性,其可靠性也是最高的,
   优先推荐采用。
   当内存资源紧张时再考虑 OVERLAY方案,以节约内存。建议只有精通
   C51的高级用户考虑OVERLAY方案,以免对系统的可靠性造成不利影响,
   因为C51对函数指针的调用树及覆盖分析有可能是错误的。
   CosyOS内核中,通过函数指针间接调用并且调用树是错误的具体包括:
   ----------------------------------------------------------------
    函数类别     | 函数名称                          | 真实调用处
   --------------+-----------------------------------+-------------
    定时中断钩子 | u_timint_##tmid                   | SysTick中断
   --------------+-----------------------------------+-------------
    定时查询钩子 | u_timqry_##tmid                   | SysTick中断
   --------------+-----------------------------------+-------------
    定时查询事件 | u_timqryevent_##tmid              | SysTick中断
   --------------------------------------------------+-------------
    通过挂起服务调用(iPendSVC)间接调用的自定义函数 | PendSV 中断
   ----------------------------------------------------------------
   这些函数在覆盖地图中都是被 ?C_INITSEG 调用的,如果采用覆盖方案,
   覆盖地图中应逐一查看这些函数,对于使用了内存的应手动修正调用树或
   移除覆盖分析。

-------------------------------------------------------------------

其它注意事项

1、默认情况下,任务栈SIZE不允许大于255。只有在启用了XBPSTACK的任务切换
   现场保护时,任务栈SIZE才允许大于255,最大可为65535。
2、CosyOS for 8051,原生仅适配 Keil C51 编译器,如果您使用其它编译器,
   应注意以下事项:
   (1)CosyOS 内核中需要 __C51__ 关键字做条件编译,移植汇编文件中需要
        __A51__ 关键字做条件编译,如果编译器不支持该关键字可自行添加。
   (2)CosyOS 内核中会用到 #pragma NOAREGS 来实现相对寄存器访问,如果
        编译器不支持应设法等效替换。
   (3)已知某些编译器不支持 .s 汇编文件,可将移植文件中的 .s 文件更名为
        .A51,如 port_8051s.s 更名为 port_8051s.A51。
   (4)其它可能的、未知的兼容性问题。