主题中讨论的其他器件: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