# CH32F103C8XWOS
**Repository Path**: xwos/CH32F103C8XWOS
## Basic Information
- **Project Name**: CH32F103C8XWOS
- **Description**: 此工程是在CH32F103C8上移植XWOS的示例工程。
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-07-24
- **Last Updated**: 2024-08-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 介绍
本项目包括一个示例工程。此工程是在CH32F103C8上移植XWOS的示例工程。
+ 硬件:[BluePill-Plus](https://gitee.com/WeAct-TC/BluePill-Plus)
+ IDE:Eclipse Embedded C/C++
+ MCU:CH32F103C8

## XWOS
玄武操作系统(XWOS®)开发于2015年,是一款运行在嵌入式微控制器上的通用实时操作系统,
主要面向可靠、实时、安全的应用领域,包括汽车、物联网、工控等。
+
+
+
+
# 下载源码
```shell
git clone --recursive https://gitee.com/xwos/CH32F103C8XWOS.git
```
## 源码结构
+ XWOS:XWOS
+ Board:电路板描述层
+ CH32FmwLib:GD官方的Firmware库
+ App:用户程序
+ Tools:工具
+ Doc:文档
+ DebugConfiguration:调试配置
+ CHANGELOG.md:变更日志
+ LICENSE.txt:开源协议
+ README.md:使用说明
+ .git:git仓库
+ .gitignore:git commit时忽略的文件
+ .gitmodules:git子仓库
+ .gitemplate:git commit的模板
+ .cproject:IDE工程文件
+ .project:IDE工程文件
+ .settings:IDE工程文件
# 开发环境搭建指南
## 安装编译环境
`xwtc` 是XWOS编译的工具集合,可以从百度网盘下载,按照内部 **说明.md** 安装就可。
+
+ 提取码:xwos
若用户使用 **Ubuntu** 作为开发环境,需要额外安装一些工具:
```shell
sudo dpkg-reconfigure dash # 选择“否”
sudo apt install build-essential
sudo apt-add-repository ppa:kelleyk/emacs
sudo apt-get update
sudo apt install emacs28 # 如果是无图形界面的服务器,改为emacs28-nox
```
## pyocd
+ 需要先安装python3
+ Ubuntu: `sudo apt install python3`
+ Windows:
+ 用途:为gdb提供调试服务
+ 安装: `pip3 install pyocd`
## 安装IDE
+ [Eclipse Embedded](https://www.eclipse.org/downloads/packages/)
+ 选择下载 **Eclipse IDE for Embedded C/C++ Developers**
## 导入工程
通过菜单 **File --> Open Projects from File System...** 可导入工程。
## 编译
有两种方法可以编译,两种方法结果产生一样:
+ 打开终端,并将当前路径切换到工程的 `Board` 目录,执行 `make` 命令。
+ 在IDE中点击 **编译** 按钮。
## 调试
+ 菜单: **Run --> Debug Configurations...**
+ **CH32F103C8XWOS-pyocd.launch** : **gdb** + **pyocd** + **DAPLink**
### 调试技巧
#### 重启调试
调试过程复位系统:
+ 在程序的入口处设置一个断点;
+ 按住复位按键;
+ 在右键菜单中选择 **Restart** ;
+ 释放复位按键;
+ 按一下F5。
# 客制化
## 工程改名
1. 可通过命令 `find . -type f -name "*CH32F103C8XWOS*"` 搜索所有文件名包含 `CH32F103C8XWOS` 的文件,将其改为 **新工程名** 。
2. 可通过命令 `find . -path "./.git" -prune -o -type f -exec grep -i -H "CH32F103C8XWOS" {} \;` 搜索所有内容包含 `CH32F103C8XWOS` 的文件,
然后依次打开,将其全部替换为 **新工程名** 。
## 连接到外部静态库
可在文件 `board/lib.mk` 中定义外部静态库:
+ `EINCDIRS` :外部静态库头文件列表
+ `EINCDIRS_gcc` :只对gcc编译器生效的外部静态库头文件列表
+ `EINCDIRS_llvm` :只对clang编译器生效的外部静态库头文件列表
+ `ELIBS` :外部静态库列表
+ `ELIBS_gcc` :只对gcc编译器生效的外部静态库列表
+ `ELIBS_llvm` :只对clang编译器生效的外部静态库列表