This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

IAR下开发TMS570LS3137,操作系统UCOS

Other Parts Discussed in Thread: TMS570LS3137

IAR下开发TMS570LS3137, 在没有操作系统的情况下,实现了3137CAN收发数据(与LPC1788CAN模块通信)。现在想把CAN模块加到已经移植成功的的ucos系统上,但是加到系统上面以后收发数据失败。请教一下,CAN模块从裸机移到有操作系统时,应该怎么做?

  • Hi Chunjing,

       想问一下,你实现的CAN总线通信时基于查询模式的还是中断模式的。你的uc/os是否确定已经在我们的TMS570上已经移植成功了呢?

    如果已经移植成功的话, 想问一下,你的操作系统里面有几个任务呢?一般移植这种程序,比较常见的是采用查询的方式来接收,如果只是发送的话,只需要自己创建一个任务,然后初始化CAN模块,然后在一个while(1)的循环中调用发送函数就行。

     你遇到的问题,可能的原因比较多,需要一步步的分析。

    谢谢

    ken  

     

  • Hi Ken Wang,

        谢谢您及时的回复。CAN总线通信是基于查询模式的。uc/os确定已经移植成功了。现在操作系统里面只有一个循环灯亮的任务。

    我尝试了两个方案,一是没有新建任务,只是在原来灯亮的任务中加入了发送函数。这种情况下单步调试没发现任何问题,但是就是收不到数据。

    二是新建了CAN发送数据的任务。新建CAN任务这种方式存在问题,就是OSTimeDlyHMSM()并没有将点灯任务挂起,灯亮任务一直循环执行,没有执行到CAN任务。

  • Hi Chunjing,

        感觉是你在uc/os的操作系统里面新建任务的问题,因为uc/os是基于任务优先级调度的。你在建立两个任务的时候,他们的优先级是怎么设定的?

    简单点的方法,你就建立一个CAN通信的任务,然后看看通信是否正常。

    谢谢

    ken