求教KEIL RTX 下 LM3S6432 操作系统移植

2019-03-24 15:39发布

买了块利尔达的开发板,想用KEIL 编译环境下的自带操作系统进行任务调度,在配置文件上,将rtx_config.c 文件复制到工程里,在跑程序的时候,操作系统只进行到初始化那一步,而没有去执行任务,不知道怎么回事,求教大虾指点,急得冒油了!


#include <RTL.h>
#include <LM3Sxxxx.H>
#include <lm3s6432.h>

#define  LED_PERIPH    SYSCTL_PERIPH_GPIOF
#define  LED_PORT      GPIO_PORTF_BASE
#define  LED_PIN2      GPIO_PIN_2
#define  LED_PIN3      GPIO_PIN_3
#define  LED_PINS                 LED_PIN2|LED_PIN3


OS_TID  id1,id2;

__task void task1(void) ;
__task void task2(void) ;



__task void task1(void)
{
  unsigned char i;

    SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_8MHZ);
         SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
     GPIOPinTypeGPIOOutput(LED_PORT,LED_PINS);

   i=(0<<2)|(1<<3);

        for (;;)
        {
          GPIOPinWrite(LED_PORT,LED_PINS,i);
          i^=(1<<2)|(1<<3);
          os_dly_wait(1000)         ;
        }

}

        id1=os_tsk_self();
        id2=os_tsk_create(task2,0);

  for(;;)
        {
                 int i;
                   SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_8MHZ);
            SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
            GPIOPinTypeGPIOOutput(LED_PORT,LED_PIN2);
               
                   i|=(1<<2);
                    for(;;)
                        {
                          GPIOPinWrite(LED_PORT,LED_PIN2,i);
                          i^=(1<<2);
                          os_dly_wait(2000);
                        }          
       
            os_evt_set(0x0003,id2);
        os_evt_wait_or(0x0003,500);
        os_dly_wait(5);
          }



__task void task2(void)
{
   
          for (;;)
          {
                  int i;
                  os_evt_wait_or(0x0003,500);
                os_dly_wait(5);


                   SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_8MHZ);
        SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
        GPIOPinTypeGPIOOutput(LED_PORT,LED_PIN3);
               
                   i|=(1<<3);
               
                        for (;;)
                        {
                          GPIOPinWrite(LED_PORT,LED_PIN3,i);
                          i^=(1<<3);
                          os_dly_wait(1000);
                        }

                        os_evt_set(0x0003,id1);       
          
          }
}




int main (void)
{
os_sys_init(task1);
              
} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
sjc1895
2019-03-24 23:06
< :TI_MSP430_内容页_SA7 --> 谢谢了

一周热门 更多>

相关问题

    相关文章