之前也有计划一直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目前比较热,大家没事也可以学习下,据说内核设计的很精巧,我还没详细看,总的来说比我想象中简单很多,可能所有的坑别人都帮忙处理过了吧。
|