之前也有计划一直LiteOS到开发板上,但是没计划这么快放上来,在网上找了下,有将LiteOS移到STM上的,那移到华大开发板应该也很easy,按照https://www.cnblogs.com/huaweicloud/p/11861249.html进行移植,基本不要做其他处理,就可以跑起来了,急着需要修改下clk进行。具体步骤就不写了,按照参考**一步一步来就行了。看来LiteOS也是做了不少工作,让移植变得超级简单。首先就是看下点灯程序,任务名字没做修改
UINT32 uwRet = LOS_OK;
TSK_INIT_PARAM_S task_init_param;
task_init_param.usTaskPrio = 4;
task_init_param.pcName = "RxTask";
task_init_param.pfnTaskEntry = (TSK_ENTRY_FUNC)Led1Task;
task_init_param.uwStackSize = 512;
uwRet = LOS_TaskCreate(&RX_Task_Handle, &task_init_param);
if (uwRet != LOS_OK)
{
// printf("Led1Task create failed,%X\n",uwRet);
return uwRet;
}
task_init_param.usTaskPrio = 4;
task_init_param.pcName = "TxTask";
task_init_param.pfnTaskEntry = (TSK_ENTRY_FUNC)Led2Task;
task_init_param.uwStackSize = 512;
uwRet = LOS_TaskCreate(&TX_Task_Handle, &task_init_param);
if (uwRet != LOS_OK)
{
// printf("Led2Task create failed,%X\n",uwRet);
return uwRet;
}
return LOS_OK;
main函数如下:
UINT32 uwRet = LOS_OK;
DISANLE_SYSTEM_IRQ();
system_init();
peripheral_init();
system_config();
LOS_KernelInit();
uwRet = AppTaskCreate();
if(uwRet != LOS_OK) {
// printf("LOS Creat task failed\r\n");
//return LOS_NOK;
}
LOS_Start();
ENANLE_SYSTEM_IRQ();
下载后就看到LED开始闪烁了,正好出去玩,代码跑了2天。当然这个只是刚开始,仅仅是基本功能,里面的很多mem、membox等function都还没进行测试呢,任重而道远,LiteOS目前比较热,大家没事也可以学习下,据说内核设计的很精巧,我还没详细看,总的来说比我想象中简单很多,可能所有的坑别人都帮忙处理过了吧。
|