首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FreeRTOS Posix GCC模拟器vTaskDelay延迟不正确

FreeRTOS Posix GCC模拟器vTaskDelay延迟不正确
EN

Stack Overflow用户
提问于 2015-11-09 20:10:06
回答 1查看 329关注 0票数 1

我正在玩FreeRTOS的Posix,GCC模拟器,创建简单的任务,延迟1秒,打印没有给出正确的结果。创建像这样的任务应该会显示每1秒打印一次文本,但看起来更像是打印之间的8-9秒。可能的问题是什么?

代码语言:javascript
复制
void prvTask1( void *pvParameters )
{

    for ( ;; )
    {
        printf( "Task 1 ...%d\n", xTaskGetTickCount());

        vTaskDelay( 1000 / portTICK_RATE_MS );
    }
}

配置:

代码语言:javascript
复制
#define configTICK_RATE_HZ              ( ( portTickType ) 1000 )
#define portTICK_RATE_MS                ( ( portTickType ) 1000 / configTICK_RATE_HZ )

我已经使用值进行了测试:

代码语言:javascript
复制
#define configTICK_RATE_HZ              ( ( portTickType ) 250)
#define portTICK_RATE_MS                ( ( portTickType ) 1000 / configTICK_RATE_HZ )

它看起来像是每个printf大约1秒。不知何故,从~500 > 1000增加值似乎在1秒延迟(变得比1秒多得多)上产生更糟糕的结果。

EN

回答 1

Stack Overflow用户

发布于 2015-11-13 21:59:30

FreeRtosConfig.h演示FreeRtos说:

代码语言:javascript
复制
#define configTICK_RATE_HZ  ( 1000 )     
// In this non-real time simulated environment 
// the tick frequency has to be at least a multiple 
// of the Win32 tick frequency, and therefore very slow. 

也许您应该尝试构建并运行FreeRtos的原始示例。我确实尝试过运行FreeRtos8.2.1的示例,vTaskDelay运行得很好

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33608808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档