OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2498|回复: 2

UCOSII 系统启动后会延迟几秒

[复制链接]

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2015-8-10
在线时间
16 小时
发表于 2017-1-3 15:09:20 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 liuxy236@tom.com 于 2017-1-5 20:45 编辑

    UCOSII 移植到F0,  因为功耗的原因,系统主频采用8M 内部晶振,无倍频, 先弄了2个灯交替闪烁,发现 启动系统后15秒左右 灯才开始闪,原以为是主频的问题,更换为48M ,发现还是要延迟3秒才能交替工作,统计任务也关闭掉(未使用统计任务),调试中发现进入闪灯任务的OSdelay(100)函数后 可能进行了任务切换,空闲任务的OSIdleCtr 再跳变,约15秒后才能进行正常的闪灯,实在找不到什么原因,大侠们有遇到这个情况吗?
void Start_Task(void* pdata)
{
           OS_CPU_SR cpu_sr;

                  OSDelay_init();        //时钟节拍初始化,函数调用原子delay.c文件
          OS_ENTER_CRITICAL();

           OSTaskCreate(LCD_Task,
                        (void *)0,
                        (OS_STK *)&LCD_TASK_STK[LCD_TASK_STK_SIZE - 1],
                        LCD_TASK_PRIO
                        );
                                                         
                                         
     OS_EXIT_CRITICAL();

                 OSTaskSuspend(OS_PRIO_SELF);
//          OSTaskDel(OS_PRIO_SELF);                          
}
void  LCD_Task(void* pdata)
{

          while(1)
          {
              BACKLIGHT_OFF;
             OSTimeDly(100);                  程序执行到这里后观察空闲任务的计数变量OSIdleCtr,发现快速跳变,一直到15秒后恢复执行下面的代码,之后就正常循环执行while内代码
             BACKLIGHT_ON;
             OSTimeDly(100);
          }        
}
int main(void)
{  

           
    OS_CPU_SR cpu_sr;
          Blight_Init();

         
          OSInit();
          OS_ENTER_CRITICAL();
          OSTaskCreate(Start_Task,
                               (void *)0,
                              (OS_STK *)&START_TASK_STK[START_TASK_STK_SIZE - 1],
                               START_TASK_PRIO
                                 );
          OS_EXIT_CRITICAL();                                                        
          OSStart();
          return 0;
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

19

主题

430

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1341
金钱
1341
注册时间
2016-4-22
在线时间
187 小时
发表于 2017-1-3 17:09:11 | 显示全部楼层
把开始部分代码添加耗时计算,确定那部分代码耗时比较多,这样有利于分析问题。
伤情最是晚凉天,憔悴斯人不堪怜。
邀酒摧肠三杯醉,寻香惊梦五更寒。
钗头凤斜卿有泪,荼蘼花了我无缘。
小楼寂寞新雨月,也难如钩也难圆。
回复

使用道具 举报

28

主题

288

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1212
金钱
1212
注册时间
2011-4-9
在线时间
97 小时
发表于 2017-1-3 17:24:06 | 显示全部楼层
查查系统工作频率,看看节拍时钟的配置
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-2 00:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表