资讯中心
关于我们
欢迎光临格子云商城!
GE ZI CLOUD
数字化应用聚合平台
格子云
按钮文本
热门搜索:惠普  复印纸  中性笔
全部商品分类
技术社区

基于LiteOS Studio零成本学习LiteOS物联网操作系统

来源: | 作者:华为云折扣网 | 发布时间: 2020-12-21 | 2574 次浏览 | 分享到:
大家在学习物联网操作系统开发的时候,都不得不准备一套开发板和仿真器,也是一笔不小的投资。LiteOS社区现在对外开放了对Qemu模拟器的适配工程,在不使用开发板的情况下,也可以搭建LiteOS开发环境,做到零成本,非常方便初学者学习。

如果想退出Qemu运行,在Terminal终端窗口同时按Ctrl + A,然后按X键即可退出。

配置Qemu仿真工程运行Kernel Demo

图片

LiteOS是高度可配置的系统,除了默认设置,我们可以在工程设置--组件管理中对系统组件配置进行定制。这里演示下如何开启Kernel Demo在Qemu模拟器上运行。

开启的这个Kernel Task DemoDemo代码执行入口如下:

UINT32 Example_TskCaseEntry(VOID) { UINT32 ret; TSK_INIT_PARAM_S stInitParam; /* lock task shcedue */ printf("nKernel task demo begin.n"); LOS_TaskLock(); printf("LOS_TaskLock() ok.n"); stInitParam.pfnTaskEntry = (TSK_ENTRY_FUNC)Example_TaskHi; stInitParam.usTaskPrio = TSK_PRIOR_HI; stInitParam.pcName = "HIGH_NAME"; stInitParam.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE; /* create high prio task */ ret = LOS_TaskCreate(&g_demoTaskHiId, &stInitParam); if (ret != LOS_OK) { LOS_TaskUnlock(); printf("Example_TaskHi failed.n"); return LOS_NOK; } printf("Create Example_TaskHi ok.n"); stInitParam.pfnTaskEntry = (TSK_ENTRY_FUNC)Example_TaskLo; stInitParam.usTaskPrio = TSK_PRIOR_LO; stInitParam.pcName = "LOW_NAME"; stInitParam.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE; /* create low prio task */ ret = LOS_TaskCreate(&g_demoTaskLoId, &stInitParam); if (ret != LOS_OK) { /* delete high prio task */ if (LOS_OK != LOS_TaskDelete(g_demoTaskHiId)) { printf("Delete TaskHi failed.n"); } LOS_TaskUnlock(); printf("Create Example_TaskLo failed.n"); return LOS_NOK; } printf("Create Example_TaskLo ok.n"); /* unlock task schedue */ LOS_TaskUnlock(); LOS_TaskDelay(40); return ret; }

示例代码先后创建了2个任务,一个名为HIGH_NAME、一个名为LOW_NAME。在两个任务里,演示了Task相关的接口LOS_TaskSuspend、LOS_TaskResume、LOS_TaskDelay、LOS_TaskDelete的使用。更完整的示例请访问https://gitee.com/LiteOS/LiteOS/blob/master/demos/kernel/api/los_api_task.c。
了解到Demo代码后,重新编译一下。编译成功后,点击烧录按钮运行,即可看到如下输出:

看到实际运行的效果后,建议读者们好好阅读下相关的Demo代码,包含任务、内存管理、中断、IPC通信、时间管理、双向链表、任务同步等。请参考:https://gitee.com/LiteOS/LiteOS/tree/master/demos/kernel

调测Qemu仿真工程

图片

HUAWEI LiteOS Studio 调测非常简单易用,点击工具栏上的调测按钮即可开启GDB图形化调测。对于我们的Qemu工程,开始调测后的界面如下:

对界面上的区域进行介绍下:

  • 变量Variable

展示局部变量、全局变量、静态变量的值。

  • 监视Watch

监视指定的表达式,可以输入变量名称或者表达式,实时计算结果。

  • 调用堆栈Call Stack