论坛» 嵌入式开发» MCU

[分享]uC/OS-II在TI LM3S8962芯片上的移植示例程序(IAR工程文件)

院士
2012-09-01 20:56 1楼

[分享]uC/OS-II在TI LM3S8962芯片上的移植示例程序

本例仅提供了初始化板载时钟及板载LED灯,因此,可以方便移植与扩展。本例中还增加了jtagprotect函数,以防止由于时钟等其它原因而造成的jtag锁死现象。

在首个task里,我们建立了App_TaskBlink任务,而App_TaskBlink任务为以LED灯以5Hz的频率来闪烁。

如下所示:

static void App_TaskStart (void *p_arg){

INT32U cnts;

(void)p_arg;

// initalize the systick 1000Hz

cnts = SysCtlClockGet() / OS_TICKS_PER_SEC;

OS_CPU_SysTickInit(cnts);

#if (OS_TASK_STAT_EN > 0)

OSStatInit(); /* Determine CPU capacity. */

#endif

INT8U os_err;

os_err = OSTaskCreateExt((void (*)(void *)) App_TaskBlink,

(void * ) 0,

(OS_STK * )&App_TaskBlinkStk[APP_TASK_BLINK_STK_SIZE - 1],

(INT8U ) APP_TASK_BLINK_PRIO,

(INT16U ) APP_TASK_BLINK_PRIO,

(OS_STK * )&App_TaskBlinkStk[0],

(INT32U ) APP_TASK_BLINK_STK_SIZE,

(void * ) 0,

(INT16U )(OS_TASK_OPT_STK_CLR | OS_TASK_OPT_STK_CHK));

#if (OS_TASK_NAME_EN > 0)

OSTaskNameSet(APP_TASK_BLINK_PRIO, (INT8U *)"blink", &os_err);

#endif

while(1) {

OSTaskSuspend(OS_PRIO_SELF);

}

}

static void App_TaskBlink (void *p_arg){

(void)p_arg;

while(1) {

BSP_LED_On();

OSTimeDlyHMSM(0, 0, 0, 100);

BSP_LED_Off();

OSTimeDlyHMSM(0, 0, 0, 100);

}

}

为了防止jtag被锁死,我们增加了ProtectJtag函数,示例代码如下:

void ProtectJtag(void){

SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);

GPIOPadConfigSet(GPIO_PORTB_BASE, GPIO_PIN_4, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);

GPIODirModeSet(GPIO_PORTB_BASE, GPIO_PIN_4, GPIO_DIR_MODE_IN);

while(GPIOPinRead(GPIO_PORTB_BASE, GPIO_PIN_4) == 0) {

;

}

}

工程文件源代码 请点击下载ucosii00.zip

使用IAR EWARM 6.4调试



高工
2012-09-03 23:54 2楼
8962是M3内核的,以前学M3的时候用的是1138,比8962逊色不少。
高工
2012-09-04 21:51 3楼
印象中US/OS ii对TI的M3,有官方移植模板
院士
2012-09-04 22:56 4楼
有官方移植版的。
我也是用得官方移植版。
菜鸟
2012-09-05 14:10 5楼
谢谢楼主分享源码
菜鸟
2012-09-05 14:43 6楼
楼主 继续分享,我想看乒乓通讯
高工
2013-07-01 10:31 7楼
楼主,满足大家的心愿吧!
高工
2013-07-02 08:44 8楼
又玩新处理器?
共8条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]