mirror of
https://gitee.com/cosyos/cosyos.git
synced 2026-10-06 04:59:34 +08:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c0313f71da | ||
|
|
258bec6bf8 | ||
|
|
66cec6a025 | ||
|
|
33b4202701 | ||
|
|
6455cf2758 | ||
|
|
898ff7865a | ||
|
|
d020034a4a | ||
|
|
a1b589ea0b | ||
|
|
c66a2437e3 | ||
|
|
d4bf3aff8b | ||
|
|
700d31ba60 | ||
|
|
7f4db259e2 | ||
|
|
9a7d9635f8 | ||
|
|
eee22f820d | ||
|
|
e5a975d42f | ||
|
|
679f5c1fd3 | ||
|
|
e91b62f290 | ||
|
|
031cca4b9d | ||
|
|
4a20a39687 | ||
|
|
3bcf4ceff8 | ||
|
|
3ab308c537 | ||
|
|
a784b26eb8 | ||
|
|
17c056d7ed | ||
|
|
4f19057745 | ||
|
|
7e5b028a56 | ||
|
|
f9ba2aa251 | ||
|
|
af41e6c460 | ||
|
|
1873344e87 | ||
|
|
9e41666dbc | ||
|
|
f726a97216 | ||
|
|
782deba4ff | ||
|
|
04988b8126 | ||
|
|
4981b3aa53 | ||
|
|
0649b21b98 | ||
|
|
2108228f0c | ||
|
|
78c93148a0 | ||
|
|
2d4aed5206 | ||
|
|
460cb03c2d | ||
|
|
121c150837 | ||
|
|
8e20ad27ca | ||
|
|
9e780b7011 | ||
|
|
4d0645086f | ||
|
|
d60e86189e | ||
|
|
75966f0282 | ||
|
|
ad38d6cdb0 | ||
|
|
13cc63854e | ||
|
|
6cc3fbc506 | ||
|
|
a3470ca160 | ||
|
|
f29f3b81e8 | ||
|
|
e4f30c71b4 | ||
|
|
cbb27554d7 | ||
|
|
bddc5a3c02 | ||
|
|
62411867f9 | ||
|
|
84412b2749 | ||
|
|
21c9a66c9a | ||
|
|
5a1fd5b6ab | ||
|
|
9419f7ceb6 | ||
|
|
76d00daf09 | ||
|
|
e64a683ed8 | ||
|
|
7a2386c917 | ||
|
|
b37b372afa | ||
|
|
486a15e264 | ||
|
|
c69f954ad2 | ||
|
|
b229394449 | ||
|
|
773cf53197 | ||
|
|
b12c851987 | ||
|
|
f44becc3ba | ||
|
|
489acefded | ||
|
|
ad42e660f6 | ||
|
|
a6be37e8f5 | ||
|
|
3e20aa6df0 | ||
|
|
3f88af33c8 | ||
|
|
3203efe7fc | ||
|
|
c6b2756a2c | ||
|
|
434271557b | ||
|
|
0c7d825b38 | ||
|
|
a239af26ad | ||
|
|
fe705cb9f2 | ||
|
|
6d01c7df90 | ||
|
|
463c1ebc2a | ||
|
|
75a18c6cac | ||
|
|
e07ff2dea3 | ||
|
|
ad3002568f | ||
|
|
5c89aee75a | ||
|
|
b81cf4e3f0 | ||
|
|
2d7c8ba454 | ||
|
|
4bbc70c9cf | ||
|
|
e58417f047 | ||
|
|
b8d3b1b8d6 | ||
|
|
0f10aac948 | ||
|
|
875e5cc580 | ||
|
|
d810f396b0 | ||
|
|
8af4830367 | ||
|
|
60a1fb79ef | ||
|
|
7a7ed3caec | ||
|
|
854f64e298 | ||
|
|
7b56561db6 | ||
|
|
53665f9701 | ||
|
|
1205fbf73d | ||
|
|
3d2ef144dc | ||
|
|
804ac1e0f3 | ||
|
|
901f91b9f7 | ||
|
|
b3e2ceb90f | ||
|
|
bc77aa3bcb | ||
|
|
ed991d2103 | ||
|
|
02ca420419 |
Binary file not shown.
Binary file not shown.
@@ -333,3 +333,33 @@
|
||||
* 优化了 Arm 双栈指针的初始化,可靠性拉满。
|
||||
* 更新日期:2026.08.27
|
||||
|
||||
### V3.1.1
|
||||
* CosyOS-DEBUG 增加新功能,具体包括:<br>
|
||||
1、支持设置发送分包间隔时间。<br>
|
||||
2、正式开启命令行功能,并支持通过下发命令来动态操作任务。<br>
|
||||
3、推出 CosyOS3Shell 串口调试工具,内含任务管理器和命令行。<br>
|
||||
* CosyOS-III Cube 正式更名为 CosyOS3Cube。
|
||||
* 更新日期:2026.09.02
|
||||
|
||||
### V3.1.2
|
||||
* 注释信息中的“任务名称文本”更名为“任务名称标识”。
|
||||
* 取消了系统配置项:DEBUG发送分包间隔时间,改由系统定义为固定的恰当值。
|
||||
* CosyOS3Shell,版本升级为 v1.1.1,可实现任务管理器、命令行、用户 printf,<br>
|
||||
三者共用同一个串口并分屏显示,用户体验度拉满。这对于嵌入式开发来说具有里程碑意义,极具实用价值。
|
||||
* 更新日期:2026.09.08
|
||||
|
||||
### V3.1.3
|
||||
* 优化了 os_debug.c、串口接收解析中的一句代码。
|
||||
* CosyOS3Shell,版本升级为 v1.2.0。
|
||||
* 更新日期:2026.09.14
|
||||
|
||||
### V3.1.5
|
||||
* 优化了 51 的 demo_debug.c,DEBUG_MODE 为 0 时,允许串口接收。
|
||||
* CosyOS3Shell,版本升级为 v1.2.1,以解决 C51 printf 包尾 \r\n 变为 \r\r\n 时,显示异常的问题。
|
||||
* 更新日期:2026.09.16
|
||||
|
||||
### V3.1.6
|
||||
* CosyOS3Cube 版本更新.
|
||||
* CosyOS3Shell 版本更新至 v1.2.4.
|
||||
* 更新日期:2026.10.01
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
* @file demo_debug.c
|
||||
* @brief 例程-DEBUG for STC8H
|
||||
* @author 迟凯峰
|
||||
* @version V1.0.3
|
||||
* @date 2026.07.31
|
||||
* @version V1.1.0
|
||||
* @date 2026.09.16
|
||||
******************************************************************************/
|
||||
|
||||
#if 1 /* 编译开关 */ \
|
||||
@@ -20,7 +20,7 @@
|
||||
/*-------------------------------------------------------------*
|
||||
| DEBUG_MODE | 输出(UART SEND)| 输入(UART RECV)| 推荐等级 |
|
||||
|------------+------------------+------------------+----------|
|
||||
| 0 | printf(查询) | 无 | * |
|
||||
| 0 | printf(查询) | DMA串口接收中断 | * |
|
||||
|------------+------------------+------------------+----------|
|
||||
| 1 | 串口发送中断 | 串口接收中断 | *** |
|
||||
|------------+------------------+------------------+----------|
|
||||
@@ -28,7 +28,7 @@
|
||||
*-------------------------------------------------------------*/
|
||||
#define DEBUG_MODE 0
|
||||
|
||||
/* DEBUG RECV 缓存SIZE */// 当 DEBUG_MODE 非0时,需定义此项
|
||||
/* DEBUG RECV 缓存SIZE */
|
||||
#define DEBUG_RECV_BUFF 32
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -39,14 +39,6 @@
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#if (DEBUG_MODE == 0)
|
||||
#include <stdio.h>
|
||||
#else
|
||||
static char xdata u_debug_recv_buff[DEBUG_RECV_BUFF];
|
||||
static char xdata *u_debug_recv_p = u_debug_recv_buff;
|
||||
#if (DEBUG_MODE == 1)
|
||||
static char xdata *u_debug_send_p;
|
||||
#elif (DEBUG_MODE == 2)
|
||||
#ifdef DMA_UR1R_RXA
|
||||
#undef DMA_UR1R_RXA
|
||||
#endif
|
||||
@@ -55,18 +47,30 @@ static char xdata *u_debug_send_p;
|
||||
#endif
|
||||
#define DMA_UR1R_RXA (*(char xdata * volatile xdata *)0xfa3d)
|
||||
#define DMA_UR1T_TXA (*(char xdata * volatile xdata *)0xfa35)
|
||||
|
||||
#if (DEBUG_MODE == 0)
|
||||
#include <stdio.h>
|
||||
static char xdata DMA_UR1R_SBUF;
|
||||
#elif (DEBUG_MODE == 1)
|
||||
static char xdata *u_debug_send_p;
|
||||
#elif (DEBUG_MODE == 2)
|
||||
static unsigned char DMA_UR1T_cishu;
|
||||
static unsigned char DMA_UR1T_bytes;
|
||||
static char xdata DMA_UR1R_SBUF;
|
||||
#endif
|
||||
#endif
|
||||
static char xdata u_debug_recv_buff[DEBUG_RECV_BUFF];
|
||||
static char xdata *u_debug_recv_p = u_debug_recv_buff;
|
||||
|
||||
void Debug_Config(void)
|
||||
{
|
||||
#if (DEBUG_MODE == 0)
|
||||
REN = 0;
|
||||
REN = 1;
|
||||
ES = 0;
|
||||
TI = 1;
|
||||
DMA_UR1R_RXA = &DMA_UR1R_SBUF;
|
||||
DMA_UR1R_AMT = 0;
|
||||
DMA_UR1R_CFG |= 0x80 | 0x04 | 0x01;
|
||||
DMA_UR1R_CR |= 0x80 | 0x20 | 0x01;
|
||||
|
||||
#elif (DEBUG_MODE == 1)
|
||||
if(~PSH && ~PS){
|
||||
@@ -151,7 +155,9 @@ void DMA_UR1T_Isr(void) interrupt 50
|
||||
xDebugSend_Complete();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#if (DEBUG_MODE != 1)
|
||||
void DMA_UR1R_Isr(void) interrupt 51
|
||||
{
|
||||
DMA_UR1R_STA &=~0x01;
|
||||
@@ -169,6 +175,6 @@ void DMA_UR1R_Isr(void) interrupt 51
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
* @file demo_task.c
|
||||
* @brief 例程-任务
|
||||
* @author 迟凯峰
|
||||
* @version V1.1.0
|
||||
* @date 2026.07.22
|
||||
* @version V1.1.1
|
||||
* @date 2026.09.14
|
||||
******************************************************************************/
|
||||
|
||||
#if 0 /* 编译开关 */
|
||||
@@ -15,11 +15,11 @@
|
||||
/*-----------------------*
|
||||
| 创建任务 - 参数说明表 |
|
||||
|-----------------------+-----------------------------------------------------------*
|
||||
| 任务名称 | 任务优先级 | 任务栈大小 | 安全运行时 | 任务名称文本(兼容模式) |
|
||||
| 任务名称 | 任务优先级 | 任务栈大小 | 安全运行时 | 任务名称标识(兼容模式) |
|
||||
|----------+------------+------------+------------+---------------------------------|
|
||||
| task_1 | 1级 | 512字节 | 0为无限长 | 0为自动引用任务名称,即"task_1" |
|
||||
|----------+------------+------------+------------+---------------------------------|
|
||||
| task_2 | 2级 | 512字节 | 9滴答周期 | "task_led"为任务名称文本 |
|
||||
| task_2 | 2级 | 512字节 | 9滴答周期 | "task_led"为任务名称标识 |
|
||||
*-----------------------------------------------------------------------------------*/
|
||||
|
||||
/* 静态创建 task_1 */
|
||||
|
||||
@@ -186,7 +186,7 @@
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
Copyright [2026] [CosyOS]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
||||
+13
-13
@@ -3,8 +3,8 @@
|
||||
* @file syscfg.h
|
||||
* @brief OS Config File
|
||||
* @author 迟凯峰
|
||||
* @version v3.0.9
|
||||
* @date 2026.08.18
|
||||
* @version v3.1.2
|
||||
* @date 2026.09.06
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __SYSCFG_H
|
||||
@@ -100,18 +100,18 @@
|
||||
|
||||
#if (SYSCFG_DEBUGGING == 1)
|
||||
|
||||
// <o> 任务名称文本模式
|
||||
// <o> 任务名称标识
|
||||
// <0=> 遗产模式 <1=> 标准模式 <2=> 兼容模式
|
||||
// <i> 遗产模式:创建任务-尾参数,无功能定义、可随意输入,任务名称文本自动引用任务名称。
|
||||
// <i> 标准模式:创建任务-尾参数,为任务名称文本。
|
||||
// <i> 兼容模式:创建任务-尾参数,如果输入字符串,则为任务名称文本;如果输入0,任务名称文本自动引用任务名称。
|
||||
// <i> 遗产模式:创建任务-尾参数,无功能定义、可随意输入,任务名称标识自动引用任务名称。
|
||||
// <i> 标准模式:创建任务-尾参数,为任务名称标识。
|
||||
// <i> 兼容模式:创建任务-尾参数,如果输入字符串,则为任务名称标识;如果输入0,任务名称标识自动引用任务名称。
|
||||
// <i> 兼容模式,某些编译器(Keil C51、C251),不能正常支持。
|
||||
#define __SYSCFG_CREATETASKCUSTOM 2
|
||||
|
||||
// <o> 任务名称最大长度
|
||||
// <i> 取值范围:<8-255>
|
||||
// <i> 任务名称应尽量简短,不可过长,因为它会对总的flash和内存占用有着一定影响。
|
||||
#define SYSCFG_TASKNAMELEN_MAX 10
|
||||
#define SYSCFG_TASKNAMELEN_MAX 16
|
||||
|
||||
// <o> 在线用户任务总数
|
||||
// <i> 当相同优先级任务调度算法未选择无调度时,应定义此项。
|
||||
@@ -165,21 +165,21 @@
|
||||
// <i> 任务管理器默认更新速度
|
||||
#define SYSCFG_TASKMGR_UPSPEED 1000
|
||||
|
||||
// <q> DEBUG钩子是否传参数据包长度给用户?
|
||||
// <q> DEBUG钩子是否传参数据包长度
|
||||
// <i> DEBUG发送的数据均为字符串,且带有字符串尾'\0',如果用户需要获取数据包长度,可开启该选项。
|
||||
#define SYSCFG_DEBUG_SENDLEN 1
|
||||
|
||||
// <o> DEBUG输出语言
|
||||
// <1=> 中文 <0=> English
|
||||
// <0=> English <1=> 中文
|
||||
// <i> DEBUG输出语言
|
||||
#define SYSCFG_DEBUG_LANGUAGE 1
|
||||
|
||||
// <o> DEBUG输出编码
|
||||
// <1=> GB2312 <0=> UTF-8
|
||||
// <0=> UTF-8 <1=> GB2312
|
||||
// <i> DEBUG输出编码
|
||||
// <i> 如果任务名称文本使用中文,DEBUG输出编码可选 GB2312、UTF-8。
|
||||
// <i> 实际操作中注意四个一致,任务名称便可正确显示中文、不会乱码:
|
||||
// <i> 任务名称文本定义所在文件编码、DEBUG输出编码、编译器编码设置、串口助手编码设置。
|
||||
// <i> 如果任务名称标识使用中文,DEBUG输出编码可选 UTF-8、GB2312。
|
||||
// <i> 实际操作中注意四个一致,任务名称便能正确显示中文、不会乱码:
|
||||
// <i> 任务名称标识定义所在文件编码、DEBUG输出编码、编译器编码设置、CosyOS3Shell/串口助手编码设置。
|
||||
#define SYSCFG_DEBUG_ENCODING 1
|
||||
|
||||
// </e>
|
||||
|
||||
@@ -2,13 +2,14 @@
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
[](https://gitee.com/cosyos/cosyos/stargazers)
|
||||
[](https://gitee.com/cosyos/cosyos/members)
|
||||
|
||||
* CosyOS-QQ交流群:303421780.
|
||||
|
||||
### 最新消息
|
||||
CosyOS3Shell 串口调试工具,闪亮发布!可实现任务管理器、命令行、printf,三者共用同一个串口并分屏显示。<br>
|
||||
CosyOS-III V3.0.8 版本发布,全面支持青稞 V2/V3/V4 系列微处理器,并全面支持全程开启硬件压栈。<br>
|
||||
CosyOS-III V3.0.1 版本发布,针对 RISC-V32,推出了自研先进技术,可实现 **CH32V 全程开启硬件压栈** 。<br>
|
||||
该技术为纯软件实现,不依赖特定硬件(0x804->bit5),V103、203 等皆可完美支持。
|
||||
@@ -16,7 +17,7 @@ CosyOS-III V3.0.1 版本发布,针对 RISC-V32,推出了自研先进技术
|
||||
### 移植流程
|
||||
**Cube安装方式:** <br>
|
||||
**1、裸机工程** 先准备好项目的裸机工程。<br>
|
||||
**2、升级安装** 运行 CosyOS-III Cube.exe,把 裸机工程 升级为 CosyOS工程。<br>
|
||||
**2、升级安装** 运行 CosyOS3Cube.exe,把 裸机工程 升级为 CosyOS工程。<br>
|
||||
**3、系统构建** 打开工程,参照 CosyOS-例程(系统构建)> readme.txt 中的说明,完成系统构建。<br>
|
||||
|
||||
**手动移植方式:** <br>
|
||||
@@ -147,11 +148,11 @@ CosyOS 现支持 keil C51、C251、MDK-Arm(AC5、AC6),GCC-Arm,IAR-EWARM
|
||||
| **Hook** | **钩子文件** <br>CosyOS 已经为用户创建好了六个系统钩子函数,<br>分别位于各自的同名文件中,用户直接写代码即可。 |
|
||||
| **Port** | **移植文件** <br>syscfg.h:系统配置文件 <br>其它文件夹:各MCU配置和移植文件 |
|
||||
| **Demo-Build** | **例程文件** <br>例程文件 for 系统构建 |
|
||||
| **Setup** | **安装程序** <br>**CosyOS-III Cube** 升级安装程序 |
|
||||
| **Demo-Service** | **例程文件** <br>例程文件 for 服务应用 <br> _不会通过安装程序添加到工程中,用户需自行查阅。_ |
|
||||
| **Setup** | **安装程序** <br>**CosyOS3Cube** 升级安装程序,协助开发者快速完成系统部署,<br>轻松将裸机工程升级为CosyOS工程。|
|
||||
| **Shell** | **调试工具** <br>**CosyOS3Shell** 串口调试工具,可实现任务管理器、命令行、<br>printf,三者共用同一个串口并分屏显示。|
|
||||
|
||||
### 文档中心
|
||||
#### [API用户参考手册](https://gitee.com/cosyos/cosyos/blob/master/CosyOS-III%20API%E7%94%A8%E6%88%B7%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C%20v3.0.0.chm)
|
||||
|
||||
**[CosyOS官网](https://www.cosyos.com/)** 为大家提供了丰富的说明文档,包括 内核原理、开发指南、注意事项、疑难解答 等,可前往查阅。
|
||||
|
||||
|
||||
Binary file not shown.
+2
-2
@@ -4,7 +4,7 @@ CosyOS-III 安装向导
|
||||
2、CosyOS-源代码根文件夹,支持任意名称和随意命名,
|
||||
但内部目录结构和文件名称等不可改变。
|
||||
3、CosyOS-源代码,可放置在工程文件所在分区的任意位置。
|
||||
4、CosyOS-III Cube.exe,必须在原目录(Setup)下运行,
|
||||
4、CosyOS3Cube.exe,必须在原目录(Setup)下运行,
|
||||
不可拷贝至其它位置运行。
|
||||
|
||||
如上述条件不能满足,请先退出安装,待重新调整好后再试!
|
||||
@@ -27,4 +27,4 @@ IAR EWARM:*.ewp
|
||||
|
||||
|
||||
CosyOS
|
||||
2026.03.15
|
||||
2026.09.02
|
||||
Binary file not shown.
@@ -0,0 +1,50 @@
|
||||
CosyOS3Shell 简介
|
||||
|
||||
CosyOS3Shell 是由CosyOS官方推出的一款串口调试工具,可实现任务管理器、命令行、printf,
|
||||
三者共用同一个串口并分屏显示,用户可使用该软件来呈现 printf、任务管理器,并进行命令行调试。
|
||||
|
||||
|
||||
CosyOS3Shell 使用说明
|
||||
|
||||
【功能说明】
|
||||
1.串口设置:选择串口、波特率、编码等。
|
||||
2.打开串口:打开串口时会自动发送命令,打开任务管理器。
|
||||
3.关闭串口:关闭串口时会自动发送命令,退出任务管理器。
|
||||
4.任务管理器:呈现接收到的任务管理器内容。
|
||||
5.命令行窗口:交互式的收发窗口,分为发送行(行首标识:>>>)与接收行(行首标识:<<<);
|
||||
当前发送行输入命令后回车发送,行首右键可弹出命令菜单,实现快速输入常用命令或重输上一次发送的内容。
|
||||
6.printf窗口:菜单栏 printf 按钮弹出,呈现用户的 printf 内容。
|
||||
7.字体//背景:各窗口标题栏中的字体//背景按钮,可设置字体//背景色,右键按钮恢复默认。
|
||||
|
||||
【快捷键】(命令行窗口)
|
||||
Enter —— 发送当前输入
|
||||
F3 —— 快速重输上一次发送的内容
|
||||
Ctrl+Z —— 撤销当前发送行输入的内容
|
||||
Ctrl+C —— 复制选中文本
|
||||
Ctrl+V —— 粘贴
|
||||
|
||||
|
||||
printf 注意事项
|
||||
|
||||
CosyOS3Shell 是以 "\r\n" 做为接收包尾标识的,并以 " "(两个空格)、"<>" 做为任务管理器的接收包头标识,
|
||||
"ACK:"(忽略大小写)做为命令行的接收包头标识。因此要求用户的 printf,包头不能使用 " "、"<>"、"ACK:",
|
||||
并以 "\r\n" 做为包尾,如此才能实现正常的分屏显示。
|
||||
|
||||
【错误示例】
|
||||
printf("task_1."); // 包尾非 "\r\n"
|
||||
printf(" u%\r\n", var); // 包头为 " "
|
||||
printf("ack:u%\r\n", var); // 包头为 "ACK:"
|
||||
printf("var:u%\r\n<>\r\n", var); // 第二包的包头为 "<>"
|
||||
|
||||
【正确示例】
|
||||
printf("task_1\r\n");
|
||||
printf("var:u%\r\n", var);
|
||||
printf("var:u%\r\n\r\n", var);
|
||||
printf("task_1\r\nvar:u%\r\n", var);
|
||||
|
||||
|
||||
其它事项
|
||||
|
||||
任务中打印,可调用 uPrintf 来替代标准库的 printf,以此来保证多任务打印时的线程安全。
|
||||
uPrintf 仍然会调用 printf,因此相关文件中应包含 <stdio.h>。
|
||||
|
||||
+3
-3
@@ -4,14 +4,14 @@
|
||||
* @brief 系统链接头文件
|
||||
* @details 用户的各个c文件中应包含此文件。
|
||||
* @author 迟凯峰
|
||||
* @version v3.1.0
|
||||
* @date 2026.08.27
|
||||
* @version v3.1.6
|
||||
* @date 2026.10.01
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __COSYOS_H
|
||||
#define __COSYOS_H
|
||||
|
||||
#define COSYOS3_VERSION "v3.1.0"
|
||||
#define COSYOS3_VERSION "v3.1.6"
|
||||
|
||||
#include "os_var.h"
|
||||
#include "os_api.h"
|
||||
|
||||
+142
-36
File diff suppressed because it is too large
Load Diff
+3
-3
@@ -3,8 +3,8 @@
|
||||
* @file os_handler.c
|
||||
* @brief tCosyTick_Handler and sPendSV_Handler
|
||||
* @author 迟凯峰
|
||||
* @version v3.0.4
|
||||
* @date 2026.08.07
|
||||
* @version v3.1.2
|
||||
* @date 2026.09.06
|
||||
******************************************************************************/
|
||||
|
||||
#include "os_var.h"
|
||||
@@ -148,7 +148,7 @@ __IAR_WEAK void tCosyTick_Handler(void) MCUCFG_SYSTICK_ATTRIBUTE
|
||||
}
|
||||
if(s_debug_sendsign){
|
||||
s_debug_sendsign = false;
|
||||
tTimQry_ms(OS_TMID_DEBUGGER, 10);
|
||||
tTimQry_tc(OS_TMID_DEBUGGER, 2);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
+17
-5
@@ -5,8 +5,8 @@
|
||||
* @details 基于 os_def.h、syscfg.h、mcucfg_x.h、port_x.h 等文件中的定义
|
||||
而再次定义,包括宏定义和类型定义。
|
||||
* @author 迟凯峰
|
||||
* @version v3.0.0
|
||||
* @date 2026.07.21
|
||||
* @version v3.1.3
|
||||
* @date 2026.09.15
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __OS_REDEF_H
|
||||
@@ -184,7 +184,8 @@
|
||||
|
||||
#define OS_TASKMGR_LEN_LINE \
|
||||
( \
|
||||
SYSCFG_TASKNAMELEN_MAX \
|
||||
2 \
|
||||
+ SYSCFG_TASKNAMELEN_MAX \
|
||||
+ OS_TASKMGR_LEN_PRI + OS_TASKMGR_LEN_STA \
|
||||
+ OS_TASKMGR_LEN_CPU + OS_TASKMGR_LEN_RAM \
|
||||
)
|
||||
@@ -199,7 +200,7 @@
|
||||
|
||||
#define OS_TASKMGRSENDBUFFSIZE \
|
||||
( \
|
||||
(OS_TASKMGR_LEN_LINE + 2) * (OS_TASKTOTAL + 7 + SYSCFG_RTC_SHOW) + 2 * 2 + 1 \
|
||||
(OS_TASKMGR_LEN_LINE + 2) * (OS_TASKTOTAL + 7 + SYSCFG_RTC_SHOW) + 2 * 4 + 1 \
|
||||
) /*!< size of Taskmgr发送缓存 */
|
||||
|
||||
#endif
|
||||
@@ -246,6 +247,17 @@ typedef union
|
||||
/*------------------------------------------------------------------------------
|
||||
* typedef struct */
|
||||
|
||||
/**
|
||||
\brief DEBUG-命令
|
||||
*/
|
||||
#if (SYSCFG_DEBUGGING == __ENABLED__)
|
||||
typedef struct
|
||||
{
|
||||
s_u8_t cmd;
|
||||
s_u8_t rand;
|
||||
char name[SYSCFG_TASKNAMELEN_MAX + 1];
|
||||
}s_command_ts;
|
||||
#endif
|
||||
/**
|
||||
\brief 运行时间
|
||||
*/
|
||||
@@ -340,7 +352,7 @@ typedef struct s_taskctrl_ts
|
||||
struct s_taskctrl_ts _OBJ_MEM_ * _STATIC_MEM_ *h2task; /*!< 任务二重句柄:指向任务句柄的指针 */
|
||||
s_voidvoid_tfp entry; /*!< 任务函数入口指针 */
|
||||
#if (SYSCFG_DEBUGGING == __ENABLED__)
|
||||
char const _CONST_MEM_ *name; /*!< 任务名称(字符串)*/
|
||||
char const _CONST_MEM_ *name; /*!< 任务名称标识(字符串)*/
|
||||
#endif
|
||||
#if (SYSCFG_SAFERUNTIME == __ENABLED__)
|
||||
s_srtime_t srt_maximum; /*!< 安全运行时设定值 */
|
||||
|
||||
+3
-3
@@ -3,8 +3,8 @@
|
||||
* @file os_starter.c
|
||||
* @brief 任务启动器(Starter)
|
||||
* @author 迟凯峰
|
||||
* @version v3.0.9
|
||||
* @date 2026.08.18
|
||||
* @version v3.1.2
|
||||
* @date 2026.09.06
|
||||
******************************************************************************/
|
||||
|
||||
#include "os_var.h"
|
||||
@@ -20,7 +20,7 @@
|
||||
\param[in] 任务优先级 SYSCFG_TASKPRIORITY - (SYSCFG_DEBUGGING ? 3 : 1)
|
||||
\param[in] 任务栈大小 SYSCFG_STACKSIZE_STARTER
|
||||
\param[in] 安全运行时 0
|
||||
\param[in] 任务名称文本<br>
|
||||
\param[in] 任务名称标识<br>
|
||||
遗产模式:"Starter"<br>
|
||||
标准/兼容模式:[中文:"任务启动器",英文:"Starter"]
|
||||
\return 无
|
||||
|
||||
+3
-3
@@ -3,8 +3,8 @@
|
||||
* @file os_sysidle.c
|
||||
* @brief 系统空闲任务(Sysidle)
|
||||
* @author 迟凯峰
|
||||
* @version v3.0.9
|
||||
* @date 2026.08.18
|
||||
* @version v3.1.2
|
||||
* @date 2026.09.06
|
||||
******************************************************************************/
|
||||
|
||||
#include "os_var.h"
|
||||
@@ -19,7 +19,7 @@
|
||||
\param[in] 任务优先级 0
|
||||
\param[in] 任务栈大小 SYSCFG_STACKSIZE_SYSIDLE
|
||||
\param[in] 安全运行时 0
|
||||
\param[in] 任务名称文本<br>
|
||||
\param[in] 任务名称标识<br>
|
||||
遗产模式:"Sysidle"<br>
|
||||
标准/兼容模式:[中文:"系统空闲",英文:"Sysidle"]
|
||||
\return 无
|
||||
|
||||
+94
-15
File diff suppressed because it is too large
Load Diff
+5
-4
@@ -3,8 +3,8 @@
|
||||
* @file os_var.c
|
||||
* @brief 系统全局变量定义
|
||||
* @author 迟凯峰
|
||||
* @version v3.0.0
|
||||
* @date 2026.07.21
|
||||
* @version v3.1.1
|
||||
* @date 2026.09.02
|
||||
******************************************************************************/
|
||||
|
||||
#include "os_redef.h"
|
||||
@@ -54,11 +54,12 @@ s_u8_t volatile _SYS_MEM_ s_taskmsg_sign/**/sZeroInstall; /*!<
|
||||
m_bit_t /*_SYS_MEM_*/ s_debug_sendsign/**/sZeroInstall;
|
||||
s_u8_t _SYS_MEM_ s_debug_sendtype/**/sZeroInstall;
|
||||
s_u8_t _SYS_MEM_ s_debug_recvlen/**/sZeroInstall;
|
||||
char * _XDATA_MEM_ s_debug_recvptr;/*
|
||||
char * _XDATA_MEM_ s_debug_recvptr;
|
||||
s_command_ts _XDATA_MEM_ s_debug_cmd/**/sZeroInstall_Group;
|
||||
char _XDATA_MEM_ s_cmdline_sendbuff[OS_CMDLINESENDBUFFSIZE];
|
||||
#if (SYSCFG_DEBUG_SENDLEN == __ENABLED__)
|
||||
s_u16_t _XDATA_MEM_ s_cmdline_sendlen;
|
||||
#endif*/
|
||||
#endif
|
||||
m_bit_t /*_SYS_MEM_*/ s_taskmgr_sign = SYSCFG_TASKMGR_AUTOSTART;
|
||||
char _XDATA_MEM_ s_taskmgr_sendbuff[OS_TASKMGRSENDBUFFSIZE];
|
||||
#if (SYSCFG_DEBUG_SENDLEN == __ENABLED__)
|
||||
|
||||
+5
-4
@@ -3,8 +3,8 @@
|
||||
* @file os_var.h
|
||||
* @brief 系统全局变量声明
|
||||
* @author 迟凯峰
|
||||
* @version v3.0.0
|
||||
* @date 2026.07.21
|
||||
* @version v3.1.1
|
||||
* @date 2026.09.02
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __OS_VAR_H
|
||||
@@ -56,11 +56,12 @@ extern s_u8_t volatile _SYS_MEM_ s_taskmsg_sign;
|
||||
extern m_bit_t /*_SYS_MEM_*/ s_debug_sendsign;
|
||||
extern s_u8_t _SYS_MEM_ s_debug_sendtype;
|
||||
extern s_u8_t _SYS_MEM_ s_debug_recvlen;
|
||||
extern char * _XDATA_MEM_ s_debug_recvptr;/*
|
||||
extern char * _XDATA_MEM_ s_debug_recvptr;
|
||||
extern s_command_ts _XDATA_MEM_ s_debug_cmd;
|
||||
extern char _XDATA_MEM_ s_cmdline_sendbuff[OS_CMDLINESENDBUFFSIZE];
|
||||
#if (SYSCFG_DEBUG_SENDLEN == __ENABLED__)
|
||||
extern s_u16_t _XDATA_MEM_ s_cmdline_sendlen;
|
||||
#endif*/
|
||||
#endif
|
||||
extern m_bit_t /*_SYS_MEM_*/ s_taskmgr_sign;
|
||||
extern char _XDATA_MEM_ s_taskmgr_sendbuff[OS_TASKMGRSENDBUFFSIZE];
|
||||
#if (SYSCFG_DEBUG_SENDLEN == __ENABLED__)
|
||||
|
||||
+26
-10
@@ -4,8 +4,8 @@
|
||||
* @brief 用户API
|
||||
* @details 用户API定义,含注释说明,所有内核服务的API说明均在此文件中,并支持doxygen。
|
||||
* @author 迟凯峰
|
||||
* @version v3.1.0
|
||||
* @date 2026.08.27
|
||||
* @version v3.1.3
|
||||
* @date 2026.09.15
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __UR_API_H
|
||||
@@ -217,7 +217,7 @@ void tCosyTick_Handler(void);
|
||||
\param[in] pri 任务优先级
|
||||
\param[in] tss 任务栈大小(单位为字节)
|
||||
\param[in] srt 安全运行时(单位为滴答周期,0为无限长)
|
||||
\param[in] res 任务名称文本
|
||||
\param[in] res 任务名称标识
|
||||
\param[in] add{...} 附加任务代码
|
||||
\return 无
|
||||
*/
|
||||
@@ -230,7 +230,7 @@ void tCosyTick_Handler(void);
|
||||
\param[in] pri 任务优先级
|
||||
\param[in] tss 任务栈大小(单位为字节)
|
||||
\param[in] srt 安全运行时(单位为滴答周期,0为无限长)
|
||||
\param[in] res 任务名称文本
|
||||
\param[in] res 任务名称标识
|
||||
\param[in] add{...} 附加任务代码
|
||||
\return 无
|
||||
*/
|
||||
@@ -243,7 +243,7 @@ void tCosyTick_Handler(void);
|
||||
\param[in] pri 任务优先级
|
||||
\param[in] tss 任务栈大小(单位为字节)
|
||||
\param[in] srt 安全运行时(单位为滴答周期,0为无限长)
|
||||
\param[in] res 任务名称文本
|
||||
\param[in] res 任务名称标识
|
||||
\param[in] ntm 私信参数数量(1~8 个)
|
||||
\param[in] add(...) 附加私信形参<br>
|
||||
形参类型:任意数据类型<br>
|
||||
@@ -261,7 +261,7 @@ void tCosyTick_Handler(void);
|
||||
\param[in] pri 任务优先级
|
||||
\param[in] tss 任务栈大小(单位为字节)
|
||||
\param[in] srt 安全运行时(单位为滴答周期,0为无限长)
|
||||
\param[in] res 任务名称文本
|
||||
\param[in] res 任务名称标识
|
||||
\param[in] ntm 私信参数数量(1~8 个)
|
||||
\param[in] add(...) 附加私信形参<br>
|
||||
形参类型:任意数据类型<br>
|
||||
@@ -281,7 +281,7 @@ void tCosyTick_Handler(void);
|
||||
\param[in] pri 任务优先级
|
||||
\param[in] tss 任务栈大小(单位为字节)
|
||||
\param[in] srt 安全运行时(单位为滴答周期,0为无限长)
|
||||
\param[in] res 任务名称文本
|
||||
\param[in] res 任务名称标识
|
||||
\param[in] add{...} 附加任务代码
|
||||
\return 无
|
||||
*/
|
||||
@@ -296,7 +296,7 @@ void tCosyTick_Handler(void);
|
||||
\param[in] pri 任务优先级
|
||||
\param[in] tss 任务栈大小(单位为字节)
|
||||
\param[in] srt 安全运行时(单位为滴答周期,0为无限长)
|
||||
\param[in] res 任务名称文本
|
||||
\param[in] res 任务名称标识
|
||||
\param[in] add{...} 附加任务代码
|
||||
\return 无
|
||||
*/
|
||||
@@ -312,7 +312,7 @@ void tCosyTick_Handler(void);
|
||||
\param[in] pri 任务优先级
|
||||
\param[in] tss 任务栈大小(单位为字节)
|
||||
\param[in] srt 安全运行时(单位为滴答周期,0为无限长)
|
||||
\param[in] res 任务名称文本
|
||||
\param[in] res 任务名称标识
|
||||
\param[in] add{...} 附加任务代码
|
||||
\return 无
|
||||
*/
|
||||
@@ -328,7 +328,7 @@ void tCosyTick_Handler(void);
|
||||
\param[in] pri 任务优先级
|
||||
\param[in] tss 任务栈大小(单位为字节)
|
||||
\param[in] srt 安全运行时(单位为滴答周期,0为无限长)
|
||||
\param[in] res 任务名称文本
|
||||
\param[in] res 任务名称标识
|
||||
\param[in] add{...} 附加任务代码
|
||||
\return 无
|
||||
*/
|
||||
@@ -2033,6 +2033,22 @@ do{ \
|
||||
s_debug_recvlen = len; \
|
||||
}while(false)
|
||||
|
||||
/**
|
||||
\brief 串口打印
|
||||
\details 用于替代标准库函数 printf 来实现任务中的串口打印,以确保线程安全。
|
||||
\param[in] ... 与 printf 完全等同的参数输入
|
||||
\return 无
|
||||
\note uPrintf 仍会调用标准库函数 printf。
|
||||
\note C 语言编译器至少需支持 C99 标准。
|
||||
*/
|
||||
#if !defined ( __C51__ ) && !defined ( __C251__ )
|
||||
#define uPrintf(...) \
|
||||
do{ \
|
||||
uScheduleLock(); \
|
||||
printf(__VA_ARGS__); \
|
||||
uScheduleUnlock(); \
|
||||
}while(false)
|
||||
#endif
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 9.6 KiB |
Reference in New Issue
Block a user