实时操作系统应用开发技术 课件 第2章LiteOS第一个样例工程_第1页
实时操作系统应用开发技术 课件 第2章LiteOS第一个样例工程_第2页
实时操作系统应用开发技术 课件 第2章LiteOS第一个样例工程_第3页
实时操作系统应用开发技术 课件 第2章LiteOS第一个样例工程_第4页
实时操作系统应用开发技术 课件 第2章LiteOS第一个样例工程_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实时操作系统应用开发技术第2章LiteOS第一个样例工程时间:2025.06主讲人:王宜怀目录CONTENT2.32.12.22.4轻量级鸿蒙LiteOS的第一个样例工程

LiteOS简介软硬件开发平台本章小结

LiteOS简介2.1PART-实时操作系统应用开发技术LiteOS定义与应用LiteOS是华为2015年推出的轻量级开源实时操作系统,专为低功耗、低内存、低成本物联网设备设计,支持多种芯片架构和设备类型,提供丰富开发工具和软件库,广泛应用于智能家居、个人穿戴、车联网等领域。2.1.1LiteOS概述4/25开源免费与社区支持遵循BSD-3开源许可协议,源码免费下载,有活跃社区支持。易懂易移植主要用C语言编写,代码简洁高效,模块化设计,支持多种处理器架构。可裁剪性强基础内核体积可裁剪至不到10K,允许开发者根据需求对系统功能进行静态裁剪。资源占用小、功耗低相较于Linux,体积小、成本低、功耗低、启动快速,具有高实时性。2.1.2LiteOS基本特点5/25源码获取与更新华为官网可下载OpenHarmonyLiteOS-M内核版本更新工程,包含应用程序样例、基础软硬件服务子系统集、配置脚本、说明文档等文件,具体更新方法见附录A。2.1.3如何下载与更新LiteOS源码6/25

软硬件开发平台2.2PART-实时操作系统应用开发技术电子资源内容本书配有网上电子资源AHL-CH32V303-LiteOS,包含文档文件夹、硬件文件夹、软件文件夹、工具文件夹,可在苏州大学嵌入式学习社区官网下载。2.2.1下载网上电子资源8/251、为什么需要硬件平台嵌入式软件开发依赖交叉编译调试环境(PC编译、目标机执行),因体系结构差异增加开发难度,需选好开发套件。学习RTOS建议用实际硬件平台而非仿真环境,如今低价高性能的RTOS学习平台已普及。2、金葫芦WiFi开发套件的硬件资源金葫芦AHL-CH32V303-WiFi套件集成CH32V303RCT6主控、ESP8684H2WiFi芯片,正反分置最小系统与WiFi模块,配Type-C接口。出厂预装BIOS及检测程序,支持LiteOS开发与物联网实践,配套静态库、模板与开源代码,加速终端设计。3、AHL-CH32V303-WiFi开发板的特点本书的AHL-CH32V303-WiFi开发套件,核心芯片为CH32V303RCT6,集成多种功能模块;硬件含最小系统、三色灯等并引出全部MCU引脚;Type-C接口兼具程序下载与printf调试功能;适用于LiteOS学习,还可外接模块创新实验,其工程框架也可供其他硬件平台参考。2.2.2硬件平台:AHL-CH32V303-WiFi9/252.2.3AHL-CH32V303-WiFi开发板的测试步骤1使用标准Type-C数据线①给主板供电。步骤2观察蓝灯是否闪烁。步骤3编辑移动热点的网络信息。步骤4打开移动热点。10/2501021、AHL-GEC-IDE苏州大学嵌入式实验室推出的免费嵌入式集成开发环境,操作简单、功能实用,兼容多个芯片公司的常用开发环境及厂家工程模板,支持串口下载调试,具备外接软件功能、丰富的常用工具、简化工程配置、可扩展功能。2、MounRiverStudio针对RISC-V/ARM双核MCU的免费嵌入式集成开发环境,提供完整开发资源,具有编辑、编译和调试等功能。2.2.4软件平台:金葫芦集成开发环境11/25轻量级鸿蒙LiteOS的第一个样例工程2.3PART-实时操作系统应用开发技术硬件与软件功能样例程序硬件为红、绿、蓝三色一体发光二极管,由三个GPIO引脚控制其亮暗,软件控制红灯每5s、绿灯每10s、蓝灯每20s变化一次,表现为三色灯的合成色。2.3.1样例程序功能13/252.3.2工程框架设计原则框架定义基本原则工程框架是指工程内文件夹的命名、文件的存放位置、文件内容的放置规则。分门别类,各有归处,建立工程文件夹,并考虑随后内容安排及内容定位,建立其下级子文件夹。14/252.3.3NOS工程框架MCU文件夹把链接文件、MCU的启动文件、MCU底层驱动(MCU底层驱动构件)放入这个文件夹中,建立三个下级文件夹。linker_file文件夹内的链接文件,给出了芯片存储器的基本信息;startup文件夹含有芯片的启动文件;MCU_drivers存放与MCU硬件直接相关的底层驱动构件。用户板文件夹在产品开发中,开发者选定MCU后设计的硬件板即用户板,其上通常配置LCD、传感器、开关等硬件,这些硬件需软件干预才能运行。用于干预的软件构件称为外部设备构件,其运行一般需调用MCU底层驱动构件,且外部设备构件通常放置在用户板文件夹中。应用程序文件夹应用程序文件夹包含总头文件(includes.h)、中断服务例程源程序文件(isr.c)、主程序文件(main.c)等核心编程文件。编译输出还会产生“Debug”文件夹。含有编译链接生成的.elf、.hex、.list、.map等文件。1.

NOS工程框架的树形结构15/252.3.3NOS工程框架2.NOS样例工程运行测试16/252.3.3NOS工程框架3.NOS样例工程的main函数及isr函数线程线(主程序)程序通过计数变量mCount的切换来控制三色小灯的开关状态,实现全暗、红色、绿色、黄色、蓝色、紫色、青色、白色的周而复始的运行,同时通过串口输出灯的信息。0102用户串口接收一个字节,触发串口接收中断,在用户串口中断服务例程中,接收该字节,立即发回。中断线程17/251.LiteOS工程框架的树形结构2.3.4LiteOS工程框架LiteOS工程框架与NOS框架结构完全一致,差异在于:①05_UserBoard文件夹新增Os_Self_API.h(提供LiteOS接口函数)和Os_United_API.h(实现RTOS统一接口以支持移植);②各文件夹分工明确(01文档记录、02内核相关、03芯片驱动、04衔接BIOS与User、05用户硬件接口、06-07可移植复用);③07_AppPrg文件夹中,includes.h声明线程函数,main.c通过OS_start(thread_auto)启动系统,自启动线程thread_auto负责将蓝灯、绿灯、红灯线程函数纳入内核调度,形成多线程独立运行机制。18/252.LiteOS样例工程运行测试2.3.4LiteOS工程框架19/253.LiteOS的启动2.3.4LiteOS工程框架执行OS_start(thread_auto)进行LiteOS的启动,在启动过程中依次创建了自启动线程(thread_auto)和空闲线程(idle)。thread_auto源码是在本工程中直接给出的,idle被驻留在BIOS中,初步理解LiteOS一章将给出源码解析。20/254.自启动线程的执行过程2.3.4LiteOS工程框架功能概要自启动线程优先被内核调度,依次创建蓝灯、绿灯、红灯线程,分别实现20s、10s、5s间隔闪烁,创建后自身终止。此时就绪列表剩红、绿、蓝及空闲线程,红灯线程优先级最高先运行,调用延时函数时被移至延时列表。随后系统依次调度蓝灯、绿灯线程。当三用户线程均在延时列表时,空闲线程运行。基于1ms时钟嘀嗒中断实现调度切换,中断服务例程检查定时器,到期线程移回就绪列表抢占CPU,最终呈现与NOS样例工程相同效果。01源码解析thread_auto函数定义于07_AppPrg\threadauto_appinit.c,负责初始化及线程创建启动。通过thread_create函数创建红、蓝、绿灯线程,设1024字节堆栈、15优先级、20时钟嘀嗒时间片;利用thread_startup函数启动对应线程执行函数。这些函数以无限循环运行,由LiteOS调度分配CPU。0221/255.红灯、绿灯、蓝灯线程函数2.3.4LiteOS工程框架//==================================================================//函数名称:thread_redlight//函数返回:无//参数说明:无//功能概要:每5秒红灯反转//内部调用:无//==================================================================voidthread_redlight(){char*lightstate[8]={"【全暗】","【红色】","【绿色】","【黄色】=红+绿","【蓝色】","【紫色】=红+蓝","【青色】=蓝+绿","【白色】=红+蓝+绿"};staticuint8_ti=0;//静态变量(计数)

gpio_init(LIGHT_RED,GPIO_OUTPUT,LIGHT_OFF);while(1){printf("当前指示灯颜色为%s\r\n",lightstate[i]);delay_ms(5000);//延时5秒

gpio_reverse(LIGHT_RED);i=i+1;if(i>=8)i=0;}}22/25

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论