![]() 设计仍然简单,但中等优先级任务中函数的执行时间
可能会引入定时问题。 嵌入式 Web 服务器任务的分离降低了这种风险,并且在任何情况下,
任何此类问题都不会影响设备控制任务。 |
![]() 如果空闲任务将 CPU 置于省电(睡眠)模式,则可以降低功耗,但也可能会
浪费,因为滴答中断有时会不必要地唤醒 CPU。 |
![]() RTOS 功能将使用处理资源。 其程度将取决于所选的内核
滴答频率。 |
![]() 如果应用程序变得太大,设计可能无法扩展。 |
结论这对于 RAM 有限的系统来说可能是一个很好的解决方案,但它仍然是处理器密集型的。 应检查系统内的剩余容量,以便将来扩展。
示例此示例是先前介绍的假设应用程序的部分实现。 使用 FreeRTOS API。
设备控制任务设备控制任务与解决方案 #2 中描述的相同。
嵌入式 Web 服务器这只是从空闲任务调用并运行到完成的函数。
中等优先级任务中等优先级任务可由以下伪代码表示。#define DELAY_PERIOD 4 #define FLASH_RATE 1000 void MediumPriorityTask( void *pvParameters ) { xQueueItem Data; TickType_t FlashTime; InitialiseQueue(); FlashTime = xTaskGetTickCount(); for( ;; ) { do { // A if( xQueueReceive( xCommsQueue, &Data, DELAY_PERIOD ) ) { ProcessRS232Characters( Data.Value ); } // B } while ( uxQueueMessagesWaiting( xCommsQueue ) ); // C if( ScanKeypad() ) { UpdateLCD(); } // D if( ( xTaskGetTickCount() - FlashTime ) >= FLASH_RATE ) { FlashTime = xTaskGetTickCount(); UpdateLED(); } } // Should never get here. return 0; }请参阅上面代码片段内的标签:
下一步 >>> 解决方案 #4: 减少处理器开销
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|