- 博客(19)
- 收藏
- 关注
原创 FreeRTOS--队列集
一个队列只允许任务间传递的消息为同一种数据类型,如果需要传递不同数据类型的消息的话,那就需要创建多个不同数据类型的队列,使用队列集来管理。队列集:用于的机制。它允许一个任务同时监听多个队列或信号量的状态。
2025-05-27 11:35:58
735
原创 FreeRTOS--信号量
在前面说过,FreeRTOS中说过信号量是基于队列实现的,所以二值信号量的本质是一个队列长度为 1 的队列 ,该队列就只有空和满两种情况。二值信号量通常用于互斥访问或任务同步, 与互斥信号量比较类似,但是二值信号量有可能会导致优先级翻转的问题 ,所以二值信号量更适合用于同步!2. API函数函数描述()使用动态方式创建二值信号量()使用静态方式创建二值信号量()释放信号量()在中断中释放信号量()获取信号量()在中断中获取信号量计数型信号量相当于队列长度大于1 的队列。
2025-05-25 21:01:36
1209
原创 FreeRTOS--消息队列
消息队列是FreeRTOS中用于任务与任务或任务与中断之间数据交换的一种机制,采用FIFO(先进先出)方式管理数据,也可以采用LIFO(后进先出)方式。有点类似全局变量。
2025-05-25 15:48:04
916
原创 树莓派3B+ wiringPi库安装
将树莓派3b+的USB口朝下,这个方向树莓派3b+的引脚与表格一一对应。执行结果为类似表格形式的引脚图。执行结果如下图:会显示版本。
2025-05-14 20:50:54
288
原创 Linux动态库与静态库
定义:由一组预编译的目标文件( .o 或 .obj )打包成的归档文件, 在程序的编译阶段就链接到了目标文件中。格式:lib + 库名 + .a优点:1)无需外部依赖,可独立运行2)库代码直接嵌入程序,运行效率更高缺点:3)库代码随程序多次加载,可执行文件体积大3)需重新编译程序才以更新库。
2025-05-14 19:54:44
1205
原创 FreeRTOS--任务状态查询常用API函数
所有的操作都是使用下面的代码,只不过是任务2的实现不一样,所以每个小标题下的示例都是只改写了任务2的实现代码。有个别需要其他的要求会单独列出来,
2025-05-13 18:36:56
796
原创 任务的挂起与恢复
要点:要 在 FreeRTOSConfig.h 文 件 中 将 宏配置为 1无论优先级如何,被挂起的任务都将不再被执行,直到任务被恢复此函数并不支持嵌套,不论使用此函数重复挂起任务多少次,只需调用一次恢复任务函数,就不再被挂起。
2025-05-11 20:55:06
411
原创 FreeRTOS--任务的创建与删除
自动从分配任务控制块(TCB)和任务栈内存,通过 pvPortMalloc 实现动态分配调用后,任务删除,内存由空闲任务自动回收此函数创建的任务会立马进入就绪态,由任务调度器运行长期运行可能导致内存碎片化问题内存分配失败时需处理错误(如检查返回值)
2025-05-10 19:15:18
559
原创 C++的引用
引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。思维发散:在C语言中,一个数据对应一个内存,通过由一个变量名来访问这个内存空间的数据,叫做直接访问,相对直接访问,有个间接访问的说法,叫做指针。而引用相当于又给这个内存中的数据提供了一个新的变量名,
2025-01-15 12:12:11
412
原创 构造函数与析构函数
类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。构造,那构造的是什么呢?构造成员变量的初始化值,内存空间等构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。构造函数可用于为某些成员变量设置初始值。
2025-01-15 11:37:27
1174
原创 C++的命名空间
创建自己的命名空间是 C++ 中组织代码的一种好办法。命名空间可以帮助你避免名称冲突,并且清晰地组织代码。std 是 C++ 标准库的命名空间。它是一个定义在 C++ 标准库中的所有类、函数和变量的命名空间。如:我们新建一个QTCreator的C++工程,默认生成的代码在 C++ 中,如果你想使用标准库中的任何类、函数或对象,你通常有两种选择:1. 使用 std:: 前缀:这是最常见的方式,它明确指定了你正在使用的是位于 std 命名空间中的元素。2. 使用 using namespace s
2025-01-09 14:47:08
554
原创 Linux终端下关于 printf() 函数的输出说明
在输入 printf("Hello, World") 命令后,终端上并没有立即显示任何内容。这是因为没有换行符,所以内容被缓冲了,等待 3s 后,进程结束,终端上才会显示内容。的作用,执行程序后,终端上会立马显示内容,不需要等待 3s ,直到进程的结束。函数的作用,执行程序后,终端上会立马显示内容,不需要等待进程的结束。printf 语句末尾添加了换行符 \n 时,会触发行缓冲机制。fflush(stdout) 函数。
2025-01-06 14:25:38
627
原创 Linux系统编程(进程通信--消息队列)
在Linux系统中,消息队列是进程间通信(IPC)的一种机制。它允许一个或多个进程向队列中写入消息,其他进程则可以读取队列中的消息。消息队列提供了一种有序、可靠的数据传输方式。
2024-12-26 14:17:18
1857
原创 Linux系统编程(文件编程)
例如:请求权限(默认):0666,umask值:0022, 则实际权限为:0666 & (~0022) = 0666 & 0755 = 0655(即保留两个数共同表示的权限)。上面两个函数原型,有点区别,第二个原型的参数要多一个 mode,mode用于新创建文件的指定权限位。填写数据大小,即准备写入数据的长度,单位:字节。(可以大于数据的长度,也不等于实际写入数据的长度)。(可以大于数据的长度,也不等于实际写入数据的长度)。可以看出输出的结果的偏移量为66,和预期的一致,具体观看代码。2:写权限(-w-)
2024-12-23 13:44:32
1851
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅