From 7e2171e5974b641a5ed9edca65bc8ee2767fc8a0 Mon Sep 17 00:00:00 2001 From: Yan_yan Date: Mon, 26 Oct 2020 11:21:52 +0800 Subject: [PATCH 1/9] update images/hero.png --- docs/.vuepress/public/images/hero.png | Bin 71485 -> 134006 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/.vuepress/public/images/hero.png b/docs/.vuepress/public/images/hero.png index 585e0982c582b3911a428ed1be76aeaeb850d55f..41224c452dbe37574574b2f3d79d8febaf1ae87e 100644 GIT binary patch literal 134006 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 From 6618d04ba5cc18f3ac29ffbdca2a8bf5de98e030 Mon Sep 17 00:00:00 2001 From: Yan_yan Date: Mon, 26 Oct 2020 11:39:09 +0800 Subject: [PATCH 2/9] remove mailbox and signal from kernel/threadcommunication.md --- docs/doc/kernel/threadcommunication.md | 203 +------------------------ 1 file changed, 2 insertions(+), 201 deletions(-) diff --git a/docs/doc/kernel/threadcommunication.md b/docs/doc/kernel/threadcommunication.md index dee0380..f077f2b 100644 --- a/docs/doc/kernel/threadcommunication.md +++ b/docs/doc/kernel/threadcommunication.md @@ -1,134 +1,5 @@ # 线程间通信 -XiUOS 的线程间通信使用邮箱、消息队列和信号三种方式。下面将分别介绍。 - -## 邮箱 -### 邮箱的工作机制 -XiUOS 的每一封邮件大小为4字节,也就是一个指针的大小。典型的邮箱应用是,线程或中断服务发送一封4字节长度的邮件到邮箱中,其他的线程可以从邮箱中接收邮件并进行处理。

-当一个线程向邮箱发送邮件时,如果邮箱没满,就将邮件复制到邮箱中。如果邮箱满了并且超时时间设置为0,则返回`-XS_EFULL`;如果超时时间不为0,先将该发送线程挂起,当邮箱中的邮件被取出空出空间后,等待挂起的发送线程被唤醒继续发送。但是如果到达超时时间仍没有空间,则返回`-XS_EFULL`。

-当一个线程从邮箱中接收邮件时,如果邮箱中有邮件,就读出该邮件的内容,并返回XS_EOK。如果邮箱中没有邮件并且超时设置为0,则返回`-XS_ETIMEOUT`;如果超时时间不为0,则将该线程挂在邮箱的等待线程中,有邮件时唤醒。但是如果到达超时时间仍没有邮件,返回`-XS_ETIMEOUT`。 -### 结构体定义和函数接口 - -#### 邮箱控制块 -```C -struct xs_Mailbox -{ - char name[XS_NAME_MAX]; - xs_uint8 style; - - xs_uint8 sign; - - xs_list_t link; - - xs_list_t pend_list; - - xs_ubase *msg_buf; - xs_uint16 size; - xs_uint16 index; - xs_uint16 in_offset; - xs_uint16 out_offset; - - xs_list_t pend_sender_list; -}; - -typedef struct xs_Mailbox *xs_mailbox_t; -``` -| 参数 | 描述 | -| ------ | ------ | -| name | 邮箱名称 | -| style | 线程等待的方式,可以取FIFO或PRIO | -| sign | 标记邮箱的创建方式,静态创建或动态创建 | -| link | 邮箱存放的列表 | -| pend_list | 线程等待队列 | -| msg_buf | 邮箱缓冲区开始地址 | -| size | 邮箱最大容纳的邮件数 | -| index | 邮箱中邮件的索引 | -| in_offset | 邮箱缓冲的进指针 | -| out_offset | 邮箱缓冲的出指针 | -| pend_sender_list | 发送线程的挂起等待队列 | - -#### 函数接口 - -```C -xs_err_t xs_InitMailbox(xs_mailbox_t mb, - const char* name, - void* msgpool, - xs_size_t size, - xs_uint8 flag); -``` -该函数用于创建一个静态邮箱对象,并将它加入邮箱管理列表中,创建成功返回`XS_OK`。
-| 参数 | 描述 | -| ------ | ------ | -| mb | 邮箱对象 | -| name | 邮箱名称 | -| msgpool | 缓冲区指针 | -| size | 邮箱容量 | -| flag | 线程等待的方式,可以取FIFO或PRIO | -
- -```C -xs_err_t xs_DetachMailbox(xs_mailbox_t mb); -``` -该函数用于脱离静态初始化的邮箱对象。该函数唤醒所有挂在该邮箱上的线程,然后将该邮箱从邮箱存放的列表中脱离,返回`XS_OK`。 -| 参数 | 描述 | -| ------ | ------ | -| mb | 邮箱对象 | - -```C -xs_mailbox_t xs_CreateMailbox(const char *name, xs_size_t size, xs_uint8 flag); -``` -该函数用于创建一个动态邮箱对象,并将它加入邮箱管理列表中。创建成功则返回`XS_OK`,创建失败返回`XS_NULL`。
-| 参数 | 描述 | -| ------ | ------ | -| name | 邮箱名称 | -| size | 邮箱容量 | -| flag | 线程等待的方式,可以取FIFO或PRIO | -
- -```C -xs_err_t xs_DeleteMailbox(xs_mailbox_t mb); -``` -该函数用于删除动态邮箱对象。先唤醒挂在邮箱对象上的所有线程,然后释放该邮箱的使用内存,最后删除邮箱对象。返回`XS_OK`。
-| 参数 | 描述 | -| ------ | ------ | -| mb | 邮箱对象 | -
- -```C -xs_err_t xs_MailboxSendWait(xs_mailbox_t mb, xs_ubase value, xs_int32 timeout); -``` -该函数用于发送邮件。如果邮箱满了并且过了timeout时间仍然没有空位,则返回`-XS_FULL`;否则将邮件存放入邮箱。
-| 参数 | 描述 | -| ------ | ------ | -| mb | 邮箱对象 | -| value | 邮件内容 | -| timeout | 超时时间 | -
- -```C -xs_err_t xs_MailboxSend(xs_mailbox_t mb, xs_ubase value); -``` -该函数用于发送邮件。与`xs_MailboxSendWait`唯一不同的地方是,该函数的`timeout == 0`。
-| 参数 | 描述 | -| ------ | ------ | -| mb | 邮箱对象 | -| value | 邮件内容 | -
- -```C -xs_err_t xs_MailboxRecv(xs_mailbox_t mb, xs_ubase *value, xs_int32 timeout); -``` -该函数用于接受邮件。 - -```C -xs_err_t xs_CmdControlMailbox(xs_mailbox_t mb, int cmd, void *arg); -``` -该函数用于获取或设置邮箱的其他属性。目前当`cmd == XS_LINKLIST_CMD_RESET`时,重新初始化邮箱。
-| 参数 | 描述 | -| ------ | ------ | -| mb | 邮箱对象 | -| cmd | 需要执行的命令 | -| arg | 命令的参数 | -
+XiUOS 的线程间通信使用管道和消息队列进行通信。下面将分别介绍。 ## 消息队列 ### 消息队列的工作机制 @@ -305,74 +176,4 @@ xs_err_t xs_CmdControlMessageQueue(xs_messagequeue_t mq, int cmd, void *arg) | arg | 命令的参数 |
- -## 信号 -### 信号的工作机制 -信号是在软件层次对中断机制的一种模拟。XiUOS中提供了信号用作异步通信的方式。

-收到信号的线程对各种信号有不同的处理方法,处理方法可以分为三类:

-第一种是类似中断的处理程序,对于需要处理的信号,线程可以指定处理函数,由该函数来处理。

-第二种方法是,忽略某个信号,对该信号不做任何处理。

-第三种方法是,对该信号的处理保留系统的默认值。

-具体来说,假设其他线程要向线程1通信,则在线程1中安装一个信号并解除阻塞,在安装的同时,规定对该信号的异常处理方式。其他线程给线程1发送信号,触发线程1对该信号的处理。 -### 函数接口 -```C -xs_sighandler_t xs_InstallSignal(int signo, xs_sighandler_t handler) -``` -该函数用于给当前线程安装一个新的信号。
- -| 参数 | 描述 | -| ------ | ------ | -| signo | 信号值 | -| handler | 设置对信号值的处理方式,可以是用户自定义的函数,`SIG_IGN`或`SIG_DFL` | -
- -handler的值为`SIG_IGN`时,忽略该信号;
-handler的值为`SIG_DFL`时,执行信号默认处理函数`_SignalDefaultHandler`;
-handler为函数句柄时,执行用户函数。
- -```C -void xs_MaskSignal(int signo) -``` -该函数用于屏蔽一个信号。
- -| 参数 | 描述 | -| ------ | ------ | -| signo | 信号值 | -
- -```C -void xs_UnmaskSignal(int signo) -``` -该函数用于解除对一个信号的屏蔽。
- -| 参数 | 描述 | -| ------ | ------ | -| signo | 信号值 | -
- -```C -int xs_WaitSignal(const xs_sigset_t *set, xs_siginfo_t *si, xs_int32 timeout) -``` -等待`set`信号到来。如果没等到这个信号,则将该线程挂起直到等到信号或超过超时时间。如果等到信号,则将`set`信号指针存入`si`。
- -| 参数 | 描述 | -| ------ | ------ | -| set | 指定等待的信号 | -| set | 指向存储等到信号信息的指针 | -| set | 超时时间 | -
- -```C -int xs_KThreadKill(TaskDescriptorPointer tid, int sig) -``` -该函数用于给线程`tid`发送信号`sig`。
- -| 参数 | 描述 | -| ------ | ------ | -| tid | 线程 | -| sig | 信号值 | - -```C -int xs_SysInitSignal(void) -``` -该函数用于在内存池中给信号分配一片内存区。 \ No newline at end of file +## 管道 \ No newline at end of file From d65675107fa3c9e646e9a46fa6a0b6f7bcbc286a Mon Sep 17 00:00:00 2001 From: Yan_yan Date: Mon, 26 Oct 2020 16:09:24 +0800 Subject: [PATCH 3/9] insert character into doc/intro.md --- docs/doc/intro.md | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/docs/doc/intro.md b/docs/doc/intro.md index b763480..3679bd5 100644 --- a/docs/doc/intro.md +++ b/docs/doc/intro.md @@ -30,12 +30,23 @@ XiUOS是一种工业物联网操作系统, 目标是通过工业物联网的部 答案是因为定位不同, 所以特色不同。XiUOS和现有大多数的物联网OS关注点并不相同。 -- 现有OS多关注单个物联网节点设备, XiUOS更关注由多节点设备组成的网络化集群; -- 现有OS多关注OS的基础功能, 如基本网络连接, 传感器接入等; XiUOS更关注基础功能之上的高级业务功能, 如将智能化下沉到节点端的智能化感知功能, 智能无线自助网络功能等; -- 现有OS力图做多领域通用OS, XiUOS更关注工业物联领域, 对复杂工业环境的"感联知控"支持更为专精; -- 现有OS对大规模部署和管理运维的支持有限, XiUOS强调对大规模部署和管理运维的支持; +- 现有OS多关注单个物联网节点设备, XiUOS更关注由多节点设备组成的网络化集群; +- 现有OS多关注OS的基础功能, 如基本网络连接, 传感器接入等; XiUOS更关注基础功能之上的高级业务功能, 如将智能化下沉到节点端的智能化感知功能, 智能无线自助网络功能等; +- 现有OS力图做多领域通用OS, XiUOS更关注工业物联领域, 对复杂工业环境的"感联知控"支持更为专精; +- 现有OS对大规模部署和管理运维的支持有限, XiUOS强调对大规模部署和管理运维的支持; - 现有OS的生态是封闭、碎片化和彼此割裂的, XiUOS更关注开放的生态, 强调对标准规范的支持, 依托现有的各开源生态体系, 而非再建另一个封闭的生态体系。 +特色体现在: +(1) 当前ARM在物联网领域占市场统治地位,但随着其被英伟达收购程序的推进存在的知识产权问题,价格垄断问题越来越突出。此外,ARM指令集还存在单一固定、不可定制等问题; +(2) 工业物联网对“联”的需求呈现多样化、层次化、主体化的特点,工业生产的物理环境也是极其复杂多变,但现有的硬件系统在物理介质上仅仅支持一到两种“联”;工业物联网应用本身对外设种类的要求也是丰富多变,但现有的硬件系统挂载多种外设的能力有限; +(3) 现有的物联网操作系统支持的硬件系统多以开发板评估板的形态出现,这种硬件系统由于承载强度、温湿度限制,外壳保护等原因很难直接应用于实际工业生产环境,仅适用于实验室评估的验证系统。 + +XiUOS是软硬件协同的物联网解决方案,其自研硬件的特征在于: +- XiUOS的硬件系统支持RISC-V和ARM两种体系结构,强调RISC-V和ARM在工业应用中的共生共赢,又注重突出各自特点; +- XiUOS的硬件系统在同一物理实体终端上同时支持4G、NB-IoT、WiFi、ZigBee、LoRA、BlueTooth、ethernet,在硬件上天然地使得现有应用能够方便、快捷地“联”结各种网络; +- XiUOS的硬件系统在同一物理实体终端上同时支持SPI、IIC、UART、CAN、485、USB、SDIO等,在硬件上天然满足工业物联网对外设多样性的需求; +- XiUOS的硬件系统能够直接部署于工业生产环境中。 + 简而言之, 现有物联网OS主要关注的是做优秀的单节点OS, XiUOS是在现有单节点OS的基础上构建面向多节点的网络化智能物联软件栈, 为工业物联网领域应用开发、系统部署、管理运维提供友好方案, 因此现有物联网OS和XiUOS一个在下层一个在上层, 功能是互补的而非竞争的, 如Linux之于Android。 From 71d5b34558db0e7cef58126a362df026bd2edb49 Mon Sep 17 00:00:00 2001 From: Yan_yan Date: Mon, 26 Oct 2020 17:02:24 +0800 Subject: [PATCH 4/9] modify the logic of character from intro.md --- docs/doc/intro.md | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/docs/doc/intro.md b/docs/doc/intro.md index 3679bd5..309ff64 100644 --- a/docs/doc/intro.md +++ b/docs/doc/intro.md @@ -36,16 +36,13 @@ XiUOS是一种工业物联网操作系统, 目标是通过工业物联网的部 - 现有OS对大规模部署和管理运维的支持有限, XiUOS强调对大规模部署和管理运维的支持; - 现有OS的生态是封闭、碎片化和彼此割裂的, XiUOS更关注开放的生态, 强调对标准规范的支持, 依托现有的各开源生态体系, 而非再建另一个封闭的生态体系。 -特色体现在: -(1) 当前ARM在物联网领域占市场统治地位,但随着其被英伟达收购程序的推进存在的知识产权问题,价格垄断问题越来越突出。此外,ARM指令集还存在单一固定、不可定制等问题; -(2) 工业物联网对“联”的需求呈现多样化、层次化、主体化的特点,工业生产的物理环境也是极其复杂多变,但现有的硬件系统在物理介质上仅仅支持一到两种“联”;工业物联网应用本身对外设种类的要求也是丰富多变,但现有的硬件系统挂载多种外设的能力有限; -(3) 现有的物联网操作系统支持的硬件系统多以开发板评估板的形态出现,这种硬件系统由于承载强度、温湿度限制,外壳保护等原因很难直接应用于实际工业生产环境,仅适用于实验室评估的验证系统。 +目前市场上的物联网的硬件呈现严重的碎片化状态,提高了应用的复杂度和技术壁垒。现有的物联网硬件生态特征在于:(1) 目前ARM在物联网领域占市场统治地位,但随着其被英伟达收购程序的推进,存在的知识产权问题和价格垄断问题越来越突出。此外,ARM指令集还存在单一固定、不可定制等问题;(2) 工业物联网对“联”的需求呈现多样化、层次化、主体化的特点,工业生产的物理环境也是极其复杂多变,但现有的硬件系统在物理介质上仅仅支持一到两种“联”;(3) 工业物联网应用本身对外设种类的要求也是丰富多变,但现有的硬件系统挂载多种外设的能力有限;(4) 现有的物联网操作系统支持的硬件系统多以开发板评估板的形态出现,这种硬件系统由于承载强度、温湿度限制,外壳保护等原因很难直接应用于实际工业生产环境,仅适用于实验室评估的验证系统。 -XiUOS是软硬件协同的物联网解决方案,其自研硬件的特征在于: +XiUOS是软硬件协同的物联网解决方案,其自研硬件系统的优势在于: - XiUOS的硬件系统支持RISC-V和ARM两种体系结构,强调RISC-V和ARM在工业应用中的共生共赢,又注重突出各自特点; -- XiUOS的硬件系统在同一物理实体终端上同时支持4G、NB-IoT、WiFi、ZigBee、LoRA、BlueTooth、ethernet,在硬件上天然地使得现有应用能够方便、快捷地“联”结各种网络; -- XiUOS的硬件系统在同一物理实体终端上同时支持SPI、IIC、UART、CAN、485、USB、SDIO等,在硬件上天然满足工业物联网对外设多样性的需求; -- XiUOS的硬件系统能够直接部署于工业生产环境中。 +- XiUOS的硬件系统在同一物理实体终端上同时支持 4G、NB-IoT、WiFi、ZigBee、LoRA、BlueTooth、Ethernet,在硬件上天然地使得现有应用能够方便、快捷地“联”结各种网络; +- XiUOS的硬件系统在同一物理实体终端上同时支持 SPI、IIC、UART、CAN、RS485、RS232、USB、SDIO等总线接口,在硬件上天然地满足工业物联网对外设多样性的需求; +- XiUOS的硬件系统能够直接部署于工业生产环境中,而非验证性的开发板评估板。 简而言之, 现有物联网OS主要关注的是做优秀的单节点OS, XiUOS是在现有单节点OS的基础上构建面向多节点的网络化智能物联软件栈, 为工业物联网领域应用开发、系统部署、管理运维提供友好方案, 因此现有物联网OS和XiUOS一个在下层一个在上层, 功能是互补的而非竞争的, 如Linux之于Android。 From e4d3f05066976dc6cfa537a19e7c39cb0d9a9613 Mon Sep 17 00:00:00 2001 From: Yan_yan Date: Mon, 26 Oct 2020 17:53:04 +0800 Subject: [PATCH 5/9] update the directory --- docs/.vuepress/config.js | 24 +++++++++++++++ docs/.vuepress/sidebar.js | 30 ++++++++++++++----- docs/doc/apparch/README.md | 11 +++++++ docs/doc/apparch/gan.md | 1 + docs/doc/apparch/kong.md | 1 + docs/doc/apparch/lian.md | 1 + docs/doc/apparch/zhi.md | 1 + docs/doc/board/README.md | 19 ++++++++++++ docs/doc/{processor => board}/aiit-arm32.md | 0 docs/doc/{processor => board}/aiit-arm64.md | 0 docs/doc/{processor => board}/hifive1-rev.md | 0 docs/doc/{processor => board}/kd233.md | 0 docs/doc/{processor => board}/maxgo.md | 0 .../stm32f407-st-discovery.md | 0 .../doc/{processor => board}/stm32f407zgt6.md | 0 docs/doc/controller/README.md | 10 +++++++ docs/doc/controller/sanling.md | 1 + docs/doc/controller/shinaide.md | 1 + docs/doc/controller/ximenzi.md | 1 + docs/doc/intro.md | 2 +- docs/doc/processor/README.md | 17 +++-------- docs/doc/processor/riscv.md | 1 + docs/doc/processor/riscv_fpga.md | 1 + docs/doc/processor/riscv_sk.md | 1 + 24 files changed, 102 insertions(+), 21 deletions(-) create mode 100644 docs/doc/apparch/README.md create mode 100644 docs/doc/apparch/gan.md create mode 100644 docs/doc/apparch/kong.md create mode 100644 docs/doc/apparch/lian.md create mode 100644 docs/doc/apparch/zhi.md create mode 100644 docs/doc/board/README.md rename docs/doc/{processor => board}/aiit-arm32.md (100%) rename docs/doc/{processor => board}/aiit-arm64.md (100%) rename docs/doc/{processor => board}/hifive1-rev.md (100%) rename docs/doc/{processor => board}/kd233.md (100%) rename docs/doc/{processor => board}/maxgo.md (100%) rename docs/doc/{processor => board}/stm32f407-st-discovery.md (100%) rename docs/doc/{processor => board}/stm32f407zgt6.md (100%) create mode 100644 docs/doc/controller/README.md create mode 100644 docs/doc/controller/sanling.md create mode 100644 docs/doc/controller/shinaide.md create mode 100644 docs/doc/controller/ximenzi.md create mode 100644 docs/doc/processor/riscv.md create mode 100644 docs/doc/processor/riscv_fpga.md create mode 100644 docs/doc/processor/riscv_sk.md diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 8447d28..e2f2059 100755 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -59,9 +59,21 @@ module.exports = { text: '传感器', link: '/doc/sensor/', }, + { + text: '控制器', + link: '/doc/controller/', + }, + { + text: '开发板', + link: '/doc/board/', + }, { text: '应用开发', link: '/doc/appdev/', + }, + { + text: '应用框架', + link: '/doc/apparch/' } ] }, @@ -117,9 +129,21 @@ module.exports = { title: '传感器', children: getSidebarByCategory('sensor','en') }, + { + title: '控制器', + children: getSidebarByCategory('controller','en') + }, + { + title: '开发板', + children: getSidebarByCategory('board','en') + }, { title: '应用开发', children: getSidebarByCategory('appdev','en') + }, + { + title: '应用架构', + children: getSidebarByCategory('apparch','en') } ], } diff --git a/docs/.vuepress/sidebar.js b/docs/.vuepress/sidebar.js index ff4cdd5..5c36743 100755 --- a/docs/.vuepress/sidebar.js +++ b/docs/.vuepress/sidebar.js @@ -8,13 +8,18 @@ const sidebar = { '/doc/kernel/synchron', '/doc/kernel/threadcommunication' ], - 'processor': [ - '/doc/processor/aiit-arm32', - '/doc/processor/stm32f407-st-discovery', - '/doc/processor/stm32f407zgt6', - '/doc/processor/hifive1-rev', - '/doc/processor/maxgo', - '/doc/processor/kd233' + 'board': [ + '/doc/board/aiit-arm32', + '/doc/board/stm32f407-st-discovery', + '/doc/board/stm32f407zgt6', + '/doc/board/hifive1-rev', + '/doc/board/maxgo', + '/doc/board/kd233' + ], + 'controller': [ + '/doc/controller/ximenzi', + '/doc/controller/shinaide', + '/doc/controller/sanling' ], 'communication': [ '/doc/communication/4G', @@ -43,6 +48,17 @@ const sidebar = { '/doc/appdev/env', '/doc/appdev/debug', '/doc/appdev/dev' + ], + 'apparch': [ + '/doc/apparch/gan', + '/doc/apparch/lian', + '/doc/apparch/zhi', + '/doc/apparch/kong' + ], + 'processor': [ + '/doc/processor/riscv', + '/doc/processor/riscv_sk', + '/doc/processor/riscv_fpga' ] } diff --git a/docs/doc/apparch/README.md b/docs/doc/apparch/README.md new file mode 100644 index 0000000..578a1b2 --- /dev/null +++ b/docs/doc/apparch/README.md @@ -0,0 +1,11 @@ +# 应用开发 + +--- + +* [感](/doc/apparch/gan.md) + +* [联](/doc/apparch/lian.md) + +* [智](/doc/apparch/zhi.md) + +* [控](/doc/apparch/kong.md) diff --git a/docs/doc/apparch/gan.md b/docs/doc/apparch/gan.md new file mode 100644 index 0000000..4202522 --- /dev/null +++ b/docs/doc/apparch/gan.md @@ -0,0 +1 @@ +# 感 diff --git a/docs/doc/apparch/kong.md b/docs/doc/apparch/kong.md new file mode 100644 index 0000000..4078b33 --- /dev/null +++ b/docs/doc/apparch/kong.md @@ -0,0 +1 @@ +# 控 \ No newline at end of file diff --git a/docs/doc/apparch/lian.md b/docs/doc/apparch/lian.md new file mode 100644 index 0000000..61bb10e --- /dev/null +++ b/docs/doc/apparch/lian.md @@ -0,0 +1 @@ +# 联 diff --git a/docs/doc/apparch/zhi.md b/docs/doc/apparch/zhi.md new file mode 100644 index 0000000..c849bcd --- /dev/null +++ b/docs/doc/apparch/zhi.md @@ -0,0 +1 @@ +# 智 \ No newline at end of file diff --git a/docs/doc/board/README.md b/docs/doc/board/README.md new file mode 100644 index 0000000..5431378 --- /dev/null +++ b/docs/doc/board/README.md @@ -0,0 +1,19 @@ +# 硬件支持 + +--- + +## ARM + +* [aiit-arm32](/doc/board/aiit-arm32.md) + +* [stm32f407-st-discovery](/doc/board/stm32f407-st-discovery.md) + +* [stm32f407zgt6](/doc/board/stm32f407zgt6.md) + +## RISC-V + +* [hifive1-re](/doc/board/hifive1-rev.md) + +* [maxgo](/doc/board/maxg.md) + +* [kd233](/doc/board/kd233.md) diff --git a/docs/doc/processor/aiit-arm32.md b/docs/doc/board/aiit-arm32.md similarity index 100% rename from docs/doc/processor/aiit-arm32.md rename to docs/doc/board/aiit-arm32.md diff --git a/docs/doc/processor/aiit-arm64.md b/docs/doc/board/aiit-arm64.md similarity index 100% rename from docs/doc/processor/aiit-arm64.md rename to docs/doc/board/aiit-arm64.md diff --git a/docs/doc/processor/hifive1-rev.md b/docs/doc/board/hifive1-rev.md similarity index 100% rename from docs/doc/processor/hifive1-rev.md rename to docs/doc/board/hifive1-rev.md diff --git a/docs/doc/processor/kd233.md b/docs/doc/board/kd233.md similarity index 100% rename from docs/doc/processor/kd233.md rename to docs/doc/board/kd233.md diff --git a/docs/doc/processor/maxgo.md b/docs/doc/board/maxgo.md similarity index 100% rename from docs/doc/processor/maxgo.md rename to docs/doc/board/maxgo.md diff --git a/docs/doc/processor/stm32f407-st-discovery.md b/docs/doc/board/stm32f407-st-discovery.md similarity index 100% rename from docs/doc/processor/stm32f407-st-discovery.md rename to docs/doc/board/stm32f407-st-discovery.md diff --git a/docs/doc/processor/stm32f407zgt6.md b/docs/doc/board/stm32f407zgt6.md similarity index 100% rename from docs/doc/processor/stm32f407zgt6.md rename to docs/doc/board/stm32f407zgt6.md diff --git a/docs/doc/controller/README.md b/docs/doc/controller/README.md new file mode 100644 index 0000000..103047d --- /dev/null +++ b/docs/doc/controller/README.md @@ -0,0 +1,10 @@ +# 控制器 + +--- + +- [西门子](/doc/controller/ximenzi.md) + +- [线程管理](/doc/controller/shinaide.md) + +- [资源管理](/doc/controller/sanling.md) + diff --git a/docs/doc/controller/sanling.md b/docs/doc/controller/sanling.md new file mode 100644 index 0000000..20090ef --- /dev/null +++ b/docs/doc/controller/sanling.md @@ -0,0 +1 @@ +# 三菱 \ No newline at end of file diff --git a/docs/doc/controller/shinaide.md b/docs/doc/controller/shinaide.md new file mode 100644 index 0000000..47afe82 --- /dev/null +++ b/docs/doc/controller/shinaide.md @@ -0,0 +1 @@ +# 施耐德 \ No newline at end of file diff --git a/docs/doc/controller/ximenzi.md b/docs/doc/controller/ximenzi.md new file mode 100644 index 0000000..bda7473 --- /dev/null +++ b/docs/doc/controller/ximenzi.md @@ -0,0 +1 @@ +# 西门子 \ No newline at end of file diff --git a/docs/doc/intro.md b/docs/doc/intro.md index 309ff64..ebb04c0 100644 --- a/docs/doc/intro.md +++ b/docs/doc/intro.md @@ -36,7 +36,7 @@ XiUOS是一种工业物联网操作系统, 目标是通过工业物联网的部 - 现有OS对大规模部署和管理运维的支持有限, XiUOS强调对大规模部署和管理运维的支持; - 现有OS的生态是封闭、碎片化和彼此割裂的, XiUOS更关注开放的生态, 强调对标准规范的支持, 依托现有的各开源生态体系, 而非再建另一个封闭的生态体系。 -目前市场上的物联网的硬件呈现严重的碎片化状态,提高了应用的复杂度和技术壁垒。现有的物联网硬件生态特征在于:(1) 目前ARM在物联网领域占市场统治地位,但随着其被英伟达收购程序的推进,存在的知识产权问题和价格垄断问题越来越突出。此外,ARM指令集还存在单一固定、不可定制等问题;(2) 工业物联网对“联”的需求呈现多样化、层次化、主体化的特点,工业生产的物理环境也是极其复杂多变,但现有的硬件系统在物理介质上仅仅支持一到两种“联”;(3) 工业物联网应用本身对外设种类的要求也是丰富多变,但现有的硬件系统挂载多种外设的能力有限;(4) 现有的物联网操作系统支持的硬件系统多以开发板评估板的形态出现,这种硬件系统由于承载强度、温湿度限制,外壳保护等原因很难直接应用于实际工业生产环境,仅适用于实验室评估的验证系统。 +目前市场上的物联网的硬件呈现严重的碎片化状态,提高了应用的复杂度和技术壁垒。现有的物联网硬件生态特征在于:(1) ARM在物联网领域占市场统治地位,但随着其被英伟达收购程序的推进,存在的知识产权问题和价格垄断问题越来越突出。此外,ARM指令集还存在单一固定、不可定制等问题;(2) 工业物联网对“联”的需求呈现多样化、层次化、主体化的特点,工业生产的物理环境也是极其复杂多变,但现有的硬件系统在物理介质上仅仅支持一到两种“联”;(3) 工业物联网应用本身对外设种类的要求也是丰富多变,但现有的硬件系统挂载多种外设的能力有限;(4) 现有的物联网操作系统支持的硬件系统多以开发板评估板的形态出现,这种硬件系统由于承载强度、温湿度限制,外壳保护等原因很难直接应用于实际工业生产环境,仅适用于实验室评估的验证系统。 XiUOS是软硬件协同的物联网解决方案,其自研硬件系统的优势在于: - XiUOS的硬件系统支持RISC-V和ARM两种体系结构,强调RISC-V和ARM在工业应用中的共生共赢,又注重突出各自特点; diff --git a/docs/doc/processor/README.md b/docs/doc/processor/README.md index e1f8cfc..0969728 100644 --- a/docs/doc/processor/README.md +++ b/docs/doc/processor/README.md @@ -1,19 +1,10 @@ -# 硬件支持 +# 控制器 --- -## ARM +- [西门子](/doc/processor/riscv.md) -* [aiit-arm32](/doc/processor/aiit-arm32.md) +- [线程管理](/doc/processor/riscv_sk.md) -* [stm32f407-st-discovery](/doc/processor/stm32f407-st-discovery.md) +- [资源管理](/doc/processor/riscv_fpga.md) -* [stm32f407zgt6](/doc/processor/stm32f407zgt6.md) - -## RISC-V - -* [hifive1-re](/doc/processor/hifive1-rev.md) - -* [maxgo](/doc/processor/maxg.md) - -* [kd233](/doc/processor/kd233.md) diff --git a/docs/doc/processor/riscv.md b/docs/doc/processor/riscv.md new file mode 100644 index 0000000..20090ef --- /dev/null +++ b/docs/doc/processor/riscv.md @@ -0,0 +1 @@ +# 三菱 \ No newline at end of file diff --git a/docs/doc/processor/riscv_fpga.md b/docs/doc/processor/riscv_fpga.md new file mode 100644 index 0000000..bda7473 --- /dev/null +++ b/docs/doc/processor/riscv_fpga.md @@ -0,0 +1 @@ +# 西门子 \ No newline at end of file diff --git a/docs/doc/processor/riscv_sk.md b/docs/doc/processor/riscv_sk.md new file mode 100644 index 0000000..47afe82 --- /dev/null +++ b/docs/doc/processor/riscv_sk.md @@ -0,0 +1 @@ +# 施耐德 \ No newline at end of file From b51d253cc2b77c5184aa1e0f0db557ee0d255215 Mon Sep 17 00:00:00 2001 From: Yan_yan Date: Tue, 27 Oct 2020 09:27:16 +0800 Subject: [PATCH 6/9] modify the character of intro.md --- docs/doc/intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/doc/intro.md b/docs/doc/intro.md index ebb04c0..9023c59 100644 --- a/docs/doc/intro.md +++ b/docs/doc/intro.md @@ -36,7 +36,7 @@ XiUOS是一种工业物联网操作系统, 目标是通过工业物联网的部 - 现有OS对大规模部署和管理运维的支持有限, XiUOS强调对大规模部署和管理运维的支持; - 现有OS的生态是封闭、碎片化和彼此割裂的, XiUOS更关注开放的生态, 强调对标准规范的支持, 依托现有的各开源生态体系, 而非再建另一个封闭的生态体系。 -目前市场上的物联网的硬件呈现严重的碎片化状态,提高了应用的复杂度和技术壁垒。现有的物联网硬件生态特征在于:(1) ARM在物联网领域占市场统治地位,但随着其被英伟达收购程序的推进,存在的知识产权问题和价格垄断问题越来越突出。此外,ARM指令集还存在单一固定、不可定制等问题;(2) 工业物联网对“联”的需求呈现多样化、层次化、主体化的特点,工业生产的物理环境也是极其复杂多变,但现有的硬件系统在物理介质上仅仅支持一到两种“联”;(3) 工业物联网应用本身对外设种类的要求也是丰富多变,但现有的硬件系统挂载多种外设的能力有限;(4) 现有的物联网操作系统支持的硬件系统多以开发板评估板的形态出现,这种硬件系统由于承载强度、温湿度限制,外壳保护等原因很难直接应用于实际工业生产环境,仅适用于实验室评估的验证系统。 +目前市场上的物联网的硬件呈现严重的碎片化状态,提高了应用的复杂度和技术壁垒。现有的物联网硬件生态特征在于:(1) ARM在物联网领域占市场统治地位,但随着其被英伟达收购程序的推进,存在的知识产权问题和价格垄断问题越来越突出。此外,ARM指令集还存在单一固定、不可定制等问题;(2) 工业物联网对“联”的需求呈现多样化、层次化、立体化的特点,工业生产的物理环境也是极其复杂多变,但现有的硬件系统在物理介质上仅仅支持一到两种“联”;(3) 工业物联网应用本身对外设种类的要求也是丰富多变,但现有的硬件系统挂载多种外设的能力有限;(4) 现有的物联网操作系统支持的硬件系统多以开发板评估板的形态出现,这种硬件系统由于承载强度、温湿度限制,外壳保护等原因很难直接应用于实际工业生产环境,仅适用于实验室评估的验证系统。 XiUOS是软硬件协同的物联网解决方案,其自研硬件系统的优势在于: - XiUOS的硬件系统支持RISC-V和ARM两种体系结构,强调RISC-V和ARM在工业应用中的共生共赢,又注重突出各自特点; From 55e9283f462cdd0c9a9e1f89705f4970f3d56aa4 Mon Sep 17 00:00:00 2001 From: Yan_yan Date: Tue, 27 Oct 2020 10:21:52 +0800 Subject: [PATCH 7/9] update the gan.md under apparch dir --- docs/doc/apparch/gan.md | 195 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 194 insertions(+), 1 deletion(-) diff --git a/docs/doc/apparch/gan.md b/docs/doc/apparch/gan.md index 4202522..fb3b1f9 100644 --- a/docs/doc/apparch/gan.md +++ b/docs/doc/apparch/gan.md @@ -1 +1,194 @@ -# 感 +# 感-传感器框架 + +多数嵌入式操作系统对传感器的抽象采用以物理传感器设备为中心的方式,在应用开发时无法绕过传感器设备的多样性,进而增加了传感器应用的开发难度和周期。这种抽象带来的缺陷在面对一些可以同时采集多种物理量的传感器(如温湿度传感器)时尤为突出,因为应用开发者不得不考虑每种传感器设备的采集数据的能力。 + +XiUOS的传感器框架以用户为中心,采用了以物理量为中心的抽象方式,在开发应用时只需要考虑所需感知的物理量种类,无需把重点放在实际采集物理量的传感器设备。这种抽象方式有效地隐藏了底层传感器设备的硬件细节,对外提供统一的数据采集接口,可以简化传感器应用与驱动的开发。为实现以物理量为中心的抽象,传感器框架对传感器设备进行两层抽象: +* 一个物理传感器测量一种物理量的能力(ability)被抽象为一个xs_SensorQuantity结构 +* 一个物理传感器本身被抽象为一个xs_SensorDevice结构 + +其中xs_SensorQuantity被设计为可以采用类似面向对象的方法、针对不同物理量扩展其数据成员与接口,从而为众多不同性质的物理量实现统一的管理架构。在应用开发的过程中只需要使用对应物理量的xs_SensorQuantity实例,无需关心传感器的硬件细节,从而实现数据采样功能与底层硬件的解耦。 + +从关联关系上来看,一个xs_SensorQuantity对应一个xs_SensorDevice,一个xs_SensorDevice对应一个或多个xs_SensorQuantity。例如,对于一个可以测量温度与湿度的传感器设备,该设备唯一对应一个xs_SensorDevice结构,而该设备测量温度与湿度的能力分别对应一个xs_SensorQuantity结构。两种数据结构的具体定义如下。 + +## struct xs_SensorQuantity结构 +```c +struct xs_SensorQuantity { + const char name[XS_NAME_MAX]; /* name of the sensor quantity instance */ + enum xs_SensorQuantityType type; /* type of data the sensor collects, such as CO2 concentration */ + struct xs_SensorDevice *sdev; /* corresponding sensor device */ + struct XS_DOUBLE_LINKLIST_NODE link; /* link list node */ +}; +``` +name成员是一个可读的名字,用于唯一标识一个xs_SensorQuantity结构。 + +type成员表示该xs_SensorQuantity可测量的物理量,用一个枚举变量表示: +```c +enum xs_SensorQuantityType { + XS_SENSOR_QUANTITY_CO2 = 0, /* CO2 concentration */ + XS_SENSOR_QUANTITY_TEMP, /* temperature */ + XS_SENSOR_QUANTITY_HUMI, /* humidity */ + /* ...... */ + XS_SENSOR_QUANTITY_END, +}; +``` + +sdev成员表示该xs_SensorQuantity所属的xs_SensorDevice结构,其具体定义在下文给出。 + +最后,在系统中每种物理量的xs_SensorQuantity被分别组织成不同双链表,如二氧化碳浓度xs_SensorQuantity链表、温度xs_SensorQuantity链表等,使用的链表节点即为link成员。 + +## struct xs_SensorDevice结构 +```c +struct xs_SensorDevice { + const char name[XS_NAME_MAX]; /* name of the sensor device */ + struct xs_SensorProductInfo info; /* sensor model info, such as vendor name and model name */ + struct xs_SensorOps ops; /* filesystem-like APIs for data transferring */ + struct xs_SensorInterface interface; /* physical interface for transferring data */ + struct XS_DOUBLE_LINKLIST_NODE link; /* link list node */ +}; +``` +name成员记录传感器设备在系统中的名字,用于唯一标识一个xs_SensorDevice结构 + +info成员记录传感器设备的一些属性信息,包括传感器的能力ability、厂家名vendor与型号product_model,其中ability用一个位图表示该传感器设备可以测量的物理量: +```c +#define XS_SENSOR_ABILITY_CO2 ((uint32_t)(1 << XS_SENSOR_QUANTITY_CO2)) +#define XS_SENSOR_ABILITY_TEMP ((uint32_t)(1 << XS_SENSOR_QUANTITY_TEMP)) +#define XS_SENSOR_ABILITY_HUMI ((uint32_t)(1 << XS_SENSOR_QUANTITY_HUMI)) +/* ...... */ + +struct xs_SensorProductInfo { + uint32_t ability; /* bitwise OR of XS_SENSOR_ABILITY_XXX */ + const char *vendor; + const char *product_model; +}; +``` + +ops成员包含统一的、类似文件系统的API,用于对传感器进行实际的数据读写。在使用一个传感器前后需要打开(open)/关闭(close)该传感器,read、write分别用与从传感器接收数据与向传感器发送数据,ioctl用于配置传感器属性(如波特率): +```c +struct xs_SensorOps { + int (*open)(struct xs_SensorDevice *sdev); + void (*close)(struct xs_SensorDevice *sdev); + int (*read)(struct xs_SensorDevice *sdev, void *buf, size_t len); + int (*write)(struct xs_SensorDevice *sdev, const void *buf, size_t len); + int (*ioctl)(struct xs_SensorDevice *sdev, int cmd, void *arg); +}; +``` + +interface成员表示用于与传感器进行通信的总线设备: +```c +struct xs_SensorInterface { + xs_device_t bus_device; +}; +``` + +最后,系统中所有注册过的传感器设备被组织成一个双链表,即link成员。 + +## 传感器框架驱动开发 + +以二氧化碳传感器为例。传感器框架针对每个具体的物理量将xs_SensorQuantity进行扩充,采用类似面向对象的手段添加其他必要成员,如: +```c +struct xs_SensorQuantityCo2 { + struct xs_SensorQuantity parent; /* inherit from xs_SensorQuantity */ + + uint32_t (*read_concentration)(struct xs_SensorQuantityCo2 *quant); + + uint32_t value_last; /* last measured value */ + uint32_t value_min; /* minimum measured value */ + uint32_t value_max; /* maximum measured value */ + uint32_t std_min; /* national standard: minimum */ + uint32_t std_max; /* national standard: maximum */ +}; +``` + +实现xs_SensorOps中的数据通信API,具体实现细节取决于传感器型号,无法实现的API可以置为NULL: +```c +struct xs_SensorOps co2_example_ops = { + .open = co2_example_open; + .close = co2_example_close; + .read = co2_example_read; + .write = NULL; + .ioctl = co2_example_ioctl; +}; +``` + +实现xs_SensorQuantityCo2中的read_concentration接口,该接口用于读取当前空气中的二氧化碳浓度。在实现过程中可以使用xs_SensorOps中的接口与传感器进行通信。 + +最后,将传感器设备添加到传感器框架。分别填充xs_SensorDevice与对应物理量的xs_SensorQuantity结构(二氧化碳即为xs_SensorQuantityCo2),并依次使用xs_SensorDeviceRegister和xs_SensorQuantityRegister函数将其注册到传感器框架: +```c +int xs_SensorDeviceRegister(struct xs_SensorDevice *sdev); +int xs_SensorQuantityRegister(struct xs_SensorQuantity *quant); + +extern struct xs_SensorOps co2_example_ops; +extern uint32_t co2_example_read_concentration(struct xs_SensorQuantityCo2 *quant); + +/* declare xs_SensorDevice and xs_SensorQuantityCo2 objects */ +struct xs_SensorDevice co2_example_sdev; +struct xs_SensorQuantityCo2 co2_example_quant; + +void register_co2_sensor() +{ + /* initialize and register the xs_SensorDevice object */ + memset(&co2_example_sdev, 0, sizeof(xs_SensorDevice)); + + co2_example_sdev.name = "sensor1"; + co2_example_sdev.info.ability |= XS_SENSOR_ABILITY_CO2; + co2_example_sdev.info.vendor = "xxx"; + co2_example_sdev.info.product_model = "yyy"; + co2_example_sdev.ops = &co2_example_ops; + co2_example_sdev.interface.bus_device = xs_DeviceFind("uart1"); + + xs_SensorDeviceRegister(&co2_example_sdev); + + + /* initialize and register the xs_SensorQuantity object */ + memset(&co2_example_quant, 0, sizeof(xs_SensorQuantityCo2)); + + co2_example_quant.parent.name = "co2_1"; + co2_example_quant.parent.type = XS_XS_SENSOR_QUANTITY_CO2; + co2_example_quant.parent.sdev = &co2_example_sdev; + co2_example_quant.read_concentration = co2_example_read_concentration; + + xs_SensorQuantityRegister((struct xs_SensorQuantity *)&co2_example_quant); +} +``` + +## 传感器框架的使用 + +传感器应用开发者使用传感器框架提供的API操作传感器,传感器API可以分为通用API与物理量特有API。通用API用于传感器的获取、打开与关闭,物理量特有API用于传感器的数据采样。以二氧化碳传感器为例: +```c +/* generic API: find a sensor quantity instance by its name */ +struct xs_SensorQuantity *xs_SensorQuantityFind(const char *name); + +/* generic API: open/close a sensor quantity instance */ +int xs_SensorQuantityOpen(struct xs_SensorQuantity *quant); +void xs_SensorQuantityClose(struct xs_SensorQuantity *quant); + +/* CO2 API: get current CO2 concentration reading (in ppm unit) */ +uint32_t xs_SensorCo2Read(struct xs_SensorQuantityCo2 *quant); +``` + +在获取数据前,需要先获取并打开要使用的传感器;传感器打开后可以随时对传感器数据进行读取;使用完毕后,须关闭传感器。完整的使用过程示例如下: +```c +int main(int argc, char *argv[]) +{ + int ret; + struct xs_SensorQuantity *quant; + struct xs_SensorQuantityCo2 *co2_quant; + + /* get the CO2 sensor quantity instance */ + quant = xs_SensorQuantityFind("co2_1"); + XS_ASSERT(quant->type == XS_SENSOR_QUANTITY_CO2); + + /* open the CO2 sensor quantity instance */ + co2_quant = (struct xs_SensorQuantityCo2 *)quant; + ret = xs_SensorQuantityOpen(quant); + XS_ASSERT(ret == XS_EOK); + + /* read CO2 concentration for 5 times, just for demonstration */ + for (int i = 0; i < 5; i++) + xs_kprintf("Current CO2 concentration is %u ppm\n", xs_SensorCo2Read(co2_quant)); + + xs_SensorQuantityClose(quant); + + return 0; +} +``` From a79f73f4856c8ac3c49aa99ef32fc4e9fa421acb Mon Sep 17 00:00:00 2001 From: Yan_yan Date: Tue, 27 Oct 2020 11:37:35 +0800 Subject: [PATCH 8/9] modify the character under intro.md dir --- docs/doc/intro.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/doc/intro.md b/docs/doc/intro.md index 9023c59..2f25858 100644 --- a/docs/doc/intro.md +++ b/docs/doc/intro.md @@ -44,6 +44,8 @@ XiUOS是软硬件协同的物联网解决方案,其自研硬件系统的优势 - XiUOS的硬件系统在同一物理实体终端上同时支持 SPI、IIC、UART、CAN、RS485、RS232、USB、SDIO等总线接口,在硬件上天然地满足工业物联网对外设多样性的需求; - XiUOS的硬件系统能够直接部署于工业生产环境中,而非验证性的开发板评估板。 +XiUOS硬件系统中的处理器、通信器、传感器、控制器采用解耦的模块化设计,利于XiUOS操作系统方便地通过软件定义的方式屏蔽各种硬件外设的差异,使得工业物联网用户不必关心底层硬件的实施细节,从而更加专注于应用逻辑本身的效能。 + 简而言之, 现有物联网OS主要关注的是做优秀的单节点OS, XiUOS是在现有单节点OS的基础上构建面向多节点的网络化智能物联软件栈, 为工业物联网领域应用开发、系统部署、管理运维提供友好方案, 因此现有物联网OS和XiUOS一个在下层一个在上层, 功能是互补的而非竞争的, 如Linux之于Android。 From 4655445045eea2045e994a838455261bf0eb50a7 Mon Sep 17 00:00:00 2001 From: Yan_yan Date: Tue, 27 Oct 2020 15:22:41 +0800 Subject: [PATCH 9/9] change the position of mm and task dir --- docs/.vuepress/sidebar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/.vuepress/sidebar.js b/docs/.vuepress/sidebar.js index 5c36743..652135e 100755 --- a/docs/.vuepress/sidebar.js +++ b/docs/.vuepress/sidebar.js @@ -3,8 +3,8 @@ const sidebar = { '/doc/intro', ], 'kernel': [ - '/doc/kernel/mm', '/doc/kernel/task', + '/doc/kernel/mm', '/doc/kernel/synchron', '/doc/kernel/threadcommunication' ],