From dad9e354a89ca702ed72d82dce9e76cb69a310d7 Mon Sep 17 00:00:00 2001 From: zqy <695961496@qq.com> Date: Fri, 25 Jul 2025 15:33:38 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E6=AC=A1=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../day1\347\254\224\350\256\260.md" | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 "2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\347\254\224\350\256\260/day1\347\254\224\350\256\260.md" diff --git "a/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\347\254\224\350\256\260/day1\347\254\224\350\256\260.md" "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\347\254\224\350\256\260/day1\347\254\224\350\256\260.md" new file mode 100644 index 0000000..6a3994c --- /dev/null +++ "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\347\254\224\350\256\260/day1\347\254\224\350\256\260.md" @@ -0,0 +1,27 @@ +# Day1 Notes +git基本使用 +git init //初始化仓库 + +git status + +git add . //添加至暂存区 + +git commit -m "提交说明" //提交 + +git log //查看存档记录 + +git branch -a //查看当前所有分支 + +git switch master //切换分支“master” + +git checkout -b first //创建分支“first" + +git reset --hard HEAD~ //硬重置、撤销一个git命令 + +git reset --soft HEAD~ //软重置、回到上一步 + +git push origin first_notes /推送远程仓库“first_notes",或vs code上点“发布Branch” + +//------------------------------------------------ + +env编码、vscode、git bash、环境搭建 \ No newline at end of file -- Gitee From 0674877f9564e1b406a9ae3c86f2c97ff93891d8 Mon Sep 17 00:00:00 2001 From: zqy <695961496@qq.com> Date: Fri, 25 Jul 2025 21:46:54 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E5=A4=A9=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\344\275\234\344\270\232/day2_homework.c" | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 "2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day2_homework.c" diff --git "a/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day2_homework.c" "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day2_homework.c" new file mode 100644 index 0000000..3a791bf --- /dev/null +++ "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day2_homework.c" @@ -0,0 +1,89 @@ + /* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-11-06 SummerGift first version + * 2018-11-19 flybreak add stm32f407-atk-explorer bsp + */ + +#include +#include +#include + +void high_prio_thread(void *parameter) +{ + int count = 0; + while(1) + { + rt_kprintf("High priority thread running - count: %d\r\n", count++); + rt_thread_mdelay(500); + } +} + +void mid_prio_thread1(void *parameter) +{ + int count = 0; + while(1) + { + rt_kprintf("Mid priority thread 1 running - count: %d\r\n", count++); + rt_thread_mdelay(100); + } +} + +void mid_prio_thread2(void *parameter) +{ + int count = 0; + while(1) + { + rt_kprintf("Mid priority thread 2 running - count: %d\r\n", count++); + rt_thread_mdelay(100); + } +} + +void low_prio_thread(void *parameter) +{ + int count = 0; + while(1) + { + rt_kprintf("Low priority thread running - count: %d\r\n", count++); + rt_thread_mdelay(1000); + } +} + +rt_thread_t high_tid = RT_NULL; +rt_thread_t mid1_tid = RT_NULL; +rt_thread_t mid2_tid = RT_NULL; +rt_thread_t low_tid = RT_NULL; + +int main(void) +{ + high_tid = rt_thread_create("high", high_prio_thread, RT_NULL, 1024, 15, 5); //高优先级抢占中、低优先级 + if(high_tid != RT_NULL) + { + rt_thread_startup(high_tid); + } + + + mid1_tid = rt_thread_create("mid1", mid_prio_thread1, RT_NULL, 1024, 10, 5); //中优先级轮换,和main同级 + if(mid1_tid != RT_NULL) + { + rt_thread_startup(mid1_tid); + } + + mid2_tid = rt_thread_create("mid2", mid_prio_thread2, RT_NULL, 1024, 10, 5); //中优先级轮换,和main同级 + if(mid2_tid != RT_NULL) + { + rt_thread_startup(mid2_tid); + } + + low_tid = rt_thread_create("low", low_prio_thread, RT_NULL, 1024, 5, 5); //低优先级,比mian低 + if(low_tid != RT_NULL) + { + rt_thread_startup(low_tid); + } + rt_kprintf("Main thread running and exiting\r\n"); + return RT_EOK; +} \ No newline at end of file -- Gitee From 1c61b263e074b2adbd36e6a633033104ebee5517 Mon Sep 17 00:00:00 2001 From: zqy <695961496@qq.com> Date: Sat, 26 Jul 2025 22:12:47 +0800 Subject: [PATCH 3/6] day3 --- .../day3_homework/event_set_sample.c" | 245 ++++++++++++ .../day3_homework/mailbox_sample.c" | 209 ++++++++++ .../day3_homework/msgq_sample.c" | 201 ++++++++++ .../day3_homework/mutex_sample.c" | 175 ++++++++ .../day3_homework/semaphore_sample.c" | 137 +++++++ .../day3_homework/signal_sample.c" | 94 +++++ .../day3\347\254\224\350\256\260.md" | 377 ++++++++++++++++++ 7 files changed, 1438 insertions(+) create mode 100644 "2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day3_homework/event_set_sample.c" create mode 100644 "2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day3_homework/mailbox_sample.c" create mode 100644 "2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day3_homework/msgq_sample.c" create mode 100644 "2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day3_homework/mutex_sample.c" create mode 100644 "2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day3_homework/semaphore_sample.c" create mode 100644 "2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day3_homework/signal_sample.c" create mode 100644 "2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\347\254\224\350\256\260/day3\347\254\224\350\256\260.md" diff --git "a/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day3_homework/event_set_sample.c" "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day3_homework/event_set_sample.c" new file mode 100644 index 0000000..7c8f728 --- /dev/null +++ "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day3_homework/event_set_sample.c" @@ -0,0 +1,245 @@ +/* + * Copyright (c) 2006-2022, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ + +/* + * 程序清单:事件集例程 + * + * 程序会初始化3个线程及一个静态事件对象 + * 线程1等待于事件对象上,处理多种事件组合; + * 线程2和线程3发送不同的事件组合 + * 展示事件集如何灵活处理多个事件的组合触发 +*/ +#include + +#define THREAD_PRIORITY 9 +#define THREAD_TIMESLICE 5 + +/* 定义多个事件标志,组成事件集 */ +#define EVENT_FLAG1 (1 << 0) // 事件1 +#define EVENT_FLAG2 (1 << 1) // 事件2 +#define EVENT_FLAG3 (1 << 2) // 事件3 +#define EVENT_FLAG4 (1 << 3) // 事件4 +#define EVENT_FLAG5 (1 << 4) // 事件5 +#define EVENT_FLAG6 (1 << 5) // 事件6 + +/* 事件控制块 */ +static struct rt_event event_set; + +/* 线程1栈空间 */ +#ifdef rt_align +rt_align(RT_ALIGN_SIZE) +#else +ALIGN(RT_ALIGN_SIZE) +#endif +static char thread1_stack[1024]; +static struct rt_thread thread1; + +/* 线程1入口函数:处理各种事件组合 */ +static void thread1_handle_events(void *param) +{ + rt_uint32_t recv_events; + rt_err_t result; + + rt_kprintf("thread1: 开始处理事件集...\n"); + + // 1. 等待事件1或事件2(任意一个) + rt_kprintf("\nthread1: 等待事件1或事件2...\n"); + result = rt_event_recv(&event_set, + (EVENT_FLAG1 | EVENT_FLAG2), + RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR, + RT_WAITING_FOREVER, + &recv_events); + if (result == RT_EOK) + { + rt_kprintf("thread1: 接收到事件 0x%x\n", recv_events); + if (recv_events & EVENT_FLAG1) rt_kprintf("thread1: 处理事件1的逻辑\n"); + if (recv_events & EVENT_FLAG2) rt_kprintf("thread1: 处理事件2的逻辑\n"); + } + + rt_thread_mdelay(500); + + // 2. 等待事件3和事件4(同时发生) + rt_kprintf("\nthread1: 等待事件3和事件4同时发生...\n"); + result = rt_event_recv(&event_set, + (EVENT_FLAG3 | EVENT_FLAG4), + RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR, + RT_WAITING_FOREVER, + &recv_events); + if (result == RT_EOK) + { + rt_kprintf("thread1: 接收到事件 0x%x\n", recv_events); + rt_kprintf("thread1: 处理事件3和事件4同时发生的逻辑\n"); + } + + rt_thread_mdelay(500); + + // 3. 等待事件5,超时时间3秒 + rt_kprintf("\nthread1: 等待事件5(3秒超时)...\n"); + result = rt_event_recv(&event_set, + EVENT_FLAG5, + RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR, + 3000, // 3秒超时 + &recv_events); + if (result == RT_EOK) + { + rt_kprintf("thread1: 接收到事件 0x%x\n", recv_events); + rt_kprintf("thread1: 处理事件5的逻辑\n"); + } + else if (result == -RT_ETIMEOUT) + { + rt_kprintf("thread1: 等待事件5超时!\n"); + } + + rt_thread_mdelay(500); + + // 4. 等待任意事件(事件1-6中的任何一个) + rt_kprintf("\nthread1: 等待任意事件(1-6)...\n"); + result = rt_event_recv(&event_set, + (EVENT_FLAG1 | EVENT_FLAG2 | EVENT_FLAG3 | + EVENT_FLAG4 | EVENT_FLAG5 | EVENT_FLAG6), + RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR, + RT_WAITING_FOREVER, + &recv_events); + if (result == RT_EOK) + { + rt_kprintf("thread1: 接收到事件 0x%x\n", recv_events); + rt_kprintf("thread1: 处理剩余事件的逻辑\n"); + } + + rt_kprintf("\nthread1: 事件处理完成,退出\n"); +} + +/* 线程2栈空间 */ +#ifdef rt_align +rt_align(RT_ALIGN_SIZE) +#else +ALIGN(RT_ALIGN_SIZE) +#endif +static char thread2_stack[1024]; +static struct rt_thread thread2; + +/* 线程2入口:发送事件组合A */ +static void thread2_send_events_a(void *param) +{ + rt_kprintf("\nthread2: 启动,开始发送事件...\n"); + + // 发送事件1 + rt_thread_mdelay(1000); + rt_kprintf("\nthread2: 发送事件1\n"); + rt_event_send(&event_set, EVENT_FLAG1); + + // 发送事件3 + rt_thread_mdelay(800); + rt_kprintf("thread2: 发送事件3\n"); + rt_event_send(&event_set, EVENT_FLAG3); + + // 发送事件4(与事件3组成AND条件) + rt_thread_mdelay(600); + rt_kprintf("thread2: 发送事件4\n"); + rt_event_send(&event_set, EVENT_FLAG4); + + // 发送事件6 + rt_thread_mdelay(1200); + rt_kprintf("thread2: 发送事件6\n"); + rt_event_send(&event_set, EVENT_FLAG6); + + rt_kprintf("thread2: 完成发送,退出\n"); +} + +/* 线程3栈空间 */ +#ifdef rt_align +rt_align(RT_ALIGN_SIZE) +#else +ALIGN(RT_ALIGN_SIZE) +#endif +static char thread3_stack[1024]; +static struct rt_thread thread3; + +/* 线程3入口:发送事件组合B */ +static void thread3_send_events_b(void *param) +{ + rt_kprintf("\nthread3: 启动,开始发送事件...\n"); + + // 等待一段时间,让线程1先进入等待状态 + rt_thread_mdelay(500); + + // 发送事件2 + rt_thread_mdelay(700); + rt_kprintf("\nthread3: 发送事件2\n"); + rt_event_send(&event_set, EVENT_FLAG2); + + // 发送事件3(再次发送) + rt_thread_mdelay(900); + rt_kprintf("thread3: 发送事件3\n"); + rt_event_send(&event_set, EVENT_FLAG3); + + // 发送事件5(但故意晚于超时时间) + rt_thread_mdelay(4000); // 超过3秒的等待时间 + rt_kprintf("thread3: 发送事件5(超时后)\n"); + rt_event_send(&event_set, EVENT_FLAG5); + + rt_kprintf("thread3: 完成发送,退出\n"); +} + +int event_set_sample(void) +{ + rt_err_t result; + + /* 初始化事件集对象 */ + result = rt_event_init(&event_set, "event_set", RT_IPC_FLAG_PRIO); + if (result != RT_EOK) + { + rt_kprintf("初始化事件集失败!\n"); + return -1; + } + + /* 初始化并启动线程1:事件处理线程 */ + rt_thread_init(&thread1, + "thread1", + thread1_handle_events, + RT_NULL, + &thread1_stack[0], + sizeof(thread1_stack), + THREAD_PRIORITY - 1, THREAD_TIMESLICE); +#ifdef RT_USING_SMP + rt_thread_control(&thread1, RT_THREAD_CTRL_BIND_CPU, (void*)0); +#endif + rt_thread_startup(&thread1); + + /* 初始化并启动线程2:事件发送线程A */ + rt_thread_init(&thread2, + "thread2", + thread2_send_events_a, + RT_NULL, + &thread2_stack[0], + sizeof(thread2_stack), + THREAD_PRIORITY, THREAD_TIMESLICE); +#ifdef RT_USING_SMP + rt_thread_control(&thread2, RT_THREAD_CTRL_BIND_CPU, (void*)0); +#endif + rt_thread_startup(&thread2); + + /* 初始化并启动线程3:事件发送线程B */ + rt_thread_init(&thread3, + "thread3", + thread3_send_events_b, + RT_NULL, + &thread3_stack[0], + sizeof(thread3_stack), + THREAD_PRIORITY, THREAD_TIMESLICE); +#ifdef RT_USING_SMP + rt_thread_control(&thread3, RT_THREAD_CTRL_BIND_CPU, (void*)0); +#endif + rt_thread_startup(&thread3); + + return 0; +} + +/* 导出到 msh 命令列表中 */ +MSH_CMD_EXPORT(event_set_sample, event set sample); diff --git "a/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day3_homework/mailbox_sample.c" "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day3_homework/mailbox_sample.c" new file mode 100644 index 0000000..698fd08 --- /dev/null +++ "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day3_homework/mailbox_sample.c" @@ -0,0 +1,209 @@ +/* + * Copyright (c) 2006-2022, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-08-24 yangjie the first version + * 2023-07-26 Modified 增强邮箱作用展示 + */ + +/* + * 程序清单:邮箱例程(增强版) + * + * 该例程创建2个线程和1个邮箱,展示邮箱如何在线程间传递不同类型的消息 + * 发送线程会发送多种类型的邮件(命令、数据、状态等) + * 接收线程会根据邮件内容进行相应处理,体现邮箱传递数据和指令的作用 + */ +#include + +#define THREAD_PRIORITY 10 +#define THREAD_TIMESLICE 5 +#define MAILBOX_SIZE 8 // 邮箱可容纳的最大邮件数 + +/* 邮箱控制块 */ +static struct rt_mailbox mb; +/* 用于放邮件的内存池 */ +static char mb_pool[MAILBOX_SIZE * sizeof(rt_ubase_t)]; + +/* 定义不同类型的邮件内容 */ +static struct mail_data { + rt_uint8_t type; // 邮件类型:1-命令 2-数据 3-状态 4-结束 + rt_uint8_t data; // 数据内容 + char desc[20]; // 描述信息 +} mail1, mail2, mail3, mail_end; + +#ifdef rt_align +rt_align(RT_ALIGN_SIZE) +#else +ALIGN(RT_ALIGN_SIZE) +#endif +static char thread1_stack[1024]; +static struct rt_thread thread1; + +/* 线程1入口:接收并处理邮件 */ +static void thread1_entry(void *parameter) +{ + struct mail_data *mail; + rt_err_t result; + rt_uint8_t count = 0; + + rt_kprintf("接收线程: 开始等待邮件...\n"); + + while (1) + { + /* 从邮箱中收取邮件,超时时间5秒 */ + result = rt_mb_recv(&mb, (rt_ubase_t *)&mail, 5000); + if (result == RT_EOK) + { + count++; + /* 根据邮件类型处理 */ + rt_kprintf("\n接收线程: 收到第%d封邮件\n", count); + rt_kprintf("接收线程: 类型=%d, 数据=%d, 描述=%s\n", + mail->type, mail->data, mail->desc); + + /* 如果是结束邮件则退出循环 */ + if (mail->type == 4) + { + rt_kprintf("接收线程: 收到结束邮件,准备退出\n"); + break; + } + + /* 模拟处理邮件的耗时 */ + rt_thread_mdelay(150); + } + else if (result == -RT_ETIMEOUT) + { + rt_kprintf("接收线程: 等待邮件超时\n"); + } + else + { + rt_kprintf("接收线程: 接收邮件失败,错误码: %d\n", result); + break; + } + } + + /* 执行邮箱对象脱离 */ + rt_mb_detach(&mb); + rt_kprintf("接收线程: 退出\n"); +} + +#ifdef rt_align +rt_align(RT_ALIGN_SIZE) +#else +ALIGN(RT_ALIGN_SIZE) +#endif +static char thread2_stack[1024]; +static struct rt_thread thread2; + +/* 线程2入口:发送邮件 */ +static void thread2_entry(void *parameter) +{ + rt_err_t result; + rt_uint8_t i; + + /* 初始化邮件内容 */ + mail1.type = 1; + mail1.data = 0x01; + rt_strncpy(mail1.desc, "启动设备", sizeof(mail1.desc)-1); + + mail2.type = 2; + mail2.data = 0x20; + rt_strncpy(mail2.desc, "温度数据", sizeof(mail2.desc)-1); + + mail3.type = 3; + mail3.data = 0x00; + rt_strncpy(mail3.desc, "运行正常", sizeof(mail3.desc)-1); + + mail_end.type = 4; + mail_end.data = 0xFF; + rt_strncpy(mail_end.desc, "任务完成", sizeof(mail_end.desc)-1); + + rt_kprintf("发送线程: 开始发送邮件...\n"); + + /* 循环发送几封不同类型的邮件 */ + for (i = 0; i < 5; i++) + { + /* 轮流发送不同类型的邮件 */ + if (i % 3 == 0) + { + result = rt_mb_send(&mb, (rt_uint32_t)&mail1); + if (result == RT_EOK) + rt_kprintf("发送线程: 发送命令邮件\n"); + } + else if (i % 3 == 1) + { + result = rt_mb_send(&mb, (rt_uint32_t)&mail2); + if (result == RT_EOK) + rt_kprintf("发送线程: 发送数据邮件\n"); + } + else + { + result = rt_mb_send(&mb, (rt_uint32_t)&mail3); + if (result == RT_EOK) + rt_kprintf("发送线程: 发送状态邮件\n"); + } + + if (result != RT_EOK) + { + rt_kprintf("发送线程: 发送邮件失败,错误码: %d\n", result); + } + + /* 间隔一段时间再发送下一封邮件 */ + rt_thread_mdelay(300); + } + + /* 发送结束邮件 */ + rt_mb_send(&mb, (rt_uint32_t)&mail_end); + rt_kprintf("发送线程: 发送结束邮件,退出\n"); +} + +int mailbox_sample(void) +{ + rt_err_t result; + + /* 初始化邮箱 */ + result = rt_mb_init(&mb, + "mbt", /* 名称是mbt */ + &mb_pool[0], /* 邮箱用到的内存池 */ + MAILBOX_SIZE, /* 邮箱可容纳的邮件数 */ + RT_IPC_FLAG_PRIO); /* 采用PRIO方式进行线程等待 */ + if (result != RT_EOK) + { + rt_kprintf("初始化邮箱失败!\n"); + return -1; + } + rt_kprintf("初始化邮箱成功,容量: %d封邮件\n", MAILBOX_SIZE); + + /* 初始化并启动接收线程 */ + rt_thread_init(&thread1, + "recv_th", + thread1_entry, + RT_NULL, + &thread1_stack[0], + sizeof(thread1_stack), + THREAD_PRIORITY, THREAD_TIMESLICE); +#ifdef RT_USING_SMP + rt_thread_control(&thread1, RT_THREAD_CTRL_BIND_CPU, (void*)0); +#endif + rt_thread_startup(&thread1); + + /* 初始化并启动发送线程 */ + rt_thread_init(&thread2, + "send_th", + thread2_entry, + RT_NULL, + &thread2_stack[0], + sizeof(thread2_stack), + THREAD_PRIORITY, THREAD_TIMESLICE); +#ifdef RT_USING_SMP + rt_thread_control(&thread2, RT_THREAD_CTRL_BIND_CPU, (void*)0); +#endif + rt_thread_startup(&thread2); + + return 0; +} + +/* 导出到 msh 命令列表中 */ +MSH_CMD_EXPORT(mailbox_sample, mailbox sample); \ No newline at end of file diff --git "a/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day3_homework/msgq_sample.c" "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day3_homework/msgq_sample.c" new file mode 100644 index 0000000..29d8af4 --- /dev/null +++ "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day3_homework/msgq_sample.c" @@ -0,0 +1,201 @@ +/* + * Copyright (c) 2006-2022, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-08-24 yangjie the first version + * 2023-07-26 Modified 增强消息队列作用展示 + */ + +/* + * 程序清单:消息队列例程(增强版) + * + * 展示消息队列的三大核心作用: + * 1. 线程间异步通信 + * 2. 消息缓冲(应对消息发送速度快于处理速度的场景) + * 3. 支持紧急消息优先处理 + */ +#include + +#define THREAD_PRIORITY 25 +#define THREAD_TIMESLICE 5 +#define MSG_QUEUE_SIZE 10 // 消息队列可容纳的最大消息数 +#define MSG_MAX_SIZE 32 // 单个消息的最大长度 + +/* 定义消息结构体,包含消息类型和内容 */ +struct message { + rt_uint8_t type; // 消息类型:1-普通 2-紧急 3-结束 + rt_uint8_t id; // 消息ID + char content[20]; // 消息内容 +}; + +/* 消息队列控制块 */ +static struct rt_messagequeue mq; +/* 消息队列中用到的内存池 */ +static rt_uint8_t msg_pool[MSG_QUEUE_SIZE * MSG_MAX_SIZE]; + +#ifdef rt_align +rt_align(RT_ALIGN_SIZE) +#else +ALIGN(RT_ALIGN_SIZE) +#endif +static char thread1_stack[1024]; +static struct rt_thread thread1; + +/* 线程1入口:消息处理线程 */ +static void thread1_entry(void *parameter) +{ + struct message msg; + rt_err_t result; + rt_uint8_t cnt = 0; + + rt_kprintf("处理线程: 开始等待消息...\n"); + + while (1) + { + /* 从消息队列接收消息,超时时间3秒 */ + result = rt_mq_recv(&mq, &msg, sizeof(struct message), 3000); + if (result == RT_EOK) + { + cnt++; + rt_kprintf("\n处理线程: 收到第%d条消息\n", cnt); + rt_kprintf("处理线程: 类型=%s, ID=%d, 内容=%s\n", + (msg.type == 1) ? "普通" : (msg.type == 2) ? "紧急" : "结束", + msg.id, msg.content); + + /* 如果是结束消息则退出 */ + if (msg.type == 3) + { + rt_kprintf("处理线程: 收到结束消息,准备退出\n"); + break; + } + + /* 模拟消息处理耗时(普通消息处理慢,紧急消息处理快) */ + rt_thread_mdelay(msg.type == 2 ? 100 : 300); + } + else if (result == -RT_ETIMEOUT) + { + rt_kprintf("处理线程: 等待消息超时\n"); + } + else + { + rt_kprintf("处理线程: 接收消息失败,错误码: %d\n", result); + break; + } + } + + rt_kprintf("处理线程: 完成所有消息处理,退出\n"); + rt_mq_detach(&mq); +} + +#ifdef rt_align +rt_align(RT_ALIGN_SIZE) +#else +ALIGN(RT_ALIGN_SIZE) +#endif +static char thread2_stack[1024]; +static struct rt_thread thread2; + +/* 线程2入口:消息发送线程 */ +static void thread2_entry(void *parameter) +{ + struct message msg; + rt_err_t result; + rt_uint8_t cnt = 0; + + rt_kprintf("发送线程: 开始发送消息...\n"); + + while (cnt < 15) // 共发送15条消息 + { + cnt++; + msg.id = cnt; + + // 每5条消息发送1条紧急消息 + if (cnt % 5 == 0) + { + msg.type = 2; + rt_sprintf(msg.content, "紧急通知 #%d", cnt); + // 发送紧急消息(插入到队列头部) + result = rt_mq_urgent(&mq, &msg, sizeof(struct message)); + rt_kprintf("发送线程: 发送紧急消息 ID=%d\n", cnt); + } + else + { + msg.type = 1; + rt_sprintf(msg.content, "普通消息 #%d", cnt); + // 发送普通消息 + result = rt_mq_send(&mq, &msg, sizeof(struct message)); + rt_kprintf("发送线程: 发送普通消息 ID=%d\n", cnt); + } + + if (result != RT_EOK) + { + rt_kprintf("发送线程: 消息发送失败 (ID=%d),错误码: %d\n", cnt, result); + } + + /* 控制发送速度:普通消息间隔短,突出队列缓冲作用 */ + rt_thread_mdelay(100); + } + + // 发送结束消息 + msg.type = 3; + msg.id = cnt++; + rt_sprintf(msg.content, "所有消息发送完毕"); + rt_mq_send(&mq, &msg, sizeof(struct message)); + rt_kprintf("发送线程: 发送结束消息,退出\n"); +} + +/* 消息队列示例初始化 */ +int msgq_sample(void) +{ + rt_err_t result; + + /* 初始化消息队列 */ + result = rt_mq_init(&mq, + "msg_q", + msg_pool, /* 消息内存池 */ + MSG_MAX_SIZE, /* 单个消息最大长度 */ + sizeof(msg_pool), /* 内存池总大小 */ + RT_IPC_FLAG_PRIO); /* 按优先级等待 */ + + if (result != RT_EOK) + { + rt_kprintf("初始化消息队列失败!\n"); + return -1; + } + rt_kprintf("初始化消息队列成功,容量: %d条消息,单条最大: %d字节\n", + MSG_QUEUE_SIZE, MSG_MAX_SIZE); + + /* 初始化并启动处理线程 */ + rt_thread_init(&thread1, + "handler", + thread1_entry, + RT_NULL, + &thread1_stack[0], + sizeof(thread1_stack), + THREAD_PRIORITY, THREAD_TIMESLICE); +#ifdef RT_USING_SMP + rt_thread_control(&thread1, RT_THREAD_CTRL_BIND_CPU, (void*)0); +#endif + rt_thread_startup(&thread1); + + /* 初始化并启动发送线程 */ + rt_thread_init(&thread2, + "sender", + thread2_entry, + RT_NULL, + &thread2_stack[0], + sizeof(thread2_stack), + THREAD_PRIORITY, THREAD_TIMESLICE); +#ifdef RT_USING_SMP + rt_thread_control(&thread2, RT_THREAD_CTRL_BIND_CPU, (void*)0); +#endif + rt_thread_startup(&thread2); + + return 0; +} + +/* 导出到 msh 命令列表中 */ +MSH_CMD_EXPORT(msgq_sample, message queue sample); \ No newline at end of file diff --git "a/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day3_homework/mutex_sample.c" "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day3_homework/mutex_sample.c" new file mode 100644 index 0000000..afaad4f --- /dev/null +++ "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day3_homework/mutex_sample.c" @@ -0,0 +1,175 @@ +/* + * Copyright (c) 2006-2022, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-08-24 yangjie the first version + * 2023-07-26 Modified 增强输出以体现互斥量作用 + */ + +/* + * 程序清单:互斥锁例程 + * + * 先演示不使用互斥锁时,number1和number2会出现不一致 + * 再演示使用互斥锁后,number1和number2始终保持一致 + * 清晰展示互斥量如何保护共享资源 + */ +#include + +#define THREAD_PRIORITY 8 +#define THREAD_TIMESLICE 5 +#define MAX_COUNT 30 // 最大计数次数 + +/* 指向互斥量的指针 */ +static rt_mutex_t dynamic_mutex = RT_NULL; +static rt_uint8_t number1, number2 = 0; +static rt_bool_t use_mutex = RT_FALSE; // 是否使用互斥锁的标志 + +#ifdef rt_align +rt_align(RT_ALIGN_SIZE) +#else +ALIGN(RT_ALIGN_SIZE) +#endif +static char thread1_stack[1024]; +static struct rt_thread thread1; +static void rt_thread_entry1(void *parameter) +{ + rt_uint8_t count = 0; + + while (count < MAX_COUNT) + { + /* 根据标志决定是否使用互斥锁 */ + if (use_mutex) + rt_mutex_take(dynamic_mutex, RT_WAITING_FOREVER); + + /* 对共享资源进行操作 */ + number1++; + rt_thread_mdelay(10); // 延迟放大线程切换概率 + number2++; + + if (use_mutex) + rt_mutex_release(dynamic_mutex); + + count++; + rt_thread_mdelay(5); // 给其他线程运行机会 + } + rt_kprintf("线程1完成操作\n"); +} + +#ifdef rt_align +rt_align(RT_ALIGN_SIZE) +#else +ALIGN(RT_ALIGN_SIZE) +#endif +static char thread2_stack[1024]; +static struct rt_thread thread2; +static void rt_thread_entry2(void *parameter) +{ + rt_uint8_t count = 0; + + while (count < MAX_COUNT) + { + /* 根据标志决定是否使用互斥锁 */ + if (use_mutex) + rt_mutex_take(dynamic_mutex, RT_WAITING_FOREVER); + + /* 检查共享资源的一致性 */ + if (number1 != number2) + { + rt_kprintf("[%s] 数据不一致! number1 = %d, number2 = %d\n", + use_mutex ? "使用互斥锁" : "不使用互斥锁", + number1, number2); + } + else if (count % 5 == 0) // 每5次输出一次正常信息 + { + rt_kprintf("[%s] 数据一致: number1 = number2 = %d\n", + use_mutex ? "使用互斥锁" : "不使用互斥锁", + number1); + } + + /* 对共享资源进行操作 */ + number1++; + number2++; + + if (use_mutex) + rt_mutex_release(dynamic_mutex); + + count++; + rt_thread_mdelay(5); // 给其他线程运行机会 + } + rt_kprintf("线程2完成操作\n"); +} + +/* 先运行无锁场景,再运行有锁场景 */ +static void run_test(const char *desc, rt_bool_t use) +{ + number1 = 0; + number2 = 0; + use_mutex = use; + + rt_kprintf("\n===== %s 测试开始 =====", desc); + rt_kprintf("\n预期结果: %s\n", + use ? "number1和number2始终相等" : "number1和number2会出现不等"); + + /* 初始化并启动线程 */ + rt_thread_init(&thread1, + "thread1", + rt_thread_entry1, + RT_NULL, + &thread1_stack[0], + sizeof(thread1_stack), + THREAD_PRIORITY, THREAD_TIMESLICE); +#ifdef RT_USING_SMP + rt_thread_control(&thread1, RT_THREAD_CTRL_BIND_CPU, (void*)0); +#endif + rt_thread_startup(&thread1); + + rt_thread_init(&thread2, + "thread2", + rt_thread_entry2, + RT_NULL, + &thread2_stack[0], + sizeof(thread2_stack), + THREAD_PRIORITY - 1, THREAD_TIMESLICE); +#ifdef RT_USING_SMP + rt_thread_control(&thread2, RT_THREAD_CTRL_BIND_CPU, (void*)0); +#endif + rt_thread_startup(&thread2); + + /* 等待线程完成 */ + rt_thread_mdelay(3000); + rt_kprintf("===== %s 测试结束 =====\n", desc); +} + +/* 互斥量示例的初始化 */ +int mutex_sample(void) +{ + /* 第一步:不使用互斥锁,展示数据不一致问题 */ + run_test("不使用互斥锁", RT_FALSE); + + /* 等待输出完成 */ + rt_thread_mdelay(1000); + + /* 创建互斥锁 */ + dynamic_mutex = rt_mutex_create("dmutex", RT_IPC_FLAG_PRIO); + if (dynamic_mutex == RT_NULL) + { + rt_kprintf("创建互斥锁失败!\n"); + return -1; + } + + /* 第二步:使用互斥锁,展示数据一致性 */ + run_test("使用互斥锁", RT_TRUE); + + /* 清理资源 */ + rt_mutex_delete(dynamic_mutex); + dynamic_mutex = RT_NULL; + + rt_kprintf("\n测试结论: 互斥锁能够有效保护共享资源,确保操作的原子性\n"); + return 0; +} + +/* 导出到 msh 命令列表中 */ +MSH_CMD_EXPORT(mutex_sample, mutex sample); \ No newline at end of file diff --git "a/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day3_homework/semaphore_sample.c" "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day3_homework/semaphore_sample.c" new file mode 100644 index 0000000..d41e1dc --- /dev/null +++ "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day3_homework/semaphore_sample.c" @@ -0,0 +1,137 @@ +/* + * Copyright (c) 2006-2022, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-08-24 yangjie the first version + * 2023-07-26 Modified 修复潜在问题,增强信号量作用展示 + */ + +#include + +#define THREAD_PRIORITY 25 +#define THREAD_TIMESLICE 5 +#define MAX_COUNT 50 // 最大计数次数 + +/* 指向信号量的指针 */ +static rt_sem_t dynamic_sem = RT_NULL; +static rt_uint8_t trigger_count = 0; // 触发信号量的计数 +static rt_uint8_t receive_count = 0; // 接收信号量的计数 + +#ifdef rt_align +rt_align(RT_ALIGN_SIZE) +#else +ALIGN(RT_ALIGN_SIZE) +#endif +static char thread1_stack[1024]; +static struct rt_thread thread1; + +/* 线程1:发送信号量的线程 */ +static void rt_thread1_entry(void *parameter) +{ + while (trigger_count < MAX_COUNT) + { + trigger_count++; + /* 每计数5次,发送一次信号量 */ + if (trigger_count % 5 == 0) + { + rt_kprintf("线程1: 计数到 %d,发送信号量\n", trigger_count); + rt_sem_release(dynamic_sem); + } + rt_thread_mdelay(100); // 减慢计数速度,便于观察 + } + rt_kprintf("线程1: 完成计数,退出\n"); +} + +#ifdef rt_align +rt_align(RT_ALIGN_SIZE) +#else +ALIGN(RT_ALIGN_SIZE) +#endif +static char thread2_stack[1024]; +static struct rt_thread thread2; + +/* 线程2:接收信号量的线程 */ +static void rt_thread2_entry(void *parameter) +{ + rt_err_t result; + while (receive_count < MAX_COUNT / 5) // 接收次数是触发次数的1/5 + { + /* 等待信号量,超时时间3秒 */ + result = rt_sem_take(dynamic_sem, 3000); + if (result == RT_EOK) + { + receive_count++; + rt_kprintf("线程2: 收到信号量,累计接收 %d 次\n", receive_count); + } + else if (result == -RT_ETIMEOUT) + { + // 修复原代码未处理的超时情况 + rt_kprintf("线程2: 等待信号量超时\n"); + // 若触发计数已完成,退出等待 + if (trigger_count >= MAX_COUNT) + { + rt_kprintf("线程2: 检测到线程1已结束,退出\n"); + break; + } + } + else + { + // 修复原代码错误处理不完整的问题 + rt_kprintf("线程2: 获取信号量失败,错误码: %d\n", result); + break; + } + } +} + +/* 信号量示例的初始化 */ +int semaphore_sample() +{ + /* 创建一个动态信号量,初始值是0 */ + dynamic_sem = rt_sem_create("dsem", 0, RT_IPC_FLAG_PRIO); + if (dynamic_sem == RT_NULL) + { + rt_kprintf("创建动态信号量失败!\n"); + return -1; + } + rt_kprintf("创建动态信号量成功,初始值: 0\n"); + + /* 初始化并启动线程1 */ + rt_thread_init(&thread1, + "thread1", + rt_thread1_entry, + RT_NULL, + &thread1_stack[0], + sizeof(thread1_stack), + THREAD_PRIORITY, THREAD_TIMESLICE); +#ifdef RT_USING_SMP + rt_thread_control(&thread1, RT_THREAD_CTRL_BIND_CPU, (void*)0); +#endif + rt_thread_startup(&thread1); + + /* 初始化并启动线程2 */ + rt_thread_init(&thread2, + "thread2", + rt_thread2_entry, + RT_NULL, + &thread2_stack[0], + sizeof(thread2_stack), + THREAD_PRIORITY - 1, THREAD_TIMESLICE); +#ifdef RT_USING_SMP + rt_thread_control(&thread2, RT_THREAD_CTRL_BIND_CPU, (void*)0); +#endif + rt_thread_startup(&thread2); + + /* 等待线程执行完成后清理资源 */ + rt_thread_mdelay(MAX_COUNT * 150); // 等待足够长的时间 + rt_sem_delete(dynamic_sem); + dynamic_sem = RT_NULL; + rt_kprintf("信号量示例执行完成\n"); + + return 0; +} + +/* 导出到 msh 命令列表中 */ +MSH_CMD_EXPORT(semaphore_sample, semaphore sample); \ No newline at end of file diff --git "a/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day3_homework/signal_sample.c" "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day3_homework/signal_sample.c" new file mode 100644 index 0000000..0fa8943 --- /dev/null +++ "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day3_homework/signal_sample.c" @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2006-2022, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-08-24 yangjie the first version + * 2025-01-01 YourName Enhance signal feature demo + */ + +#include + +#define THREAD_PRIORITY 25 +#define THREAD_STACK_SIZE 512 +#define THREAD_TIMESLICE 5 + +static rt_thread_t tid1 = RT_NULL; +static rt_timer_t signal_timer; // 新增定时器用于周期性发信号 + +/* 线程1的信号处理函数 */ +void thread1_signal_handler(int sig) +{ + rt_kprintf("[SIGNAL HANDLER] thread1 received signal %d\n", sig); + // 模拟信号处理耗时 + rt_thread_mdelay(300); + rt_kprintf("[SIGNAL HANDLER] Signal %d processing done\n", sig); +} + +/* 线程1的入口函数 */ +static void thread1_entry(void *parameter) +{ + int cnt = 0; + + // 安装并解除屏蔽信号 + rt_signal_install(SIGUSR1, thread1_signal_handler); + rt_signal_unmask(SIGUSR1); + + while (cnt < 20) // 延长执行次数,让信号有更多触发机会 + { + rt_kprintf("thread1 normal running: count = %d\n", cnt); + cnt++; + rt_thread_mdelay(200); // 缩短正常执行间隔,凸显信号打断 + } + rt_kprintf("thread1 finished normal loop\n"); +} + +/* 定时器回调:周期性发送信号 */ +static void signal_timer_cb(void *parameter) +{ + static int send_count = 0; + if (send_count < 3) { // 发送3次信号 + rt_thread_kill(tid1, SIGUSR1); + rt_kprintf("[TIMER] Send signal SIGUSR1 (count=%d)\n", ++send_count); + } else { + rt_timer_stop(signal_timer); // 停止定时器 + } +} + +/* 信号示例的初始化 */ +int signal_sample(void) +{ + // 创建线程1 + tid1 = rt_thread_create("thread1", + thread1_entry, RT_NULL, + THREAD_STACK_SIZE, + THREAD_PRIORITY, THREAD_TIMESLICE); + if (tid1 != RT_NULL) { + rt_thread_startup(tid1); + } else { + rt_kprintf("Create thread1 failed!\n"); + return -1; + } + + // 延迟让线程先启动 + rt_thread_mdelay(500); + + // 创建并启动定时器(周期性发信号) + signal_timer = rt_timer_create("sig-timer", + signal_timer_cb, + RT_NULL, + 1000, // 首次触发延时1s + RT_TIMER_FLAG_PERIODIC); // 周期触发 + if (signal_timer != RT_NULL) { + rt_timer_start(signal_timer); + } else { + rt_kprintf("Create signal timer failed!\n"); + return -1; + } + + return 0; +} + +MSH_CMD_EXPORT(signal_sample, signal sample); \ No newline at end of file diff --git "a/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\347\254\224\350\256\260/day3\347\254\224\350\256\260.md" "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\347\254\224\350\256\260/day3\347\254\224\350\256\260.md" new file mode 100644 index 0000000..46ebd0e --- /dev/null +++ "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\347\254\224\350\256\260/day3\347\254\224\350\256\260.md" @@ -0,0 +1,377 @@ +# Day3_Notes + +信号量 (Semaphore) 是一种轻型的用于解决线程间同步问题的内核对象,一个或多个运行线程可以获取或释放它,从而达到同步或互斥的目的。用于实现任务与任务之间、任务与中断处理程序之间的同步与互斥。 + + 信号量一般分为三种: + +1.互斥信号量 用于解决互斥问题。它比较特殊,可能会引起优先级反转问题 + +2.二值信号量 用于解决同步问题 +3.计数信号量 用于解决资源计数问题 + + 二值信号量主要用于线程与线程之间、线程与中断服务程序 (ISR) 之间的同步。 + +1.用于同步的二值信号量初始值为 0,表示同步事件尚未产生; + +2.线程获取信号量以等待该同步事件的发生; + +3.另一个任务或 ISR 到达同步点时,释放信号量(将其值设置为 1)表示同步事件已发生,唤醒等待的任务。 + + 计数信号量用于控制系统中共享资源的多个实例的使用,允许多个线程同时访问同一种资源的多个实例。 +计数信号量被初始化为n(非负整数),n为该种共享资源的数目。 + + rt_sem_t rt_sem_create(const char *name, + rt_uint32_t value, + rt_uint8_t flag); +当调用这个函数时,系统将先从对象管理器中分配一个 semaphore 对象,并初始化这个对象,然后初始化父类 IPC 对象以及与 semaphore 相关的部分。在创建信号量指定的参数中,信号量标志参数决定了当信号量不可用时,多个线程等待的排队方式。当选择 RT_IPC_FLAG_FIFO(先进先出)方式时,那么等待线程队列将按照先进先出的方式排队,先进入的线程将先获得等待的信号量;当选择 RT_IPC_FLAG_PRIO(优先级等待)方式时,等待线程队列将按照优先级进行排队,优先级高的等待线程将先获得等待的信号量。 + + rt_err_t rt_sem_delete(rt_sem_t sem); + +系统不再使用信号量时,可通过删除信号量以释放系统资源。 +当调用这个函数时,系统将删除这个信号量。如果删除该信号量时,有线程正在等待该信号量,那么删除操作会先唤醒等待在该信号量上的线程(等待线程的返回值是 - RT_ERROR),然后再释放信号量的内存资源。 + + rt_err_t rt_sem_init(rt_sem_t sem, + const char *name, + rt_uint32_t value, + rt_uint8_t flag) +当调用这个函数时,系统将对这个 semaphore 对象进行初始化,然后初始化 IPC 对象以及与 semaphore 相关的部分。信号量标志可用上面创建信号量函数里提到的标志。 + + rt_err_t rt_sem_detach(rt_sem_t sem); + +脱离信号量就是让信号量对象从内核对象管理器中脱离,适用于静态初始化的信号量。 + +当调用这个函数后,内核先唤醒所有挂在该信号量等待队列上的线程,然后将该信号量从内核对象管理器中脱离。原来挂起在信号量上的等待线程将获得 - RT_ERROR 的返回值。 + + rt_err_t rt_sem_take (rt_sem_t sem, rt_int32_t time); + +线程通过获取信号量来获得信号量资源实例,当信号量值大于零时,线程将获得信号量,并且相应的信号量值会减 1。 + +在调用这个函数时,如果信号量的值等于零,那么说明当前信号量资源实例不可用,申请该信号量的线程将根据 time 参数的情况选择直接返回、或挂起等待一段时间、或永久等待,直到其他线程或中断释放该信号量。如果在参数 time 指定的时间内依然得不到信号量,线程将超时返回,返回值是 - RT_ETIMEOUT。 + + rt_err_t rt_sem_trytake(rt_sem_t sem); + +当用户不想在申请的信号量上挂起线程进行等待时,可以使用无等待方式获取信号量。 + +这个函数与 rt_sem_take (sem, RT_WAITING_NO) 的作用相同,即当线程申请的信号量资源实例不可用的时候,它不会等待在该信号量上,而是直接返回 - RT_ETIMEOUT。 + + rt_err_t rt_sem_release(rt_sem_t sem); +释放信号量可以唤醒挂起在该信号量上的线程 + +当信号量的值等于零时,并且有线程等待这个信号量时,释放信号量将唤醒等待在该信号量线程队列中的第一个线程,由它获取信号量;否则将把信号量的值加 1。 + + 互斥量基本概念 +互斥量又叫相互排斥的信号量,是一种特殊的二值信号量。它和信号量不同的是,它支持: + +1.互斥量所有权:互斥量具有线程所有权,只有加锁的线程才能解锁,否则可能导致未定义行为(如死锁); + +2.递归访问; + +3.防止优先级反转的特性。 + + 优先级反转 (Priority Inversion) +所谓优先级翻转,即当一个高优先级线程试图通过信号量机制访问共享资源时,如果该信号量已被一低优先级线程持有,而这个低优先级线程在运行过程中可能又被其它一些中等优先级的线程抢占,因此造成高优先级线程被许多具有较低优先级的线程阻塞,实时性难以得到保证。 + + 互斥量相关函数及说明 + 创建互斥量 + rt_mutex_t rt_mutex_create (const char* name, rt_uint8_t flag); + +调用 rt_mutex_create 函数创建一个互斥量,它的名字由 name 所指定。当调用这个函数时,系统将先从对象管理器中分配一个 mutex 对象,并初始化这个对象,然后初始化父类 IPC 对象以及与 mutex 相关的部分。互斥量的 flag 标志已经作废,无论用户选择 RT_IPC_FLAG_PRIO 还是 RT_IPC_FLAG_FIFO,内核均按照 RT_IPC_FLAG_PRIO 处理。 + + 删除互斥量 + rt_err_t rt_mutex_delete (rt_mutex_t mutex); + +当不再使用互斥量时,通过删除互斥量以释放系统资源,适用于动态创建的互斥量。 + +当删除一个互斥量时,所有等待此互斥量的线程都将被唤醒,等待线程获得的返回值是 -RT_ERROR。然后系统将该互斥量从内核对象管理器链表中删除并释放互斥量占用的内存空间。 + + 初始化互斥量 + rt_err_t rt_mutex_init (rt_mutex_t mutex, const char* name, rt_uint8_t flag); + +静态互斥量对象的内存是在系统编译时由编译器分配的,一般放于读写数据段或未初始化数据段中。在使用这类静态互斥量对象前,需要先进行初始化。 + +使用该函数接口时,需指定互斥量对象的句柄(即指向互斥量控制块的指针),互斥量名称以及互斥量标志。互斥量标志可用上面创建互斥量函数里提到的标志。 + + 脱离互斥量 + rt_err_t rt_mutex_detach (rt_mutex_t mutex); + +当使用该函数接口后,内核先唤醒所有挂在该互斥量上的线程(线程的返回值是 -RT_ERROR),然后系统将该互斥量从内核对象管理器中脱离。 + + 获取互斥量(带超时) + rt_err_t rt_mutex_take (rt_mutex_t mutex, rt_int32_t time); + +线程获取了互斥量,那么线程就有了对该互斥量的所有权,即某一个时刻一个互斥量只能被一个线程持有。 + +如果互斥量没有被其他线程控制,那么申请该互斥量的线程将成功获得该互斥量。如果互斥量已经被当前线程线程控制,则该互斥量的持有计数加 1,当前线程也不会挂起等待。如果互斥量已经被其他线程占有,则当前线程在该互斥量上挂起等待,直到其他线程释放它或者等待时间超过指定的超时时间。 + + 尝试获取互斥量(无等待) + rt_err_t rt_mutex_trytake(rt_mutex_t mutex); + +线程获取了互斥量,那么线程就有了对该互斥量的所有权,即某一个时刻一个互斥量只能被一个线程持有。 + +如果互斥量没有被其他线程控制,那么申请该互斥量的线程将成功获得该互斥量。如果互斥量已经被当前线程线程控制,则该互斥量的持有计数加 1,当前线程也不会挂起等待。如果互斥量已经被其他线程占有,则当前线程在该互斥量上挂起等待,直到其他线程释放它或者等待时间超过指定的超时时间。 + + 释放互斥量 + rt_err_t rt_mutex_release(rt_mutex_t mutex); + +当线程完成互斥资源的访问后,应尽快释放它占据的互斥量,使得其他线程能及时获取该互斥量。 + +使用该函数接口时,只有已经拥有互斥量控制权的线程才能释放它,每释放一次该互斥量,它的持有计数就减 1。当该互斥量的持有计数为零时(即持有线程已经释放所有的持有操作),它变为可用,等待在该互斥量上的线程将被唤醒。如果线程的运行优先级被互斥量提升,那么当互斥量被释放后,线程恢复为持有互斥量前的优先级。 + + 事件集基本概念 +事件集是一个 32bit 的数,每个事件用一个 bit 位代表; +触发方式有与触发、或触发 + +1发送:可以从中断或者线程中进行发送 + +2接收:线程接收,条件检查(逻辑与方式、逻辑或方式) + + 事件集相关函数及说明 + 创建事件集 + rt_event_t rt_event_create(const char* name, rt_uint8_t flag); + +调用该函数接口时,系统会从对象管理器中分配事件集对象,并初始化这个对象,然后初始化父类 IPC 对象。 + + 删除事件集 + rt_err_t rt_event_delete(rt_event_t event); + +系统不再使用 rt_event_create() 创建的事件集对象时,通过删除事件集对象控制块来释放系统资源。 + +在调用 rt_event_delete 函数删除一个事件集对象时,应该确保该事件集不再被使用。在删除前会唤醒所有挂起在该事件集上的线程(线程的返回值是 -RT_ERROR),然后释放事件集对象占用的内存块。 + + 初始化事件集 + rt_err_t rt_event_init(rt_event_t event, const char* name, rt_uint8_t flag); + +静态事件集对象的内存是在系统编译时由编译器分配的,一般放于读写数据段或未初始化数据段中。在使用静态事件集对象前,需要先行对它进行初始化操作。 + +调用该接口时,需指定静态事件集对象的句柄(即指向事件集控制块的指针),然后系统会初始化事件集对象,并加入到系统对象容器中进行管理。 + + 脱离事件集 + rt_err_t rt_event_detach(rt_event_t event); + +系统不再使用 rt_event_init() 初始化的事件集对象时,通过脱离事件集对象控制块来释放系统资源。脱离事件集是将事件集对象从内核对象管理器中脱离。 + +用户调用这个函数时,系统首先唤醒所有挂在该事件集等待队列上的线程(线程的返回值是 -RT_ERROR),然后将该事件集从内核对象管理器中脱离 + + 发送事件 + rt_err_t rt_event_send(rt_event_t event, rt_uint32_t set); + +发送事件函数可以发送事件集中的一个或多个事件。 + +使用该函数接口时,通过参数 set 指定的事件标志来设定 event 事件集对象的事件标志值,然后遍历等待在 event 事件集对象上的等待线程链表,判断是否有线程的事件激活要求与当前 event 对象事件标志值匹配,如果有,则唤醒该线程。 + + 接收事件 + rt_err_t rt_event_recv(rt_event_t event, + rt_uint32_t set, + rt_uint8_t option, + rt_int32_t timeout, + rt_uint32_t* recved); + +内核使用 32 位的无符号整数来标识事件集,它的每一位代表一个事件,因此一个事件集对象可同时等待接收 32 个事件,内核可以通过指定选择参数 “逻辑与” 或 “逻辑或” 来选择如何激活线程,使用 “逻辑与” 参数表示只有当所有等待的事件都发生时才激活线程,而使用 “逻辑或” 参数则表示只要有一个等待的事件发生就激活线程。 + +当用户调用这个接口时,系统首先根据 set 参数和接收选项 option 来判断它要接收的事件是否发生,如果已经发生,则根据参数 option 上是否设置有 RT_EVENT_FLAG_CLEAR 来决定是否重置事件的相应标志位,然后返回(其中 recved 参数返回接收到的事件);如果没有发生,则把等待的 set 和 option 参数填入线程本身的结构中,然后把线程挂起在此事件上,直到其等待的事件满足条件或等待时间超过指定的超时时间。如果超时时间设置为零,则表示当线程要接受的事件没有满足其要求时就不等待,而直接返回 -RT_ETIMEOUT。 + + 消息邮箱 + +RT-Thread 操作系统的邮箱用于线程间通信,特点是开销比较低,效率较高。邮箱中的每一封邮件只能容纳固定的 4 字节内容(针对 32 位处理系统,指针的大小即为 4 个字节,所以一封邮件恰好能够容纳一个指针)。典型的邮箱也称作交换消息。 + +非阻塞方式的邮件发送过程能够安全的应用于中断服务中,是线程、中断服务、定时器向线程发送消息的有效手段。通常来说,邮件收取过程可能是阻塞的,这取决于邮箱中是否有邮件,以及收取邮件时设置的超时时间。当邮箱中不存在邮件且超时时间不为 0 时,邮件收取过程将变成阻塞方式。在这类情况下,只能由线程进行邮件的收取。 + +当一个线程向邮箱发送邮件时,如果邮箱没满,将把邮件复制到邮箱中。如果邮箱已经满了,发送线程可以设置超时时间,选择等待挂起或直接返回 - RT_EFULL。如果发送线程选择挂起等待,那么当邮箱中的邮件被收取而空出空间来时,等待挂起的发送线程将被唤醒继续发送。 + +当一个线程从邮箱中接收邮件时,如果邮箱是空的,接收线程可以选择是否等待挂起直到收到新的邮件而唤醒,或可以设置超时时间。当达到设置的超时时间,邮箱依然未收到邮件时,这个选择超时等待的线程将被唤醒并返回 - RT_ETIMEOUT。如果邮箱中存在邮件,那么接收线程将复制邮箱中的 4 个字节邮件到接收缓存中。 + +在 RT-Thread 中,邮箱控制块是操作系统用于管理邮箱的一个数据结构,由结构体 struct rt_mailbox 表示。另外一种 C 表达方式 rt_mailbox_t,表示的是邮箱的句柄,在 C 语言中的实现是邮箱控制块的指针。邮箱控制块结构的详细定义请见以下代码: + + struct rt_mailbox{ + struct rt_ipc_object parent; + + rt_uint32_t* msg_pool; /* 邮箱缓冲区的开始地址 */ + rt_uint16_t size; /* 邮箱缓冲区的大小 */ + + rt_uint16_t entry; /* 邮箱中邮件的数目 */ + rt_uint16_t in_offset, out_offset; /* 邮箱缓冲的进出指针 */ + rt_list_t suspend_sender_thread; /* 发送线程的挂起等待队列 */};typedef struct rt_mailbox* rt_mailbox_t; + +邮箱控制块是一个结构体,其中含有事件相关的重要参数,在邮箱的功能实现中起重要的作用。邮箱的相关接口如下图所示,对一个邮箱的操作包含:创建 / 初始化邮箱、发送邮件、接收邮件、删除 / 脱离邮箱。 + + rt_mailbox_t rt_mb_create (const char* name, rt_size_t size, rt_uint8_t flag); + +创建邮箱对象时会先从对象管理器中分配一个邮箱对象,然后给邮箱动态分配一块内存空间用来存放邮件,这块内存的大小等于邮件大小(4 字节)与邮箱容量的乘积,接着初始化接收邮件数目和发送邮件在邮箱中的偏移量。 + + rt_err_t rt_mb_delete (rt_mailbox_t mb); + +当用 rt_mb_create () 创建的邮箱不再被使用时,应该删除它来释放相应的系统资源,一旦操作完成,邮箱将被永久性的删除。 + +删除邮箱时,如果有线程被挂起在该邮箱对象上,内核先唤醒挂起在该邮箱上的所有线程(线程返回值是 -RT_ERROR),然后再释放邮箱使用的内存,最后删除邮箱对象。 + + rt_err_t rt_mb_init(rt_mailbox_t mb, + const char* name, + void* msgpool, + rt_size_t size, + rt_uint8_t flag) +初始化邮箱跟创建邮箱类似,只是初始化邮箱用于静态邮箱对象的初始化。与创建邮箱不同的是,静态邮箱对象的内存是在系统编译时由编译器分配的,一般放于读写数据段或未初始化数据段中,其余的初始化工作与创建邮箱时相同。 + +初始化邮箱时,该函数接口需要获得用户已经申请获得的邮箱对象控制块,缓冲区的指针,以及邮箱名称和邮箱容量(能够存储的邮件数)。 + + rt_err_t rt_mb_detach(rt_mailbox_t mb); + +脱离邮箱将把静态初始化的邮箱对象从内核对象管理器中脱离。 + +使用该函数接口后,内核先唤醒所有挂在该邮箱上的线程(线程获得返回值是 - RT_ERROR),然后将该邮箱对象从内核对象管理器中脱离。 + + rt_err_t rt_mb_send (rt_mailbox_t mb, rt_uint32_t value); + +线程或者中断服务程序可以通过邮箱给其他线程发送邮件。 + +发送的邮件可以是 32 位任意格式的数据,一个整型值或者一个指向缓冲区的指针。当邮箱中的邮件已经满时,发送邮件的线程或者中断程序会收到 -RT_EFULL 的返回值。 + + rt_err_t rt_mb_send_wait (rt_mailbox_t mb, + rt_uint32_t value, + rt_int32_t timeout); +rt_mb_send_wait () 与 rt_mb_send () 的区别在于有等待时间,如果邮箱已经满了,那么发送线程将根据设定的 timeout 参数等待邮箱中因为收取邮件而空出空间。如果设置的超时时间到达依然没有空出空间,这时发送线程将被唤醒并返回错误码。 + + rt_err_t rt_mb_urgent (rt_mailbox_t mb, rt_ubase_t value); + +发送紧急邮件的过程与发送邮件几乎一样,唯一的不同是,当发送紧急邮件时,邮件被直接插队放入了邮件队首,这样,接收者就能够优先接收到紧急邮件,从而及时进行处理。 + + rt_err_t rt_mb_recv (rt_mailbox_t mb, rt_uint32_t* value, rt_int32_t timeout); + +只有当接收者接收的邮箱中有邮件时,接收者才能立即取到邮件并返回 RT_EOK 的返回值,否则接收线程会根据超时时间设置,或挂起在邮箱的等待线程队列上,或直接返回。 + +接收邮件时,接收者需指定接收邮件的邮箱句柄,并指定接收到的邮件存放位置以及最多能够等待的超时时间。如果接收时设定了超时,当指定的时间内依然未收到邮件时,将返回 - RT_ETIMEOUT。 + + 消息队列 + +在实际应用中我们常常遇到一些任务需要和其他任务之间进行数据交流,其实就是不同任务之间的消息传递。在一般的裸机系统中可以通过全局变量来实现不同应用程序之间的数据交互和消息传递。在操作系统中为了更好的管理不同任务之间的消息传递我们引入消息队列的概念。 + +消息队列,也就是将多条消息排成的队列形式,是一种常用的线程间通信方式,可以应用在多种场合,线程间的消息交换,使用串口接收不定长数据等。线程可以将一条或多条消息放到消息队列中,同样一个或多个线程可以从消息队列中获得消息;同时消息队列提供异步处理机制可以起到缓冲消息的作用。 + +使用消息队列实现线程间的异步通信工作,具有以下特性: + +1.支持读消息超时机制 + +2支持等待方式发送消息 + +3允许不同长度(不超过队列节点最大值)任意类型消息 + +4支持发送紧急消息 + +线程或中断服务例程可以将一条或多条消息放入消息队列中。同样,一个或多个线程也可以从消息队列中获得消息。当有多个消息发送到消息队列时,通常将先进入消息队列的消息先传给线程,也就是说,线程先得到的是最先进入消息队列的消息,即先进先出原则(FIFO)。 + +在 RT-Thread 中,消息队列控制块是操作系统用于管理消息队列的一个数据结构,由结构体 struct rt_messagequeue 表示。另外一种 C 表达方式 rt_mq_t,表示的是消息队列的句柄,在 C 语言中的实现是消息队列控制块的指针。消息队列控制块结构的详细定义请见以下代码: + + struct rt_messagequeue{ + struct rt_ipc_object parent; + + void* msg_pool; /* 指向存放消息的缓冲区的指针 */ + + rt_uint16_t msg_size; /* 每个消息的长度 */ + rt_uint16_t max_msgs; /* 最大能够容纳的消息数 */ + + rt_uint16_t entry; /* 队列中已有的消息数 */ + + void* msg_queue_head; /* 消息链表头 */ + void* msg_queue_tail; /* 消息链表尾 */ + void* msg_queue_free; /* 空闲消息链表 */ + + rt_list_t suspend_sender_thread; /* 发送线程的挂起等待队列 */};typedef struct rt_messagequeue* rt_mq_t; + +消息队列控制块是一个结构体,其中含有消息队列相关的重要参数,在消息队列的功能实现中起重要的作用。消息队列的相关接口如下图所示,对一个消息队列的操作包含:创建消息队列、发送消息、接收消息、删除消息队列。 + +创建消息队列时先从对象管理器中分配一个消息队列对象,然后给消息队列对象分配一块内存空间,组织成空闲消息链表,这块内存的大小 = [消息大小 + 消息头 (用于链表连接) 的大小] * 消息队列最大个数,接着再初始化消息队列;接口返回 RT_EOK 表示动态消息队列创建成功。 + + rt_mq_t rt_mq_create(const char* name, // 消息队列名称 + rt_size_t msg_size, // 消息队列中一条消息的最大长度,单位字节 + rt_size_t max_msgs, // 消息队列的最大个数 + rt_uint8_t flag); // 消息队列采用的等待方式 + +参数 flag 可以取如下数值: RT_IPC_FLAG_FIFO (先进先出) 或 RT_IPC_FLAG_PRIO (优先级等待) + +在创建消息队列指定的参数中,事件集标志参数决定了当消息不可获取时,多个线程等待的排队方式。 + +1.当选择 RT_IPC_FLAG_FIFO(先进先出)方式时,那么等待线程队列将按照先进先出的方式排队,先进入的线程将先获得等待的消息; + +2.当选择 RT_IPC_FLAG_PRIO(优先级等待)方式时,等待线程队列将按照优先级进行排队,优先级高的等待线程将先获得等待的消息。 + +线程或者中断服务程序都可以给消息队列发送消息。当发送消息时,消息队列对象先从空闲消息链表上取下一个空闲消息块,把线程或者中断服务程序发送的消息内容复制到消息块上,然后把该消息块挂到消息队列的尾部。当且仅当空闲消息链表上有可用的空闲消息块时,发送者才能成功发送消息;当空闲消息链表上无可用消息块,说明消息队列已满,此时,发送消息的的线程或者中断程序会收到一个错误码(-RT_EFULL)。发送消息的函数接口如下: + + rt_err_t rt_mq_send(rt_mq_t mq, // 消息队列对象的句柄 + void* buffer, // 消息内容 + rt_size_t size);// 消息大小 + +等待发送消息的函数接口如下,rt_mq_send_wait () 与 rt_mq_send () 的区别在于有等待时间,如果消息队列已经满了,那么发送线程将根据设定的 timeout 参数进行等待。如果设置的超时时间到达依然没有空出空间,这时发送线程将被唤醒并返回错误码。 + + rt_err_t rt_mq_send_wait(rt_mq_t mq, // 消息队列对象的句柄 + const void *buffer, // 消息内容 + rt_size_t size, // 消息大小 + rt_int32_t timeout); // 超时时间 + +发送紧急消息的过程与发送消息几乎一样,唯一的不同是,当发送紧急消息时,从空闲消息链表上取下来的消息块不是挂到消息队列的队尾,而是挂到队首,这样,接收者就能够优先接收到紧急消息,从而及时进行消息处理。发送紧急消息的函数接口如下: + + rt_err_t rt_mq_urgent(rt_mq_t mq, // 消息队列对象的句柄 + void* buffer, // 消息内容 + rt_size_t size); // 消息大小 + +当消息队列中有消息时,接收者才能接收消息,否则接收者会根据超时时间设置,或挂起在消息队列的等待线程队列上,或直接返回。接收消息函数接口如下 + + rt_err_t rt_mq_recv(rt_mq_t mq, // 消息队列对象的句柄 + void* buffer, // 消息内容 + rt_size_t size, // 消息大小 + rt_int32_t timeout); // 指定的超时时间 + +接收消息时,接收者需指定存储消息的消息队列对象句柄,并且指定一个内存缓冲区,接收到的消息内容将被复制到该缓冲区里。此外,还需指定未能及时取到消息时的超时时间,接收一个消息后消息队列上的队首消息被转移到了空闲消息链表的尾部。 + + 信号 + +信号(又称为软中断信号),在软件层次上是对中断机制的一种模拟,在原理上,一个线程收到一个信号与处理器收到一个中断请求可以说是类似的。 + +信号在 RT-Thread 中用作异步通信,POSIX 标准定义了 sigset_t 类型来定义一个信号集,然而 sigset_t 类型在不同的系统可能有不同的定义方式,在 RT-Thread 中,将 sigset_t 定义成了 unsigned long 型,并命名为 rt_sigset_t,应用程序能够使用的信号为 SIGUSR1(10)和 SIGUSR2(12)。 + +信号本质是软中断,用来通知线程发生了异步事件,用做线程之间的异常通知、应急处理。一个线程不必通过任何操作来等待信号的到达,事实上,线程也不知道信号到底什么时候到达,线程之间可以互相通过调用 rt_thread_kill () 发送软中断信号。 + +收到信号的线程对各种信号有不同的处理方法,处理方法可以分为三类: + +1.第一种是类似中断的处理程序,对于需要处理的信号,线程可以指定处理函数,由该函数来处理。 + +2.第二种方法是,忽略某个信号,对该信号不做任何处理,就像未发生过一样。 + +3.第三种方法是,对该信号的处理保留系统的默认值。 + +对于信号的操作,有以下几种:安装信号、阻塞信号、阻塞解除、信号发送、信号等待。信号的接口详见下图: + +1.安装:rt_signal_install () + +2.阻塞 / 解除阻塞:rt_signal_mask/unmask () + +3.发送:rt_thread_kill () + +4.等待:rt_signal_wait () + +如果线程要处理某一信号,那么就要在线程中安装该信号。安装信号主要用来确定信号值及线程针对该信号值的动作之间的映射关系,即线程将要处理哪个信号,该信号被传递给线程时,将执行何种操作。 + + rt_sighandler_t rt_signal_install(int signo, rt_sighandler_t[] handler); + +在信号安装时设定 handler 参数,决定了该信号的不同的处理方法。处理方法可以分为三种: + +1.类似中断的处理方式,参数指向当信号发生时用户自定义的处理函数,由该函数来处理。 + +2.参数设为 SIG_IGN,忽略某个信号,对该信号不做任何处理,就像未发生过一样。 + +3.参数设为 SIG_DFL,系统会调用默认的处理函数_signal_default_handler ()。 + +信号阻塞,也可以理解为屏蔽信号。如果该信号被阻塞,则该信号将不会递达给安装此信号的线程,也不会引发软中断处理。调 rt_signal_mask () 可以使信号阻塞: + + void rt_signal_mask(int signo); + +线程中可以安装好几个信号,使用此函数可以对其中一些信号给予 “关注”,那么发送这些信号都会引发该线程的软中断。调用 rt_signal_unmask () 可以用来解除信号阻塞: + + void rt_signal_unmask(int signo); + +当需要进行异常处理时,可以给设定了处理异常的线程发送信号,调用 rt_thread_kill () 可以用来向任何线程发送信号: + + int rt_thread_kill(rt_thread_t tid, int sig); + +等待 set 信号的到来,如果没有等到这个信号,则将线程挂起,直到等到这个信号或者等待时间超过指定的超时时间 timeout。如果等到了该信号,则将指向该信号体的指针存入 si,如下是等待信号的函数。 + + int rt_signal_wait(const rt_sigset_t *set, + rt_siginfo_t[] *si, rt_int32_t timeout); \ No newline at end of file -- Gitee From 0534b524e2dc9afa2c28dcaedabe31a4ed53f6d3 Mon Sep 17 00:00:00 2001 From: zqy <695961496@qq.com> Date: Mon, 28 Jul 2025 08:49:55 +0800 Subject: [PATCH 4/6] day4 --- .../day4\347\254\224\350\256\260.md" | 514 ++++++++++++++++++ 1 file changed, 514 insertions(+) create mode 100644 "2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\347\254\224\350\256\260/day4\347\254\224\350\256\260.md" diff --git "a/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\347\254\224\350\256\260/day4\347\254\224\350\256\260.md" "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\347\254\224\350\256\260/day4\347\254\224\350\256\260.md" new file mode 100644 index 0000000..d38ad09 --- /dev/null +++ "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\347\254\224\350\256\260/day4\347\254\224\350\256\260.md" @@ -0,0 +1,514 @@ + I/O 接口与特定 API + +I/O 提供一套接口:open、write、read、control、close + +特定 API:SPI、I2C、GPIO、RTC、WDG + +应用程序与 I/O 设备管理架构 + +核心层级:应用程序、IO 设备管理器、设备驱动 + +核心操作: + +创建设备 + +注册 IO 设备:rt_device_register () + +查找设备:rt_device_find () + +打开设备:rt_device_open () + +读数据:rt_device_read ()、read () + +关闭设备:rt_device_close () + +设备结构体定义(struct rt_device) + + struct rt_device + { + /* 内核对象基类 */ + struct rt_object parent; + /* 设备类型 */ + enum rt_device_class_type type; + /* 设备参数 */ + rt_uint16_t flag; + /* 设备打开标志 */ + rt_uint16_t open_flag; + /* 设备被引用次数 */ + rt_uint8_t ref_count; + /* 设备 ID, 0-255 */ + rt_uint8_t device_id; + /* 数据收发回调函数 */ + rt_err_t (*rx_indicate)(rt_device_t dev, rt_size_t size); + rt_err_t (*tx_complete) (rt_device_t dev, void *buffer); + /* 设备操作方法 */ + const struct rt_device_ops *ops; + /* 设备的私有数据 */ + void *user_data; + }; + typedef struct rt_device *rt_device_t; + + +RT-Thread 支持的 I/O 设备类型 + + 字符设备:RT_Device_Class_Char + + 块设备:RT_Device_Class_Block + + 网络接口设备:RT_Device_Class_NetIf + + 内存设备:RT_Device_Class_MTD + + RTC 设备:RT_Device_Class_RTC + + 声音设备:RT_Device_Class_Sound + + 图形设备:RT_Device_Class_Graphic + + I2C 总线设备:RT_Device_Class_I2CBUS + + USB device 设备:RT_Device_Class_USBDevice + + USB host 设备:RT_Device_Class_USBHost + + SPI 总线设备:RT_Device_Class_SPIBUS + + SPI 设备:RT_Device_Class_SPIDevice + + SDIO 设备:RT_Device_Class_SDIO + + 杂类设备:RT_Device_Class_Miscellaneous + +字符 / 块设备特点与区别 + + 字符设备: + + 提供连续的数据流,应用程序可顺序读取 + + 支持按字节 / 字符读写数据 + + 示例:键盘、串口、调制解调器 + + 块设备: + + 应用程序可随机访问设备数据,自行确定读取位置 + + 数据读写以块(通常 512B)的倍数进行 + + 不支持基于字符的寻址 + + 示例:硬盘、软盘、CD-ROM 驱动器、闪存 + + 根本区别:是否支持随机访问(字符设备只能顺序读取,块设备可随机读取) + +设备分类的原因 + + MSH 可重定向到任意字符设备(如将 LCD 模拟为字符设备,实现打印输出) + + Fatfs 文件系统依赖块设备驱动(可将 SD 卡实现为块设备,或用 RAM 模拟) + + 不同组件和应用依赖不同设备,分类可实现对一类设备的统一控制 + +1.创建设备 / 销毁设备 + + 创建设备:rt_device_t rt_device_create(int type, int attach_size); + 参数:type:设备类型(可取上述设备类型值) + attach_size:用户数据大小 + 返回: + 设备句柄:创建成功 + RT_NULL:创建失败(动态内存分配失败) + + 销毁设备:void rt_device_destroy(rt_device_t device); + 参数:device 为设备句柄 + 返回:无 + +注册 / 注销设备 + + 注册设备:rt_err_t rt_device_register(rt_device_t dev, const char* name, rt_uint8_t flags); + 参数:dev:设备句柄 + name:设备名称(最大长度由 rtconfig.h 中 RT_NAME_MAX 定义,多余部分自动截断) + flags:设备模式标志 + 返回: + RT_EOK:注册成功 + -RT_ERROR:注册失败(dev 为空或 name 已存在) + + 注销设备:rt_err_t rt_device_unregister(rt_device_t dev); + 参数:dev 为设备句柄 + 返回:RT_EOK 表示成功 + +3.访问 I/O 设备 + +应用程序通过 I/O 设备管理接口访问硬件设备,接口与设备操作方法的映射关系如下: + + struct rt_device_ops + { + rt_err_t (*init)(rt_device_t dev); + rt_err_t (*open)(rt_device_t dev, rt_uint16_t oflag); + rt_err_t (*close)(rt_device_t dev); + rt_size_t (*read)(rt_device_t dev, rt_off_t pos, void *buffer, rt_size_t size); + rt_size_t (*write)(rt_device_t dev, rt_off_t pos, const void *buffer, rt_size_t size); + rt_err_t (*control)(rt_device_t dev, int cmd, void *args); + };设备操作方法结构体 + +映射关系 + + rt_device_init() → init() + rt_device_open() → open() + rt_device_close() → close() + rt_device_read() → read() + rt_device_write() → write() + rt_device_control() → control() + +查找设备 / 初始化设备 + + 查找设备:rt_device_t rt_device_find(const char* name); + 参数:name 为设备名称 + 返回: + 设备句柄:找到对应设备 + RT_NULL:未找到设备 + + 初始化设备:rt_err_t rt_device_init(rt_device_t dev); + 参数:dev 为设备句柄 + 返回: + RT_EOK:初始化成功 + 错误码:初始化失败 +4.打开和关闭设备 + + 打开设备:rt_err_t rt_device_open(rt_device_t dev, rt_uint16_t oflags); + 参数: + dev:设备句柄 + oflags:设备打开模式标志 + 返回: + RT_EOK:打开成功 + -RT_EBUSY:设备注册时指定 RT_DEVICE_FLAG_STANDALONE,不允许重复打开 + 其他错误码:打开失败 + + 关闭设备:rt_err_t rt_device_close(rt_device_t dev); + 参数:dev 为设备句柄 + 返回: + RT_EOK:关闭成功 + -RT_ERROR:设备已完全关闭,不能重复关闭 + 其他错误码:关闭失败 +5.打开标志位 + +宏定义: + + RT_DEVICE_OFLAG_CLOSE(0x000):设备已关闭(内部使用) + RT_DEVICE_OFLAG_RDONLY(0x001):以只读方式打开 + RT_DEVICE_OFLAG_WRONLY(0x002):以只写方式打开 + RT_DEVICE_OFLAG_RDWR(0x003):以读写方式打开 + RT_DEVICE_OFLAG_OPEN(0x008):设备已打开(内部使用) + RT_DEVICE_FLAG_STREAM(0x040):以流模式打开 + RT_DEVICE_FLAG_INT_RX(0x100):以中断接收模式打开 + RT_DEVICE_FLAG_DMA_RX(0x200):以 DMA 接收模式打开 + RT_DEVICE_FLAG_INT_TX(0x400):以中断发送模式打开 + RT_DEVICE_FLAG_DMA_TX(0x800):以 DMA 发送模式打开 + 注意事项:上层应用需设置接收回调函数时,必须以 RT_DEVICE_FLAG_INT_RX 或 RT_DEVICE_FLAG_DMA_RX 方式打开设备,否则回调函数不生效。 +6.控制设备 + + 函数:rt_err_t rt_device_control(rt_device_t dev, rt_uint8_t cmd, void* arg); + 参数: + dev:设备句柄 + cmd:命令控制字(与设备驱动相关) + arg:控制的参数 + cmd 通用宏定义: + RT_DEVICE_CTRL_RESUME(0x01):恢复设备 + RT_DEVICE_CTRL_SUSPEND(0x02):挂起设备 + RT_DEVICE_CTRL_CONFIG(0x03):配置设备 + RT_DEVICE_CTRL_SET_INT(0x10):设置中断 + RT_DEVICE_CTRL_CLR_INT(0x11):清中断 + RT_DEVICE_CTRL_GET_INT(0x12):获取中断状态 + 返回: + RT_EOK:执行成功 + -RT_ENOSYS:dev 为空,执行失败 + 其他错误码:执行失败 +7.数据接收回调 + + 函数:rt_err_t rt_device_set_rx_indicate(rt_device_t dev, rt_err_t (*rx_ind)(rt_device_t dev, rt_size_t size)); + 功能:硬件设备收到数据时,通过回调函数通知上层应用线程有数据到达 + 参数: + dev:设备句柄 + rx_ind:回调函数指针 + 返回:RT_EOK 表示设置成功 +8.数据发送完成回调 + +功能:应用程序调用 rt_device_write() 发送数据时,若底层支持自动发送,可设置回调函数,在数据发送完成后(如 DMA 传送完成、FIFO 写入完毕中断)调用 + + 函数:rt_err_t rt_device_set_tx_complete(rt_device_t dev, rt_err_t (*tx_done)(rt_device_t dev, void *buffer)); + 参数: + dev:设备句柄 + tx_done:回调函数指针 + 返回:RT_EOK 表示设置成功 +2.1 GPIO 概念与原理 + +芯片引脚分类:电源、时钟、控制与 I/O + +I/O 口模式: + +通用输入 / 输出(GPIO) + +功能复用 I/O(如 SPI/I2C/UART 等) + +特性:多数 MCU 引脚功能可配置,通过配置切换实际功能 + +可编程控制中断:支持多种中断触发模式 + +2.2应用开发 | 常用接口 + + rt_pin_mode():设置引脚模式 + rt_pin_write():设置引脚电平 + rt_pin_read():读取引脚电平 + rt_pin_attach_irq():绑定引脚中断回调函数 + rt_pin_irq_enable():使能引脚中断 + rt_pin_detach_irq():脱离引脚中断回调函数 +2.3配置 GPIO 引脚模式 + + 函数:void rt_pin_mode(rt_base_t pin, rt_base_t mode); + mode 宏定义: + PIN_MODE_OUTPUT(0x00):输出 + PIN_MODE_INPUT(0x01):输入 + PIN_MODE_INPUT_PULLUP(0x02):上拉输入 + PIN_MODE_INPUT_PULLDOWN(0x03):下拉输入 + PIN_MODE_OUTPUT_OD(0x04):开漏输出 +2.4应用开发 | 输出高低电平 + + 函数:void rt_pin_write(rt_base_t pin, rt_base_t value); + value 宏定义: + PIN_LOW:低电平 + PIN_HIGH:高电平 +3.1 I2C 总线简介 + +定义:Inter-Integrated Circuit,由飞利浦公司于 1980 年代提出,用于连接低速外部设备 + +传输速率模式: + +低速模式:10Kbit/s + +标准模式:100Kbit/s + +快速模式:400Kbit/s + +高速模式:3.4Mbit/s + +3.2 I2C 总线协议 | 起始位和结束位 + +起始位(S):SCL 为高电平时,SDA 由高电平变为低电平 + +结束位(P):SCL 为高电平时,SDA 由低电平变为高电平 + +3.3 I2C 从机常用模式 + +向某个寄存器写 1 字节数据:改变传感器寄存器值 + +向某个寄存器写多字节数据:同上 + +从某个寄存器读 1 字节数据:读取传感器寄存器状态 + +从某个寄存器读多字节数据:读取传感器数据 + +3.4 API | 查找设备 + +函数:rt_device_t rt_device_find(const char* name); + +功能:根据 I2C 总线设备名称获取句柄,用于操作设备 + +示例: + + /* I2C 总线设备句柄 */ + struct rt_i2c_bus_device *i2c_bus; + /* 查找 I2C 总线设备,获取句柄 */ + i2c_bus = (struct rt_i2c_bus_device*)rt_device_find(name); +说明:注册的 I2C 设备名称通常为 i2c0、i2c1 等 + +3.5 API | 传输 + +函数:rt_size_t rt_i2c_transfer(struct rt_i2c_bus_device *bus, struct rt_i2c_msg msgs[], rt_uint32_t num); + +结构体 struct rt_i2c_msg: + + struct rt_i2c_msg + { + rt_uint16_t addr; /* 从机地址 */ + rt_uint16_t flags; /* 读、写标志等 */ + rt_uint16_t len; /* 数据字节数 */ + rt_uint8_t *buf; /* 读写数据缓冲区指针 */ + }; +标志 flags 宏定义: + + RT_I2C_WR(0x0000):写标志 + RT_I2C_RD:读标志 + RT_I2C_ADDR_10BIT:10 位地址模式 + RT_I2C_NO_START(1u <<4):无开始条件 + RT_I2C_IGNORE_NACK(1u <<5):忽视 NACK + RT_I2C_NO_READ_ACK(1u <<6):读时不发送 ACK +注意:函数会调用 rt_mutex_take(),不可在中断服务程序中调用,否则会报错 + +3.6 RT-Thread I2C 使用思路 + +1.查找 I2C 总线设备 + +2.构造 msgs 消息 + +3.启动 transfer 传输 + +4.处理结果 + +4.1 SPI 总线概念与原理 + +定义:Serial Peripheral Interface,高速、全双工、同步通信总线,用于短距离通讯 + +应用:连接 EEPROM、FLASH、实时时钟、AD 转换器等 + +常用 4 线:SCLK(时钟)、MOSI(主机输出从机输入)、MISO(主机输入从机输出)、CS(片选) + +4.2 概念与原理(RT-Thread 中) + +SPI 设备分类: + +SPI 总线:对应 SPI 控制器 + +SPI 设备:对应不同 CS 连接的从设备 + +使用前提:先注册 SPI 总线,再将从设备挂载到总线上 + +4.3 RT-Thread SPI 开发模式 + +1.编写 SPI BUS 驱动 + +2.注册 SPI Device 设备 + +3.打开 SPI Device 设备 + +4.使用 SPI 框架提供的 API 编程发送接收数据 + +5.关闭 SPI Device 设备 + +4.4 注册 SPI 设备 + +函数: + + rt_err_t rt_spi_bus_attach_device(struct rt_spi_device *device, const char *name, const char *bus_name, void *user_data); + +功能:将 SPI 设备挂载到指定 SPI 总线上,向内核注册设备,并保存 user_data 到控制块 + +4.6 SPI 注册设备(STM32 BSP) + +函数: + + rt_err_t rt_hw_spi_device_attach(const char *bus_name, const char *device_name, GPIO_TypeDef *cs_gpiox, uint16_t cs_gpio_pin); +命名原则: + +SPI 总线:spix(如 spi0、spi1) + +SPI 设备:spixy(如 spi10 表示挂载在 spi1 总线上的 0 号设备) + +说明:user_data 通常为 SPI 设备的 CS 引脚指针,传输时控制器操作此引脚进行片选 + +4.7 控制 SPI 设备相关 API + +查找设备:rt_device_find() + +配置设备:rt_spi_configure() + +传输一次数据:rt_spi_transfer() + +发送一次数据:rt_spi_send() + +接收一次数据:rt_spi_recv() + +连续两次发送:rt_spi_send_then_send() + +先发送后接收:rt_spi_send_then_recv() + +自定义传输数据:rt_spi_transfer_message() + +注意:SPI 数据传输接口会调用 rt_mutex_take(),不可在中断服务程序中调用,否则会报错 + +4.8 查找 SPI 设备 + +函数:rt_device_t rt_device_find(const char* name); + +示例: + + #define W25Q_SPI_DEVICE_NAME "spi10" + struct rt_spi_device *spi_dev_w25q; + /* 查找 spi 设备获取句柄 */ + spi_dev_w25q = (struct rt_spi_device *)rt_device_find(W25Q_SPI_DEVICE_NAME); +说明:注册的 SPI 设备名称通常为 spi10 等 + +4.9 SPI 设备驱动配置 + +函数:rt_err_t rt_spi_configure(struct rt_spi_device *device, struct rt_spi_configuration *cfg) + +结构体 struct rt_spi_configuration: + + struct rt_spi_configuration + { + rt_uint8_t mode; /* 模式 */ + rt_uint8_t data_width; /* 数据宽度(8/16/32位) */ + rt_uint16_t reserved; /* 保留 */ + rt_uint32_t max_hz; /* 最大频率 */ + }; +模式宏定义: + +数据传输顺序: + +RT_SPI_LSB(0<<2):LSB 位在前 + +RT_SPI_MSB(1<<2):MSB 位在前 + +主从模式: + +RT_SPI_MASTER(0<<3):主设备 + +RT_SPI_SLAVE(1<<3):从设备 + +时钟极性和相位: + +RT_SPI_MODE_0(0|0):CPOL=0,CPHA=0 + +RT_SPI_MODE_1(0|RT_SPI_CPHA):CPOL=0,CPHA=1 + +RT_SPI_MODE_2(RT_SPI_CPOL|0):CPOL=1,CPHA=0 + +RT_SPI_MODE_3(RT_SPI_CPOL|RT_SPI_CPHA):CPOL=1,CPHA=1 + +其他: + +RT_SPI_CS_HIGH(1<<4):片选高电平有效 + +RT_SPI_NO_CS(1<<5):无片选 + +RT_SPI_3WIRE(1<<6):SI/SO 引脚共用 + +RT_SPI_READY(1<<7):从设备拉低暂停 + +4.10 SPI 设备传输数据(一次通信) + +函数:rt_size_t rt_spi_transfer(struct rt_spi_device *device, const void *send_buf, void *recv_buf, rt_size_t length); + +功能:传输一次数据,无需手动控制片选(开始发送时选中,返回时释放) + +说明:等同于调用 rt_spi_transfer_message() 传输一条消息 + +4.11 单独发送 / 接收数据(一次通信) + +单独发送:rt_size_t rt_spi_send(struct rt_spi_device *device, const void *send_buf, rt_size_t length);(忽略接收数据) + +单独接收:rt_size_t rt_spi_recv(struct rt_spi_device *device, void *recv_buf, rt_size_t length); + +4.12 先发送后接收数据 + +函数:rt_err_t rt_spi_send_then_recv(struct rt_spi_device *device, const void *send_buf, rt_size_t send_length, void *recv_buf, rt_size_t recv_length); + +功能:先发送数据,再接收数据,中间不释放片选 + +说明: + +发送第一条数据时开始片选,忽略接收数据 + +发送第二条数据时,主设备发送 0XFF,接收数据保存到 recv_buf + +函数返回时释放片选 + +适合从 SPI 从设备读取数据(先发送命令和地址,再接收指定长度数据) \ No newline at end of file -- Gitee From 5f0fa1352c4089a14137cfe237053463fe8b2a83 Mon Sep 17 00:00:00 2001 From: zqy <695961496@qq.com> Date: Sat, 2 Aug 2025 10:50:22 +0800 Subject: [PATCH 5/6] day5 --- .../day1_homework.md" | 2 + .../day4_homework/drv_vir.c" | 35 ++++ .../day4_homework/drv_vir.h" | 16 ++ .../day4_homework/main.c" | 39 ++++ .../day4_homework/vir.c" | 90 +++++++++ .../day4_homework/vir.h" | 28 +++ ...210\252\345\233\276 2025-07-25 190811.png" | Bin 0 -> 141692 bytes ...210\252\345\233\276 2025-07-25 191350.png" | Bin 0 -> 206330 bytes .../day2\347\254\224\350\256\260.md" | 182 ++++++++++++++++++ 9 files changed, 392 insertions(+) create mode 100644 "2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day1_homework.md" create mode 100644 "2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day4_homework/drv_vir.c" create mode 100644 "2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day4_homework/drv_vir.h" create mode 100644 "2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day4_homework/main.c" create mode 100644 "2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day4_homework/vir.c" create mode 100644 "2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day4_homework/vir.h" create mode 100644 "2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/\345\261\217\345\271\225\346\210\252\345\233\276 2025-07-25 190811.png" create mode 100644 "2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/\345\261\217\345\271\225\346\210\252\345\233\276 2025-07-25 191350.png" create mode 100644 "2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\347\254\224\350\256\260/day2\347\254\224\350\256\260.md" diff --git "a/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day1_homework.md" "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day1_homework.md" new file mode 100644 index 0000000..b4bab59 --- /dev/null +++ "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day1_homework.md" @@ -0,0 +1,2 @@ +![alt text](<屏幕截图 2025-07-25 190811.png>) +![alt text](<屏幕截图 2025-07-25 191350.png>) \ No newline at end of file diff --git "a/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day4_homework/drv_vir.c" "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day4_homework/drv_vir.c" new file mode 100644 index 0000000..148ebd1 --- /dev/null +++ "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day4_homework/drv_vir.c" @@ -0,0 +1,35 @@ +#include + +#if defined(RT_USING_VIR) + +struct vir_test vir; +void printfinfo(struct rt_device * device,rt_uint8_t * str) +{ + rt_kprintf("vir info :%s\n",str); +} +void vir_set_val(struct rt_device * device,rt_uint32_t val) +{ + vir.val = val; +} +void vir_get_val(struct rt_device * device,rt_uint32_t *val) +{ + *val = vir.val; +} +struct rt_vir_ops ops = +{ + printfinfo, + vir_set_val, + vir_get_val, +}; + +static int vir_init(void) +{ + vir.val = 0; + vir.info = "test_vir"; + rt_hw_vir_register(&vir.parent,"vir",&ops,(void*)vir.info); +} +INIT_APP_EXPORT(vir_init); + +#endif + + diff --git "a/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day4_homework/drv_vir.h" "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day4_homework/drv_vir.h" new file mode 100644 index 0000000..fdd0d8d --- /dev/null +++ "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day4_homework/drv_vir.h" @@ -0,0 +1,16 @@ +#ifndef __DRV_VIR_H__ +#define __DRV_VIR_H__ +#include +#include + + +struct vir_test +{ + + struct rt_vir_device parent; + rt_uint32_t val; + char * info; +}; + +#endif + diff --git "a/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day4_homework/main.c" "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day4_homework/main.c" new file mode 100644 index 0000000..f8c925d --- /dev/null +++ "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day4_homework/main.c" @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2023-07-06 Supperthomas first version + * 2023-12-03 Meco Man support nano version + */ + +#include +#include +#include +#ifndef RT_USING_NANO +#include +#endif /* RT_USING_NANO */ + +int main(void) +{ + //IO + rt_device_t vir = rt_device_find("vir"); + if(vir == RT_NULL) + { + rt_kprintf("find vir dev err\n"); + return -RT_ERROR; + } + rt_uint32_t val = 1314; + rt_uint32_t ret = 0; + rt_device_open(vir,RT_DEVICE_FLAG_RDWR); + rt_device_write(vir,0,&val,4); + rt_device_read(vir,0,&ret,4); + rt_kprintf("ret :%d\n",ret); + rt_device_close(vir); + val = 333; + rt_vir_wirte((rt_vir_device_t)vir,val); + rt_vir_read((rt_vir_device_t)vir,&ret); + rt_kprintf("ret :%d\n",ret); +} diff --git "a/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day4_homework/vir.c" "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day4_homework/vir.c" new file mode 100644 index 0000000..e3c39b9 --- /dev/null +++ "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day4_homework/vir.c" @@ -0,0 +1,90 @@ +#include +#include + +#if defined(RT_USING_VIR) + +rt_err_t _vir_init(rt_device_t dev) +{ + rt_kprintf("vir init \n"); + return RT_EOK; +} +rt_err_t _vir_open(rt_device_t dev, rt_uint16_t oflag) +{ + rt_kprintf("vir open\n"); + return RT_EOK; +} +rt_err_t _vir_close (rt_device_t dev) +{ + rt_kprintf("vir close\n"); + return RT_EOK; +} +rt_ssize_t _vir_read(rt_device_t dev, rt_off_t pos, void *buffer, rt_size_t size) +{ + rt_vir_device_t device = (rt_vir_device_t)dev; + if(device->ops->vir_get_val) + { + device->ops->vir_get_val(dev,(rt_uint32_t*)buffer); + return RT_EOK; + } + return -RT_ERROR; +} + +rt_ssize_t _vir_wirte(rt_device_t dev, rt_off_t pos, const void *buffer, rt_size_t size) +{ + rt_vir_device_t device = (rt_vir_device_t)dev; + if(device->ops->vir_set_val) + { + device->ops->vir_set_val(dev,*(rt_uint32_t*)buffer); + return RT_EOK; + } + return -RT_ERROR; +} +rt_err_t _vir_control(rt_device_t dev, int cmd, void *args) +{ + rt_kprintf("vir control %d\n",cmd); + return RT_EOK; +} + +rt_err_t rt_hw_vir_register(rt_vir_device_t device, const char *name, const struct rt_vir_ops *ops, const void *user_data) +{ + RT_ASSERT(ops != RT_NULL); + rt_err_t result; + device->ops = ops; + device->parent.init = _vir_init; + device->parent.open = _vir_open; + device->parent.close = _vir_close; + device->parent.read = _vir_read; + device->parent.write = _vir_wirte; + device->parent.control = _vir_control; + result = rt_device_register(&device->parent, name, RT_DEVICE_FLAG_RDWR); + return result; +} + +rt_err_t rt_vir_read(rt_vir_device_t device,rt_uint32_t * val) +{ + RT_ASSERT(device != RT_NULL && device->ops != RT_NULL); + rt_device_t dev = (rt_device_t)device; + + if(device->ops->vir_get_val) + { + device->ops->vir_get_val(dev,val); + return RT_EOK; + } + return -RT_ERROR; + +} + +rt_err_t rt_vir_wirte(rt_vir_device_t device,rt_uint32_t val) +{ + RT_ASSERT(device != RT_NULL && device->ops != RT_NULL); + rt_device_t dev = (rt_device_t)device; + if(device->ops->vir_set_val) + { + device->ops->vir_set_val(dev,val); + return RT_EOK; + } + return -RT_ERROR; +} + + +#endif \ No newline at end of file diff --git "a/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day4_homework/vir.h" "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day4_homework/vir.h" new file mode 100644 index 0000000..12563f6 --- /dev/null +++ "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/day4_homework/vir.h" @@ -0,0 +1,28 @@ + +#ifndef __VIR_H__ +#define __VIR_H__ + +#include +#include +struct rt_vir_ops +{ + void (*printfinfo)(struct rt_device * device,rt_uint8_t * str); +void (*vir_set_val)(struct rt_device * device,rt_uint32_t val); +void (*vir_get_val)(struct rt_device * device,rt_uint32_t *val); +}; +/** + * @brief adc device + */ +struct rt_vir_device +{ + struct rt_device parent; + const struct rt_vir_ops *ops; +}; +typedef struct rt_vir_device *rt_vir_device_t; + +rt_err_t rt_hw_vir_register(rt_vir_device_t device, const char *name, const struct rt_vir_ops *ops, const void *user_data); +rt_err_t rt_vir_read(rt_vir_device_t device,rt_uint32_t * val); +rt_err_t rt_vir_wirte(rt_vir_device_t device,rt_uint32_t val); + + +#endif diff --git "a/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/\345\261\217\345\271\225\346\210\252\345\233\276 2025-07-25 190811.png" "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/\345\261\217\345\271\225\346\210\252\345\233\276 2025-07-25 190811.png" new file mode 100644 index 0000000000000000000000000000000000000000..3961a8c4f399f52fd06ae7c4bd496c9940aa611d GIT binary patch literal 141692 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 literal 0 HcmV?d00001 diff --git "a/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/\345\261\217\345\271\225\346\210\252\345\233\276 2025-07-25 191350.png" "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\344\275\234\344\270\232/\345\261\217\345\271\225\346\210\252\345\233\276 2025-07-25 191350.png" new file mode 100644 index 0000000000000000000000000000000000000000..637d346b53b7985201d42c004c501f9c97009951 GIT binary patch literal 206330 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
    ?|vC%TQD-U}t{QcSm)+JU`-uPpHDI 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ΝN3vE&Y}&L;Pytb$8Jt(riDl#rwa&o{lM^ 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 JUfL|={{b!!8#Mp` literal 0 HcmV?d00001 diff --git "a/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\347\254\224\350\256\260/day2\347\254\224\350\256\260.md" "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\347\254\224\350\256\260/day2\347\254\224\350\256\260.md" new file mode 100644 index 0000000..db4507c --- /dev/null +++ "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\347\254\224\350\256\260/day2\347\254\224\350\256\260.md" @@ -0,0 +1,182 @@ +# 嵌入式实时操作系统相关知识 + +什么情况下使用嵌入式实时操作系统 + +单一系统:系统功能单一的情况下,此时系统整体功能没有细分为多个线程的必要,采用裸机较为合适。 + +举例:电动牙刷。 + +复杂系统:系统功能丰富的情况下,使用裸机编程需要用户编写复杂的逻辑去协调多个事件,同时代码的耦合度较高。 + +举例:机器人。 + +裸机与 RTOS 的优缺点对比 + + 裸机优点 + 在单一功能的嵌入式系统使用裸机可以提高运行效率; + 可以使用较少的存储实现单一功能的嵌入式系统; + + 裸机缺点 + 代码耦合度较高,复用性较差; + 不适合复杂的嵌入式系统; + 代码不合理时容易造成系统阻塞 + + RTOS优点 + 代码耦合度低,复用性较好; + 可以使用任务划分的方式降低实现复杂嵌入式系统的代码逻辑; + RTOS下的延时不会一直占用CPU,延时期间处理其他任务; + 使用 RTOS 提供的线程同步与信息传递会提高系统的实时性 + RTOS缺点 + 不适合小容量嵌入式系统,RTOS 本身会占据部分存储; + 不适合单一嵌入式系统,系统调度会引入额外的开销 + +RTOS 编程思想 + +“分而治之”:一个巨大的工程,需要分为多个小的模块或者目标去完成。我们会运用 “分而治之” 的思想,将庞大而复杂的任务进行拆分,分解成多个简单的小任务。每个任务的复杂度就会被降低。 + +内核入门 -- 典型概念 + +1.什么是临界区:临界区的资源在同一时间只能被一个线程(住户)使用,所以一旦临界资源被占用,其他的线程(住户)能做的就只有等待。 + +2.阻塞概念:了解了临界区的概念之后,阻塞概念就好理解了。一个线程先占用了临界区的资源,此时如果其他的线程想使用临界区资源就必须等待。这种占用临界区资源,阻塞其他线程继续执行的情况就是线程阻塞(Blocking)。 + + 执行一个任务,比如使用饮水机接水。拿了一个杯子接水,而必须在饮水机前面等着水接完,这种就是阻塞式线程。 + + 如果拿了杯子接水,把杯子放到饮水机下面,智能饮水机会在杯子接满水之后,自动发出异步通知(比如声音告警)。可以在此期间做其他的事情,这种就是非阻塞式线程(Non-Blocking)。 + +内核入门 -- 如何新建任务 / 线程? + +RT-Thread 中,一个线程要成为可执行的对象,就必须由操作系统的内核来为它创建一个线程。可以通过如下的接口创建一个动态线程: + + rt_thread_t rt_thread_create (const char* name, + void (entry) (void parameter), + void* parameter, + rt_uint32_t stack_size, + rt_uint8_t priority, + rt_uint32_t tick); +调用这个函数时,系统会从动态堆内存中分配一个线程句柄以及按照参数中指定的栈大小相应的空间。分配出来的栈空间是按照 rtconfig.h 中配置的 RT_ALIGN_SIZE 方式对齐。 + +内核入门 -- 线程接口参数(RT-Thread) + + 参数描述 + + name-----线程的名称;线程名称的最大长度由 rtconfig.h 中定义的RT_NAME_MAX宏指定,多余部分会被自动截掉 + + entry-----线程入口函数 + + parameter-----线程入口函数参数 + + stack_size-----线程栈大小,单位是字节。在大多数系统中需要做栈空间地址对齐(例如 ARM 体系结构中需要向 4 字节地址对齐) + + priority-----线程的优先级。优先级范围根据系统配置情况(rtconfig.h 中的 RT_THREAD_PRIORITY_MAX 宏定义),如果支持的是 256 级优先级,那么范围是从 0~255,数值越小优先级越高,0 代表最高优先级 + + tick-----线程的时间片大小。时间片(tick)的单位是操作系统的时钟节拍。当系统中存在相同优先级线程时,这个参数指定线程一次调度能够运行的最大时间长度。这个时间片运行结束时,调度器自动选择下一个就绪态的同优先级线程进行运行 + +返回 + + RT_EOK:线程创建成功; + -RT_ERROR:线程创建失败 + +内核入门 -- 线程启动 + +创建(初始化)的线程状态处于初始状态,并未进入就绪线程的调度队列,可以在线程初始化 / 创建成功后调用下面的函数接口让该线程进入就绪态: + + rt_err_t rt_thread_startup (rt_thread_t thread) + +当调用这个函数时,将把线程的状态更改为就绪状态,并放到相应优先级队列中等待调度。如果新启动的线程优先级比当前线程优先级高,将立刻切换到这个线程。 + +内核入门 -- 线程状态的转化(RT-Thread) + +1.关闭状态可通过 + + rt_thread_create () + rt_thread_init () +进入初始状态; + +2.初始状态可通过 + + rt_thread_delete () + +回到关闭状态,也可通过 + + rt_thread_startup () 进入就绪状态。 + +就绪状态可进入运行状态; + +3.运行状态可通过 + + rt_thread_exit () + +回到关闭状态,通过 + + rt_thread_delay () + rt_sem_take () + rt_mutex_take () + rt_mp_alloc () + rt_event_recv () + rt_mb_recv () + rt_mq_recv () +等进入挂起状态,也可直接回到就绪状态。 + +4.挂起状态可通过 + + rt_thread_resume ()、 + rt_thread_detach ()、 + rt_sem_release ()、 + rt_mutex_release ()、 + rt_mp_release ()、 + rt_event_send ()、 + rt_mb_send ()、 + rt_mq_send () +等回到就绪状态,也可通过 + + rt_thread_suspend () +保持挂起状态。 + +内核入门 -- 线程注意事项 + +1.无循环的线程被执行完毕后,系统自动回收资源,无需手动删除。 + + void thread1(void) + { + /* do something step-1 */ + /* do something step-2 */ + /* do something step-3 */ + } +1.循环的线程需要有让出 CPU 的动作。 + +主动让出:使用系统延时。 + +被动让出:等待 IPC。 + +举例(主动让出:使用系统延时): + + int main(void) + { + int count =1; + /* set LED0 pin mode to output */ + rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT); + while (count++) + { + rt_pin_write(LED0_PIN, PIN_HIGH); + rt_thread_mdelay(500); + rt_pin_write(LED0_PIN, PIN_LOW); + rt_thread_mdelay(500); + } + return RT_EOK; + } +内核入门 -- 线程调度 + +调度器相当于指挥官,按照一定的规则,使系统有秩序的运行。 + +调度器的工作 + +1.决定任务运行顺序:根据调度规则决定,包括优先级抢占(保证一个最高优先级的任务运行(抢占式调度器则需立刻运行),从就绪链表中查找最高优先级任务)和时间片轮转(相同优先级状态下根据时间片大小轮转运行)。 + +2.执行任务切换:任务切换方式有正常状态下的任务到任务的切换,以及中断状态下的切换(若中断服务程序唤醒了高优先级任务,在中断完成时,被中断的线程挂起,优先级高的线程开始运行)。 + +调度规则 + +优先级抢占:不同优先级下,高优先级线程抢占低优先级线程运行。如:thread2 正在运行,thread1 就绪且优先级更高,thread1 就会抢占 thread2 开始运行。 + +时间片轮转:相同优先级线程,按照设置的时间片轮转运行。如:两个线程都是就绪状态,并且具备最高优先级;线程 1 设定为 10 个时间片,线程 2 设定为 20 个时间片,则线程 1 与线程 2 执行的时间占空比是 2:1。 \ No newline at end of file -- Gitee From 1ac7b3f631d26f261193d4db834164bfdb976ed0 Mon Sep 17 00:00:00 2001 From: zqy <695961496@qq.com> Date: Sat, 2 Aug 2025 11:07:25 +0800 Subject: [PATCH 6/6] day5 --- .../day5\347\254\224\350\256\260.md" | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 "2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\347\254\224\350\256\260/day5\347\254\224\350\256\260.md" diff --git "a/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\347\254\224\350\256\260/day5\347\254\224\350\256\260.md" "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\347\254\224\350\256\260/day5\347\254\224\350\256\260.md" new file mode 100644 index 0000000..a9399d4 --- /dev/null +++ "b/2025/\347\254\2546\347\273\204(GD32F527I-EVAL)/\345\221\250\345\205\250\346\235\250/\347\254\224\350\256\260/day5\347\254\224\350\256\260.md" @@ -0,0 +1,10 @@ +# 软件包 +rt-rtthread软件包的一个市场。不会写的,或者实现难度比较大的,可以先翻一翻这个人报市场,站在大佬肩上学习。 + +链接https://packages.rt-thread.org/ + +软件包通过env工具获取 + +输入menuconfig在这里找软件包,如果当 Env 工具无法自动获取最新软件包时,可通过 pkgs --upgrade 更新仓库 + +之后pkgs --update 拉取软件包 \ No newline at end of file -- Gitee