查看“︁Demo:posix freertos”︁的源代码
←
Demo:posix freertos
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
不允许您执行您所请求的操作。
您可以查看和复制此页面的源代码。
=== Demo介绍: === 保存在SDK下:bouffalo_sdk/examples/posix/freertos 这段代码主要测试了两个POSIX标准接口在FreeRTOS环境下的功能实现:消息队列(Message Queue)和信号量(Semaphore)。 === Posix标准: === '''这是一个接口标准''',由于Linux的各种版本发布非常非常多,导致如果没有标准,那么一个软件要适配所有发行版本的难度极高。IEEE组织设定了一个标准,这解释了为什么个个Linux的命令比如ls clear cd mkdir 等基本命令可以通用。 === 代码分析: === # 消息队列测试 (<code>mqueues_test.c</code>): #* 创建两个消息队列mq1和mq2 #* 创建4个线程:send1、send2和rev1、rev2 #* 每个发送者发送3条不同优先级的消息 #* 每个接收者接收3条消息 # 测试重点:消息队列的基本操作:<code>mq_open</code>、<code>mq_send</code>、<code>mq_receive</code>、<code>mq_close</code>、<code>mq_unlink</code> 非阻塞模式<code>O_NONBLOCK</code>的工作情况 # 信号量测试 (<code>semaphores_test.c</code>): #* 实现了一个经典的生产者-消费者模型 #* <code>occupied</code>: 控制缓冲区可用空间 #* <code>empty</code>: 控制缓冲区已使用空间 #* <code>lock</code>: 互斥锁保护缓冲区访问 # 测试重点:信号量的基本操作:<code>sem_init</code>、<code>sem_wait</code>、<code>sem_post</code>、<code>sem_destroy</code>,多线程同步和互斥机制,生产者-消费者问题的正确处理 === 示例输出: === <syntaxhighlight lang="bash" line="1"> =========================== uart sig1:ffffffff, sig2:0000f32f clock gen1:9ffffffd, gen2:0fff0c11 xtal:40000000Hz(crystal) board init done =========================== [OS] Starting proc_hellow_entry task... Enter into send_1 [1] send 'msg test 1' in thread send_1. [2] send 'msg test 2' in thread send_1. [3] send 'msg test 3' in thread send_1. Enter into send_2 [1] send 'msg test 1' in thread send_2. [2] send 'msg test Enter into receive_1 [1] receive 'msg test 1' in thread receive_1. [2] receive 'msg test 2' in thread receive_1. [3] receive 'msg test 3' in thread receive_1. Enter into receive_2 [1] receiv2' in thread send_2. [3] send 'msg test 3' in thread send_2. e 'msg test 1' in thread receive_2. [2] receive 'msg test 2' in thread receive_2. [3] receive 'msg test 3' in thread receive_2. mq PASS producer has added 0 to the buffer[0] producer has added 100 to the buffer[1] producer has added 200 to the buffer[2] producer has added 300 to the buffer[3] producer has added 400 to the buffer[4] consumer has taken 0 from buffer[0] consumer has taken 100 from buffer[1] consumer has taken 200 from buffer[2] consumer has taken 300 from buffer[3] consumer has taken 400 from buffer[4] producer has added 500 to the buffer[0] producer has added 600 to the buffer[1] producer has added 700 to the buffer[2] producer has added 800 to the buffer[3] producer has added 900 to the buffer[4] consumer has taken 500 from buffer[0] consumer has taken 600 from buffer[1] consumer has taken 700 from buffer[2] consumer has taken 800 from buffer[3] consumer has taken 900 from buffer[4] sema PASS </syntaxhighlight>
返回
Demo:posix freertos
。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息