From c06e959246b9d7df434b4ddc85ca09a7a06d8f47 Mon Sep 17 00:00:00 2001 From: Yan_yan Date: Tue, 24 Nov 2020 14:57:58 +0800 Subject: [PATCH] sentence sematic modification --- docs/doc/kernel/imagesrc/arm_test_code.png | Bin 14412 -> 0 bytes docs/doc/kernel/imagesrc/arm_test_switch.png | Bin 45974 -> 0 bytes docs/doc/kernel/imagesrc/arm_test_switch1.png | Bin 55048 -> 0 bytes .../doc/kernel/imagesrc/riscv_test_switch.png | Bin 61894 -> 0 bytes docs/doc/kernel/task.md | 326 ++++++++++++------ 5 files changed, 219 insertions(+), 107 deletions(-) delete mode 100644 docs/doc/kernel/imagesrc/arm_test_code.png delete mode 100644 docs/doc/kernel/imagesrc/arm_test_switch.png delete mode 100644 docs/doc/kernel/imagesrc/arm_test_switch1.png delete mode 100644 docs/doc/kernel/imagesrc/riscv_test_switch.png diff --git a/docs/doc/kernel/imagesrc/arm_test_code.png b/docs/doc/kernel/imagesrc/arm_test_code.png deleted file mode 100644 index 527f07c377a80bdcf45b67c6fd638289b6852f24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14412 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 diff --git a/docs/doc/kernel/imagesrc/arm_test_switch1.png b/docs/doc/kernel/imagesrc/arm_test_switch1.png deleted file mode 100644 index e33a7f24301ab9d464db4fde63e2d1af32645fd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55048 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 Bowfh~ diff --git a/docs/doc/kernel/imagesrc/riscv_test_switch.png b/docs/doc/kernel/imagesrc/riscv_test_switch.png deleted file mode 100644 index 246025e02d01898557f2f3cbac4de63ef3373524..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61894 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

e(>GZ{7`2%-rk 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 ### 任务状态 -系统中的任务在任意时刻都处于就绪(ready)、运行(running)、阻塞/挂起(suspend)、退出(quit)四种状态之一。状态之间的变化关系如下图所示。 +XiUOS 中的任务在任意时刻都处于就绪(ready)、运行(running)、阻塞/挂起(suspend)、退出(quit)四种状态之一。状态之间的变化关系如下图所示。 -任务在创建完成后会进入就绪状态并被加入就绪队列等待内核调度。当任务被调度开始运行时,任务会进入运行状态。若任务在运行过程中被更高优先级的任务抢占,则被抢占的任务会回到就绪队列并再次进入就绪状态。当任务在运行过程中申请资源失败时,任务会被挂起并进入挂起状态,并在所申请资源能够被满足时回到就绪状态。当任务执行完成,即从入口函数返回时,会进入终止状态,并由内核回收其相关资源。 +* 任务在创建完成后会进入就绪状态并被加入就绪队列等待内核 CPU 调度 +* 当任务被调度开始运行时,任务会进入运行状态 +* 若任务在运行过程中被更高优先级的任务抢占,则被抢占的任务会回到就绪队列并再次进入就绪状态 +* 当任务在运行过程中申请资源失败时,任务会被挂起并进入挂起状态,并在所申请资源能够被满足时回到就绪状态 +* 当任务执行完成,即从入口函数返回时,会进入终止状态,并由内核回收其相关资源 ### 任务调度 -任务调度即从系统就绪队列中按一定策略选择任务,使其进入运行状态的过程。XiUOS支持以下调度方式: +任务调度即从系统就绪队列中按一定策略选择某一任务,使其进入运行状态的过程。XiUOS 支持以下调度方式: -* 抢占式优先级调度:在创建任务时可以指定任务的优先级,内核总是选取就绪队列中优先级最高的任务。当新创建的任务优先级高于正在运行的任务的优先级时,当前运行的任务会被抢占。若就绪队列中最高优先级任务有多个,则这些任务会按时间片轮转交替运行。 -* 先来先服务(FIFO)调度:任务按照被创建的顺序依次被执行。当一个任务运行完成后,系统才会让下一个任务开始运行。 -* 时间片轮转(RR)调度:任务按照分配的时间片执行,时间片结束,调度一个新的就绪任务执行,当前任务重新就绪,等待下一次的调度。 - +* 抢占式优先级调度,即在创建任务时,用户可以指定任务的优先级,内核总是选取就绪队列中优先级最高的任务。当新创建的任务优先级高于正在运行的任务的优先级时,当前运行任务的CPU使用权会被抢占。若就绪队列中最高优先级任务有多个,则这些任务会按时间片轮转方式交替运行。 +* 先来先服务(FIFO)调度,即任务按照被创建的顺序依次被执行。当一个任务运行完成后,系统才会让下一个任务开始运行。 +* 时间片轮转(RR)调度,即任务按照分配的时间片执行,时间片结束,调度一个新的就绪任务执行,当前任务重新就绪,等待下一次的调度。 + ### 任务结构定义 -每个任务在内核中由一个task_descriptor结构表示,二者一一对应。 - +每一个任务在内核中都有一个task_descriptor描述符,其结构体定义如下: ```c struct task_descriptor { - void *stack_pointer; - + void *stack_pointer; struct dync_sched_member dync_sched_member_x; - - struct t_baseinfo t_baseinfo_x; + struct task_baseinfo t_baseinfo_x; #ifdef XS_USING_SMP - struct smp_info smp_info_x; + struct smp_info smp_info_x; #endif #if defined(XS_USING_EVENT) - xs_uint32 event_ctrl1:3; - xs_uint32 event_ctrl2:29; + xs_uint32 event_ctrl1:3; + xs_uint32 event_ctrl2:29; #endif - xs_err_t error; - XS_DOUBLE_LINKLIST link; + xs_err_t error; + XS_DOUBLE_LINKLIST link; }; ``` -其中stack_pointer成员表示该任务的栈的起始地址,dync_sched_member_x成员包含与任务调度相关的信息,t_baseinfo_x包含任务的基本信息,smp_info_x包含与多处理器相关的信息,event_ctrl1/event_ctrl2用于实现事件集机制(见任务间通信部分文档),error为任务调用内核接口时最近的错误码,link用于将系统中的所有任务组织成一个双链表。各复合成员的详细定义如下: - -```c -struct task_baseinfo { - char name[XS_NAME_MAX]; - void *func_entry; - void *func_param; - xs_uint32 stack_size; - xs_uint8 origin_prio; -}; -``` - -struct task_baseinfo结构记录了任务的基本属性,包括任务的名称(name)、入口函数和参数(func_entry、func_param)、栈大小(stack_size)、优先级(origin_prio)。 - +其中,stack_pointer 指向任务堆栈的起始地址,dync_sched_member_x 包含与任务调度相关的信息,t_baseinfo_x 记录任务的基本信息,smp_info_x 统计与多处理器相关的信息,event_ctrl1 / event_ctrl2 用于实现事件集机制(详见[任务通信](#communication)),error为任务调用内核接口时最近的错误码,即用户线程在使用内核接口时可能会执行失败,此时内核接口返回-1,具体的错误码被保存在error成员中,且在下一次调用内核接口失败时被覆盖,link 用于组织内核中所有的任务。各复合成员的详细定义如下。 +* struct dync_sched_member ```c struct dync_sched_member { - xs_uint8 stat; - xs_uint8 advance_cnt; - xs_uint8 cur_prio; - xs_ubase origin_timeslice; - xs_ubase rest_timeslice; + xs_uint8 stat; + xs_uint8 advance_cnt; + xs_uint8 cur_prio; + xs_ubase origin_timeslice; + xs_ubase rest_timeslice; + #ifdef XS_USING_TASK_ISOLATION - xs_uint8 isolation_flag; - void *isolation; + xs_uint8 isolation_flag; + void *isolation; #endif + union { XS_DOUBLE_LINKLIST sched_link; - XS_AVL sched_avl; - } + XS_AVL sched_avl; + }; XS_DOUBLE_LINKLIST pend_link; - xs_Timer_t task_timer; + xs_Timer_t task_timer; }; #define XS_SUSPEND ((1) << (0)) @@ -114,15 +105,26 @@ struct dync_sched_member { #define XS_QUIT ((1) << (3)) ``` -struct dync_sched_member结构的成员用于记录与调度相关的信息。stat表示任务的当前状态,可以为挂起(XS_SUSPEND)、就绪(XS_READY)、运行(XS_RUNNING)或退出(XS_QUIT)。advance_cnt表示在配置成短作业预先调度时优先处理的时间片周期个数。cur_prio表示任务当前的优先级:为防止出现优先级反转,该优先级可以高于任务创建时配置的优先级。origin_timeslice表示在时间片轮转调度中该任务每次运行的时间片。地址空间隔离信息(isolation_flag变量和指针isolation)。sched_link、sched_avl构成的联合体为就绪队列节点,XiUOS中就绪队列可以配置为双链表(sched_link)或AVL树(sched_avl)。pend_link为任务挂起时使用的等待队列节点。task_timer用于任务睡眠的计时。 +struct dync_sched_member结构用于记录与调度相关的信息。stat记录任务的当前状态,可以为挂起(XS_SUSPEND)、就绪(XS_READY)、运行(XS_RUNNING)或退出(XS_QUIT)。advance_cnt表示在配置成短作业预先调度时优先处理的时间片周期个数。cur_prio表示任务当前的优先级,用于优先级反转,该优先级可以高于任务创建时配置的优先级。origin_timeslice表示在时间片轮转调度时,任务每次运行的时间片。isolation_flag变量和指针isolation支持地址空间隔离。sched_link和sched_avl构成的联合体为就绪队列节点,XiUOS中就绪队列可以组织为双链表(sched_link)或平衡二叉树(sched_avl)。pend_link为任务挂起时使用的等待队列节点。task_timer为任务睡眠的计数器。 +* struct task_baseinfo +```c +struct task_baseinfo { + char name[XS_NAME_MAX]; + void *func_entry; + void *func_param; + xs_uint32 stack_size; + xs_uint8 origin_prio; +}; +``` +struct task_baseinfo结构记录了任务的基本属性,包括任务的名称(name)、入口函数(func_entry)和参数(func_param)、栈大小(stack_size)、初始优先级(origin_prio)。 +* struct smp_info ```c struct smp_info { xs_uint8 combined_coreid; xs_uint8 running_coreid; }; ``` - struct smp_info结构包含多处理器相关的信息,其成员分别表示该任务绑定的CPU ID与正在运行的CPU ID。 @@ -142,7 +144,7 @@ typedef struct xs_utask xs_utask_x; struct task_descriptor* xs_UserTaskCreate(xs_utask_x task); ``` -该函数用于用户态创建一个任务。任务的各个属性由一个struct xs_utask结构表示,包括任务的名称、入口函数及参数、栈大小和优先级,在调用该函数时需要传入该结构的实例用于配置任务。任务创建成功后,内核会为其分配指定大小的栈及其他结构(如struct task_descriptor)结构,并返回任务描述符指针。 +该函数用于用户态的任务创建。任务的各个属性由struct xs_utask结构表示,包括任务的名称、入口函数及参数、栈大小和优先级,在调用该函数时需要传入该结构的实例用于配置任务属性。任务创建成功后,内核会为其分配指定大小的栈及其他结构(如struct task_descriptor),并返回任务描述符指针。 | 参数 | 描述 | | --- | --- | @@ -152,28 +154,28 @@ struct task_descriptor* xs_UserTaskCreate(xs_utask_x task); xs_int32 xs_UserTaskDelete(struct task_descriptor task); ``` -该函数用于删除一个任务,强制使其进入退出状态。若删除成功则返回XS_EOK,若失败则返回-XS_ERROR。 +该函数用于删除一个任务,强制其进入退出状态。若删除成功则返回XS_EOK,否则返回-XS_ERROR。 | 参数 | 描述 | | --- | --- | | task| 待删除的任务描述符 | ```c -xs_int32 xs_UserTaskCoreCombine(struct task_descriptor task, xs_uint8 coreid); +xs_int32 xs_UserTaskCoreCombine(struct task_descriptor task_id, xs_uint8 core_id); ``` -该函数用于将任务绑定至指定的处理器上。若绑定成功则返回XS_EOK,若失败则返回-XS_ERROR。 +该函数用于将任务绑定至指定的处理器上。若绑定成功则返回XS_EOK,否则返回-XS_ERROR。 | 参数 | 描述 | | --- | --- | | task_id | 待绑定的任务描述符 | -| coreid | 待绑定的处理器ID | +| core_id | 待绑定的处理器ID | ```c xs_int32 xs_UserTaskCoreUncombine(struct task_descriptor task); ``` -该函数用于解除任务与处理器的绑定。若解除成功则返回XS_EOK,若失败则返回-XS_ERROR。 +该函数用于解除任务与处理器的绑定。若解除成功则返回XS_EOK,否则返回-XS_ERROR。 | 参数 | 描述 | | --- | --- | @@ -183,7 +185,7 @@ xs_int32 xs_UserTaskCoreUncombine(struct task_descriptor task); xs_int32 xs_UserTaskDelay(xs_ticks_x ticks); ``` -该函数用于将当前任务挂起一定时间,单位为tick。挂起时间结束后,任务会进入就绪状态,可以继续被调度。 +该函数用于将当前任务挂起一定时间,单位为tick。挂起时间结束后,任务会进入就绪状态,等待系统调用。 | 参数 | 描述 | | --- | --- | @@ -193,18 +195,16 @@ xs_int32 xs_UserTaskDelay(xs_ticks_x ticks); struct task_descriptor* xs_UserTaskSearch(char *name) ``` -该函数用于从任务名称获取任务描述符。 +该函数根据任务名称获取任务描述符。 | 参数 | 描述 | | --- | --- | | name | 任务名称 | - - ## 任务通信 -XiUOS提供多种任务间通信机制,包括消息队列、信号量、互斥量与事件集。 +XiUOS 提供多种任务间通信机制,包括消息队列、信号量、互斥量与事件集。 ### 消息队列 @@ -299,12 +299,12 @@ xs_int32 xs_UserMsgQueueReinit(xs_uint16 id); | 参数 | 描述 | | --- | --- | -| id | 来源消息队列ID | +| id | 消息队列ID | ### 信号量 -信号量(semaphore)具有一个给定的初值。任务可以获取或释放一个信号量。当任务获取信号量时信号量的值递减,释放信号量时值递增。当信号量值递减至0时,后续尝试获取信号量的任务会被挂起。每当一个已获取信号量的任务释放信号量时,内核会从信号量挂起队列上唤醒一个任务。信号量可以用于实现任务间的同步与互斥。 +信号量(semaphore)具有一个给定的初值。任务可以获取或释放一个信号量。当任务获取信号量时,信号量的值递减,释放信号量时,信号量的值递增。当信号量的值递减至0时,后续尝试获取信号量的任务会被挂起。当任务释放信号量时,内核会从该信号量的挂起队列上唤醒一个任务。信号量可以实现任务间的同步与互斥。 #### 信号量结构定义 @@ -346,7 +346,7 @@ void xs_UserSemaphoreDelete(xs_uint16 id); | 参数 | 描述 | | --- | --- | -| id | 待删除的信号量的ID | +| id | 待删除的信号量ID | ```c xs_int32 xs_UserSemaphoreObtain(xs_uint16 id, xs_ticks_x wait_time); @@ -356,7 +356,7 @@ xs_int32 xs_UserSemaphoreObtain(xs_uint16 id, xs_ticks_x wait_time); | 参数 | 描述 | | --- | --- | -| id | 欲获取的信号量的ID | +| id | 欲获取的信号量ID | | wait_time | 等待时间上限,单位ticks;若为0,则不等待 | ```c @@ -367,7 +367,7 @@ xs_int32 xs_UserSemaphoreAbandon(xs_uint16 id); | 参数 | 描述 | | --- | --- | -| id | 待释放的信号量的ID | +| id | 待释放的信号量ID | ```c xs_int32 xs_UserSemaphoreSetValue(xs_uint16 id, xs_uint16 val); @@ -452,7 +452,7 @@ xs_int32 xs_UserMutexAbandon(xs_uint16 id); ### 事件集 -事件集(event set)允许用户定义一个事件集合,集合中的每个事件都可以被任务触发或等待。任务可以同时等待多个事件,此时等待触发的条件可以配置为AND或者OR:当等待触发条件配置为AND时,只有所有被等待的事件均被触发才视作等待结束;当等待触发条件配置为OR时,任意一个被等待的事件触发即视作等待结束。使用事件集可以实现多对多的任务间同步与互斥。 +事件集(event set)允许用户定义一个事件集合,集合中的每个事件都可以被任务触发或等待。任务可以同时等待多个事件,此时等待触发的条件可以配置为 AND 或者 OR :当等待触发条件配置为 AND 时,只有所有被等待的事件均被触发才视作等待结束;当等待触发条件配置为 OR 时,任意一个被等待的事件触发即视作等待结束。使用事件集可以实现多对多的任务间同步与互斥。 #### 事件集结构定义 @@ -465,7 +465,7 @@ xs_int32 xs_UserMutexAbandon(xs_uint16 id); struct xs_event { xs_uint16 id; - xs_uint32 trigge_way; + xs_uint32 trigger_way; XS_DOUBLE_LINKLIST pend_list; XS_DOUBLE_LINKLIST link; @@ -475,7 +475,7 @@ struct xs_event | 成员 | 描述 | | --- | --- | | id | 事件集ID,用于唯一标识一个事件集 | -| trigge_way | 高3位用于记录事件集属性(等待触发条件、是否自动清空),低29位用于表示至多29个事件 | +| trigger_way | 高3位用于记录事件集属性(等待触发条件、是否自动清空),低29位用于表示至多29个事件 | | pend_list | 等待任务链表 | | link | 系统中所有事件集构成的链表 | @@ -485,11 +485,11 @@ struct xs_event xs_int32 xs_UserEventCreate(xs_uint32 options); ``` -该函数用于创建一个事件集。options参数用于配置事件集的属性。可配置的属性有等待触发方式(XS_EVENT_AND或XS_EVENT_OR)及等待触发后是否自动清空其他已触发的事件(XS_EVENT_AUTOCLEAN)。创建成功后,新的事件集会被加入内核的事件集管理链表,并返回该事件集的ID,ID默认范围0-255,可配置。 +该函数用于创建一个事件集。options参数用于配置事件集的属性。可配置的属性有等待触发方式(XS_EVENT_AND 或 XS_EVENT_OR)及等待触发后是否自动清空其他已触发的事件(XS_EVENT_AUTOCLEAN)。创建成功后,新的事件集会被加入内核的事件集管理链表,并返回该事件集的ID,ID默认范围0-255,可配置。 | 参数 | 描述 | | --- | --- | -| options | 事件集配置选项,须在XS_EVENT_AND及XS_EVENT_OR中指定其一,并可以按位或上XS_EVENT_AUTOCLEAN | +| options | 事件集配置选项,须在 XS_EVENT_AND 及 XS_EVENT_OR 中指定其一,并可以按位或上 XS_EVENT_AUTOCLEAN | ```c void xs_UserEventDele(xs_uint16 id); @@ -509,13 +509,13 @@ xs_int32 xs_UserEventTrigger(xs_uint16 id, xs_uint32 events); | 参数 | 描述 | | --- | --- | | id | 事件集ID | -| events | 欲触发的事件,其中被置1的位标识被触发的事件 ,可以使用XS_EVENTS宏按位或发送事件类型| +| events | 欲触发的事件,其中被置1的位标识被触发的事件 ,可以使用 XS_EVENTS 宏按位或发送事件类型| ```c xs_int32 xs_UserEventProcess(xs_uint16 id, xs_uint32 events, xs_ticks_x wait_time); ``` -该函数用于等待事件集中的一组事件。若等待成功则返回XS_EOK,此时若XS_EVENT_AUTOCLEAN被打开则事件集中所有已触发事件会被清空;若等待失败(超时)则返回-XS_ETIMEOUT。 +该函数用于等待事件集中的一组事件。若等待成功则返回 XS_EOK,此时若 XS_EVENT_AUTOCLEAN 被打开则事件集中所有已触发事件会被清空;若等待失败(超时)则返回 -XS_ETIMEOUT。 | 参数 | 描述 | | --- | --- | @@ -527,12 +527,12 @@ xs_int32 xs_UserEventProcess(xs_uint16 id, xs_uint32 events, xs_ticks_x wait_tim xs_int32 xs_UserEventConfig(xs_uint16 id, xs_uint32 options); ``` -该函数用于配置事件集中的一种事件类型。若等配置成功则返回XS_EOK,options参数用于配置事件集的属性。可配置的属性有等待触发方式(XS_EVENT_AND或XS_EVENT_OR)及等待触发后是否自动清空其他已触发的事件(XS_EVENT_AUTOCLEAN)。 +该函数用于配置事件集中的一种事件类型。若配置成功则返回 XS_EOK,options 参数用于配置事件集的属性。可配置的属性有等待触发方式(XS_EVENT_AND 或 XS_EVENT_OR)及等待触发后是否自动清空其他已触发的事件(XS_EVENT_AUTOCLEAN)。 | 参数 | 描述 | | --- | --- | | id | 事件集ID | -| options | 事件集配置选项,须在XS_EVENT_AND及XS_EVENT_OR中指定其一,并可以按位或上XS_EVENT_AUTOCLEAN | +| options | 事件集配置选项,须在 XS_EVENT_AND 及 XS_EVENT_OR 中指定其一,并可以按位或上 XS_EVENT_AUTOCLEAN | ```c xs_int32 xs_UserEventReinit(xs_uint16 id); @@ -613,7 +613,7 @@ XiUOS 中的任务在编译链接后形成Linux通用的ELF文件结构,其中 XiUOS 的任务通过 malloc/free 等内核服务接口来动态申请和释放内存空间,并能根据用户任务申请和释放的内存地址更新任务隔离表。当用户程序通过 malloc 等内核服务接口向内核申请指定大小的内存空间时,系统会在用户程序对应的任务中增加对内存空间的访问权限,同时将更新后的任务隔离表加载到内存保护单元配置寄存器中,使其生效。当用户程序通过 free 等内核服务接口向内核释放指定大小的内存空间时,系统会在用户程序对应的任务隔离表中清除对这段内存空间的访问权限,同时加载更新后的任务隔离表到内存保护单元寄存器中,使其生效。 此外,XiUOS 还支持共享内存的任务隔离,其基本思路同动态内存申请/释放时相同。进一步地,当用户程序因为某种原因试图访问没有权限的内存空间时,CPU 会产生一个访问错误的异常,并进入内核服务接口的异常处理流程,在这个流程中会将该任务直接杀死并回收任务资源。 4. RISC-V 64架构任务隔离 -大部分 RISC-V 架构的 CPU 拥有特权模式和非特权模式。这两种模式都为 CPU 核提供了物理内存保护(PMP,Physical Memory Protection)功能。通过编程 PMP,可以为指定大小的内存区域设置读、写、执行等访问权限。PMP 包括 8~16 组配置寄存器和地址寄存器,一组配置寄存器和地址寄存器称为一个 PMP entry,PMP entry 对应之前定义的 isolation_region,用于标识一段内存地址空间的访问权限,其结构定义如下: +大部分 RISC-V 架构的 CPU 拥有特权模式和非特权模式。这两种模式都为 CPU 核提供了物理内存保护(PMP,Physical Memory Protection)功能。通过编程 PMP,可以为指定大小的内存区域设置读、写、执行等访问权限。PMP 包括 8~16 组配置寄存器和地址寄存器,一组配置寄存器和地址寄存器称为一个 PMP entry,PMP entry 对应之前定义的 isolation_region,用于标识一段内存地址空间的访问权限。 对于一个正在运行用户任务,其isolation_table的内容大致如下: ```c isolation_table[16] = @@ -639,22 +639,22 @@ isolation_table[16] = ``` 相关PMP操作的接口如下: ```c -// isolation_table增加一个region: -PMP_add_region(isolation_region *isolation_table, void *region_address,xs_size_t size, int flag ); -// isolation_table增加清除一个region: +// isolation_table增加一个region +PMP_add_region(isolation_region *isolation_table, void *region_address, xs_size_t size, int flag); +// isolation_table增加清除一个region PMP_clear_region(isolation_region *isolation_table, void *region_address,xs_size_t size); -// 将isolation_table加载到PMP中: -PMP_load(isolation_region *isolation_table , xs_uint8 coreid); +// 将isolation_table加载到PMP中 +PMP_load(isolation_region *isolation_table, xs_uint8 coreid); ``` 5. ARM-32 架构任务隔离 ARM32 的 handler mode 和 thread mode 分别对应特权模式和非特权模式。ARM32 架构的 MPU 单元可以对内存地址空间的访问权限进行设置,从而实现任务地址空间的隔离访问。MPU 通过将内存空间划分为多个 “region” 进行权限设置,一个 region 就是一段连续的地址空间,对应之前定义的 isolation_region,一般 MPU 支持设置8~16个regions。在启用MPU后,程序就无法访问定义之外的地址区间,也不得访问未经授权的region,否则,将会触发内存访问错误。对于正在运的行用户任务,ARM32 的 isolation_table 的内容同 RISC-V 架构基本相同。 相关MPU的操作接口如下: ```c -// isolation_table增加一个region: -MPU_add_region(isolation_region *isolation_table, void *region_address, xs_size_t size, int flag ); -// isolation_table增加清除一个region: +// isolation_table增加一个region +MPU_add_region(isolation_region *isolation_table, void *region_address, xs_size_t size, int flag); +// isolation_table增加清除一个region MPU_clear_region(isolation_region *isolation_table, void *region_address, xs_size_t size); -// 将isolation_table加载到MPU中: +// 将isolation_table加载到MPU中 MPU_load(isolation_region *isolation_table, xs_uint8 coreid); ``` @@ -666,7 +666,7 @@ MPU_load(isolation_region *isolation_table, xs_uint8 coreid); ### 概述 -下面分别测试XiUOS系统运行在基于ARM和RISC-V不同处理器的开发板时,任务的切换时间。 +下面分别测试XiUOS系统运行在基于 ARM 和 RISC-V 不同处理器的开发板时,任务的切换时间。 @@ -690,25 +690,95 @@ XiUOS的任务切换函数为xs_SwitchKthreadContext,在SwitchKthreadContext

-![RISCV TEST CONNECT](./imagesrc/arm_test_code.png) +```c +void realtime_taskswitch_test() +{ + xs_PinMode(GPIO_C13, PIN_MODE_OUTPUT); + xs_PinWrite(GPIO_C13, PIN_LOW); + + while(1){ + xs_DelayKThread(1); + } +} +```
因为测试单板为cortex-m4单板,该系列单板的线程切换是基于pendSV CPU异常进行线程切换,因此下面基于该特点区分测试场景: -* 测量pendSV异常切换: 在SwitchKthreadContext函数入口处将C13管脚置为高电平,在pendSV异常处理过程,保存现场之后,切换到目标任务之前将C13管脚置为低电平。得出的管脚电平时间即为带pendSV异常的的任务切换时间。 -* 只测了SwitchKthreadContext:在SwitchKthreadContext函数入口处将C13管脚置为高电平,在出口位置,将C13管脚置为低电平。得出的管脚电平时间即为不计算pendSV异常的的任务切换时间。 +* 测量pendSV异常切换,在SwitchKthreadContext函数入口处将C13管脚置为高电平,在pendSV异常处理过程,保存现场之后,切换到目标任务之前将C13管脚置为低电平。得出的管脚电平时间即为带pendSV异常的的任务切换时间。 +* 只测了SwitchKthreadContext,在SwitchKthreadContext函数入口处将C13管脚置为高电平,在出口位置,将C13管脚置为低电平。得出的管脚电平时间即为不计算pendSV异常的的任务切换时间。 -
+```c +xs_SwitchKthreadContext: + /* 将GPIO C13置为高电平 */ + LDR r2, =0x40020818 // 测试代码 + MOV r3, #0x2000 // 测试代码 + STR r3, [r2] // 测试代码 -![RISCV TEST CONNECT](./imagesrc/arm_test_switch.png) + LDR r2, =xs_KthreadSwitchInterruptFlag + LDR r3, [r2] + CMP r3, #1 + BEQ _reswitch + MOV r3, #1 + STR r3, [r2] -
+ LDR r2, =xs_InterruptFromKthread + STR r0, [r2] -
+_reswitch: + LDR r2, =xs_InterruptToKthread + STR r1, [r2] -![RISCV TEST CONNECT](./imagesrc/arm_test_switch1.png) + LDR r0, =NVIC_INT_CTRL + LDR r2, =NVIC_PENDSVSET + STR r1, [r0] -
+ /* 将GPIO C13置为低电平 */ + LDR r2, =0x4002081a // 测试代码 + MOV r3, #0x2000 // 测试代码 + STR r3, [r2] // 测试代码 + + BX LR + +.global PendSV_Handler +.type PendSV_Handler, %function +PendSV_Handler: + MRS r2, PRIMASK + CPSID I + + LDR r0, =xs_KthreadSwitchInterruptFlag + LDR r1, [r0] + CBZ r1, pendsv_exit + + MOV r1, #0x00 + STR r1, [r0] + + LDR r0, =xs_InterruptFromKthread + LDR r1, [r0] + CBZ r1, switch_to_thread + + MRS r1, psp + + STMFD r1!, {r4 - r11} + +#if defined (__VFP_FP__) && !defined(__SOFTFP__) + MOV r4, #0x00 + + TST lr, #0x10 + MOVEQ r4, #0x01 + + STMFD r1!, {r4} +#endif + + LDR r0, [r0] + STR r1, [r0] + +switch_to_thread: + /* 将GPIO C13置为低电平 */ + LDR r2, =0x4002081a // 测试代码 + MOV r3, #0x2000 // 测试代码 + STR r3, [r2] // 测试代码 +``` #### 示波器测试选项设置 @@ -720,7 +790,7 @@ XiUOS的任务切换函数为xs_SwitchKthreadContext,在SwitchKthreadContext * 反相:关闭 * 触发设置 * 类型:边沿 - * 信源: CH1 + * 信源: CH1 * 斜率:上升 * 模式:自动 * 触发电压:略低于最高电平即可 @@ -738,14 +808,14 @@ XiUOS的任务切换函数为xs_SwitchKthreadContext,在SwitchKthreadContext -从示波器测试结果上来看,单独测试SwitchKthreadContext的执行时间是1.26us。 +从示波器测试结果上来看,单独测试 SwitchKthreadContext 的执行时间是1.26us。
![RISCV TEST CONNECT](./imagesrc/arm_test_result1.png)
-从示波器测试结果上来看,测试SwitchKthreadContext加上pendSV异常的的执行时间是17us。 +从示波器测试结果上来看,测试 SwitchKthreadContext 加上 pendSV 异常的的执行时间是17us。 @@ -763,23 +833,65 @@ XiUOS的任务切换函数为xs_SwitchKthreadContext,在SwitchKthreadContext -XiUOS的任务切换函数为xs_SwitchKthreadContext,在SwitchKthreadContext函数入口位置将GPIO18管脚置为高电平,出口位置置为低电平;则GPIO18管脚保持高电平的时间即切换时间。 +XiUOS的任务切换函数为 xs_SwitchKthreadContext,在 SwitchKthreadContext 函数入口位置将 GPIO18 管脚置为高电平,出口位置置为低电平;则GPIO18管脚保持高电平的时间即切换时间。 #### 编程代码清单 -
+```c +void realtime_taskswitch_test() +{ + xs_PinMode(GPIO_18, PIN_MODE_OUTPUT); + xs_PinWrite(GPIO_18, PIN_LOW); + while(1){ + xs_DelayKThread(1); + } +} +``` -![RISCV TEST CONNECT](./imagesrc/riscv_test_code.png) - -
初始化GPIO18为输出模式,并初始化为低电平;在while(1)当中调用delay函数,每隔1个时间片发生一次调度。在下面的switch函数入口和出口位置操作GPIO。 -
+```c +.global xs_SwitchKthreadContext +xs_SwitchKthreadContext: + /* 将 GPIO18 置为高电平 */ + lui a5, 0x38001 // 测试代码 + addi a5, a5, 12 // 测试代码 + lw a5, 0(a5) // 测试代码 + sext.w a4, a5 // 测试代码 + lui a5, 0x38001 // 测试代码 + addi a5, a5, 12 // 测试代码 + ori a4, a4, 5 // 测试代码 + sext.w a4, a4 // 测试代码 + sw a4, 0(a5) // 测试代码 -![RISCV TEST CONNECT](./imagesrc/riscv_test_switch.png) + addi sp, sp, -32 * REGBYTES + STORE sp, (a0) -
+ STORE x1, 0 * REGBYTES(sp) + STORE x1, 1 * REGBYTES(sp) + + csrr a0, mstatus + andi a0, a0, 8 + beqz a0, save_mpie + li a0, 0x80 +> save_mpie: ... + +> #ifdef XS_USING_SMP ... + #endif + /* 将GPIO18 置为低电平 */ + lui a5, 0x38001 // 测试代码 + addi a5, a5, 12 // 测试代码 + lw a5, 0(a5) // 测试代码 + sext.w a4, a5 // 测试代码 + lui a5, 0x38001 // 测试代码 + addi a5, a5, 12 // 测试代码 + addi a4, a4, -6 // 测试代码 + sext.w a4, a4 // 测试代码 + sw a4, 0(a5) // 测试代码 + + j xs_switch_kthread_context_exit +``` ### 示波器测试选项设置 @@ -791,7 +903,7 @@ XiUOS的任务切换函数为xs_SwitchKthreadContext,在SwitchKthreadContext * 反相:关闭 * 触发设置 * 类型:边沿 - * 信源: CH1 + * 信源: CH1 * 斜率:上升 * 模式:自动 * 触发电压:略低于最高电平即可 @@ -810,7 +922,7 @@ XiUOS的任务切换函数为xs_SwitchKthreadContext,在SwitchKthreadContext -从示波器测试结果上来看,测试SwitchKthreadContext的执行时间是160ns. +从示波器测试结果上来看,测试 SwitchKthreadContext 的执行时间是160ns。 @@ -822,11 +934,11 @@ XiUOS的任务切换函数为xs_SwitchKthreadContext,在SwitchKthreadContext | XiUOS | KD233开发板 | RISC-V K210 主频 400MHz | 160 | | XiUOS | STM32F407G-DISC1开发板 | STM32f407 主频 168MHz | 1260 | -结果分析: -* XiUOS在RISC-V K210 400MHz CPU主频上任务切换时间为 160 ns低于sylixos的 577.1 ns -* 若进行同等1GHz主频换算,K210上的任务切换时间应为 62.5 ns,XiUOS的任务切换的效率比sylixos提高 89.16% +结果分析: +* XiUOS 在RISC-V K210 400MHz CPU主频上任务切换时间为 160 ns 低于 sylixos 的 577.1 ns +* 若进行同等1 GHz 主频换算,K210 上的任务切换时间应为 62.5 ns,XiUOS 的任务切换的效率比 sylixos 提高 89.16% * 在ARM stm32f407 168MHz CPU主频任务切换时间 1260 ns高于1GHz主频测试的sylixos -* 若进行同等1GHz主频换算,STM32F407上的任务切换时间应为 206.718 ns,XiUOS的任务切换的效率比sylixos提高 64.18% +* 若进行同等1 GHz 主频换算,STM32F407 上的任务切换时间应为 206.718 ns,XiUOS 的任务切换的效率比 sylixos 提高 64.18% 由于XiUOS优化了任务切换的流程,减少了执行指令数,因此,同等主频条件下,任务切换时间更短。