主题中讨论的其他器件:HALCOGEN
工具/软件:TI-RTOS
我一直在 FreeRTOS 中处理任务、尝试处理通知事件和事件组-我让这两个事件都能正常工作(如果我将呼叫括起来使其具有特权、通知功能就能正常工作)-我发现事件组看起来比通知更快、这让我感到惊讶。 后来、我一直在尝试使用二进制信标、但没有成功。 具体而言、我似乎无法"获取"信标-我看到它们实际上是作为队列实现的。 我已经把它归结为这个简单的示例程序、它在尝试获取信标的"发件人任务"时卡住了:
/**@file sys_main.c
*@简要应用程序主文件
*@日期2016年3月2日
*@版本04.05.02
*
*此文件包含一个空的主函数
*,可用于应用程序。
*/
*
版权所有(C) 2009-2016 Texas Instruments Incorporated - www.ti.com
*
。
*。
*。
*
*/
/*用户代码开始(0)*/
/*用户代码结束*/
/*包含文件*/
#include "sys_common.h"
//*用户代码开始(1)*/
#include
#include
#include "os_task.h"
#include "os_semphr.h"
//*用户代码结束*/
*用户代码开始(2)*/
int receiver task_can_run = 0;
SemaphoreHandle_t start_semaphore = 0;
SemaphoreHandle_t stop_semaphore = 0;
void sender_task_take
={* semaphore_return =
200 semaphore_semaphore_se_se_se_se_sprue_se_sepdore = 0;semaphore_semaphore_return =* semaphore_se_semaphore_se_se_se_se_se_se_se_se_se_semaphore= 200 semaphore= void = 1 (
如果(pdFALSE == semaphore_take 返回) printf ("发件人线程无法获取起始信标\n");
否则 printf ("发件人采用 start_semaphore\n");
};
receiver_task_can_run = 1;
while (1){void
* receiver_task_task (void * semaphore)
=
0;task_task_task = 0;task_task_turb 前面
的 void = 0;void * task = void 1;task_task = veage_task = veole/ task (void);task = veage_task = veforeet t
while (1 = keepGoing){
//
BaseType_t xRunning= prvRaisePrivilege ();
Semaphore_take = pdFALSE;
while (pdsemaphore_te_return = pdFALSE){
semaphore_take = xSemaphoreTake (start_semaphore、2000);'take
= pdsemaphore');'teneetrentrecte'(如果没有特权
、则为"printf_return"}f);senore_take senore_take = xSemaphore (f);ture"(如果没有特权、则为 f);tenetrentrecte
}/*
用户代码结束*/
void main (void)
{
/*用户代码开始(3)*/
BaseType_t xReturned;
PUT ("这是一个测试\n\r");
start_semaphore = xSemaphoreCreateBinary ();
stop_semaphore = xSemaphoreCreateBinary ();
xReturned = xTaskCreate (sender_task、(const char*)"sender_task"、350、NULL、 1、NULL);
printf ("发送器 xReturned:0x%x\n"、xReturned);
xReturned = xTaskCreate (receiver_task、(const char*)"receiver_task"、 300、NULL、1、NULL);
printf ("接收器 xReturned:0x%x\n"、xReturned);
vTaskStartScheduler();
/*用户代码结束*/
}
/*用户代码开始(4)*/
//用户代码结束*/
这对我来说并不是超级关键、因为我有活动组和通知在工作、但我想知道为什么这不起作用。 我使用的是 Halcogen 04.05.02和 CCS 6.2.0.00048