打印
[Cortex-M0技术交流]

Nano100芯片 移植Ucos2

[复制链接]
1372|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1471225546|  楼主 | 2014-3-31 09:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
1471225546|  楼主 | 2014-4-1 11:42 | 只看该作者
本帖最后由 1471225546 于 2014-4-2 16:20 编辑

白高兴一场:
小弟想移植Ucos,其在 SYS_Task下创建了2个任务,测试了下,任务的挂起,唤醒,可以,但是只要一涉及到时间的函数都会跑到闲置函数中去,怀疑是时间函数有问题,定义了一个SysTick_Handler,可是进都没有进去。而且任务运行的时候只能在当前优先级最高级的任务中使劲运行,悲剧了,多任务都没有进行切换。我怀疑是不是时间函数没有初始化。求大神指导,都搞了我好几天了。


void SysTick_Handler(void)
{
                OS_CPU_SR  cpu_sr;
    OS_ENTER_CRITICAL();;                                       
    OSIntNesting++;
    OS_EXIT_CRITICAL();
                OSTimeTick();
                OSIntExit();
}
//定义堆栈空间
#define STACKSIZE 128
OS_STK SYS_Task_Stack[STACKSIZE];
#define SYS_Task_Prio        54
void SYS_Task(void *Id);

OS_STK Task1_Stack[STACKSIZE];
void Task1(void *Id);
#define Task1_Prio          51

OS_STK Task2_Stack[STACKSIZE];
void Task2(void *Id);
#define Task2_Prio         53

void Task1(void *Id)  //优先级最高
{
     int n  = 0,i;
                INT8U temp;
                while(1)
                {
                                 SEND_ISP_UART(0x77);   //--串口的打印函数
                                OSTimeDly(10);  //延时  如果不唤醒,就跑到闲置的任务中去了
                }
}

void Task2(void *Id)//次高
{
    int n = 0,i;
                while(1)
                {
                                 SEND_ISP_UART(0x33);   //--串口的打印函数
                                  OSTimeDlyResume(51) ;  //唤醒下。然后就跑到上面的任务中了
                }
}


void SYS_Task(void *Id)//最低  ----貌似没这个任务的事,0x66都没收到过
{

    OSTaskCreate(Task1,  (void *)0,  (OS_STK *)&Task1_Stack[STACKSIZE-1],  Task1_Prio);
    OSTaskCreate(Task2,  (void *)0,  (OS_STK *)&Task2_Stack[STACKSIZE-1],  Task2_Prio);


    while(1)
                {
                                 SEND_ISP_UART(0x66);         //--串口的打印函数
                 };
}



int32_t main()
{
        UNLOCKREG();
        SystemInit();        

        OSTimeSet(0);
        UART_Driver_115200BPS();
        
        OSInit();
        UNLOCKREG();

        OSTaskCreate(SYS_Task,  (void *)0,  (OS_STK *)&SYS_Task_Stack[STACKSIZE-1],  SYS_Task_Prio);  //创建用户函数
        SEND_ISP_UART(0x11);
        OSStart();           
         
      return  0;
}        




使用特权

评论回复
板凳
shaffee| | 2014-4-2 09:00 | 只看该作者
能否共享一下呢?

使用特权

评论回复
地板
1471225546|  楼主 | 2014-4-2 16:13 | 只看该作者
shaffee 发表于 2014-4-2 09:00
能否共享一下呢?

我也想啊

使用特权

评论回复
5
1471225546|  楼主 | 2014-7-29 09:27 | 只看该作者
http://www.nuvoton-m0.com/forum. ... &extra=page%3D1

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

63

帖子

0

粉丝