LiteOS_Code_Info.md

December 28, 2020 · View on GitHub

LiteOS代码入口

LiteOS入口在工程对应的main.c中,基本流程如下:

INT32 main(VOID)
{
    HardwareInit();

    PRINT_RELEASE("\n********Hello Huawei LiteOS********\n"
                  "\nLiteOS Kernel Version : %s\n"
                  "build data : %s %s\n\n"
                  "**********************************\n",
                  HW_LITEOS_KERNEL_VERSION_STRING, __DATE__, __TIME__);

    UINT32 ret = OsMain();
    if (ret != LOS_OK) {
        return LOS_NOK;
    }

    OsStart();

    return 0;
}

首先进行硬件初始化HardwareInit(),然后打印Huawei LiteOS的版本信息;

接着执行OsMain()初始化Huawei LiteOS内核及例程,在OsMain()函数中会创建用户任务,其任务处理函数为app_init();

最后调用OsStart()开始任务调度,Huawei LiteOS开始正常工作。

LiteOS的代码目录结构说明

关于代码树中各个目录存放的源代码的相关内容简介如下:

一级目录二级目录三级目录说明
archarmcortex_a_rA核架构支持
cortex_mM核架构支持
arm64arm64架构支持
buildLiteOS编译系统需要的配置及脚本
compatcmsisliteos提供的CMSIS-RTOS 1.0和2.0接口
componentsconnectivityagent_tinyagent_tiny端云互通组件,包括公共头文件、示例代码、客户端实现代码、操作系统适配层代码
lwm2mlwm2m协议实现
mqttMQTT开源协议实现
nb_iotLiteOS NB-IoT API
fs文件系统,含vfs、spiffs、ramfs、kifs、fatfs、devfs
guilvgl开源LittlevGL的源码
libcjsonc语言json库
log日志等级控制
netat_deviceAT设备适配层
at_frameLiteOS AT框架API
lwip/lwip_portlwip驱动及OS适配代码
lwip/lwip-2.1.2lwip协议实现
lwip/ppp_portlwip协议ppp端口支持
salsocket通讯支持
ota固件升级代码
securitymbedtls/mbedtls_portmbed TLS的OS适配代码
mbedtls/mbedtl-2.16.8mbed TLS协议实现
sensorhubincludesensor manager头文件
srcsensor manager的源码实现
demosagenttiny_lwm2mlwm2m协议 demo
agenttiny_mqttmqtt 协议demo
dtls_serverdtls协议demo
fs文件系统demo
guigui的demo
ipv6_clientIpv6协议demo
kernelapi供开发者测试LiteOS内核的demo示例代码
includeAPI功能头文件存放目录
lmsLMS的demo
nbiot_without_atinyNB_IoT demo
sensorhubgyro基于sensorhub传感框架定时读取MPU6050陀螺仪原始数据的demo
doc此目录存放的是LiteOS的使用文档和API说明等文档
includecomponents各个模块所依赖的头文件
kernelbaseLiteOS基础内核代码,包括任务、中断、软件定时器、队列、事件、信号量、互斥锁、tick等功能
debugLiteOS内核调测代码,包括队列、信号量、互斥锁及任务调度的调测
includeLiteOS基础内核内部使用的头文件
memLiteOS中的内存管理相关代码
sched任务调度支持,包括对多核的调度支持
shellcmdLiteOS中与基础内核相关的shell命令,包括memcheck、task、systeminfo、swtmr等
extendedcppsupportC++兼容适配层底层接口
cpupCPU占用率统计接口
includeextended目录所需的头文件
lmsLMS(实时检测内存操作合法性算法)的库文件
lowpower低功耗框架相关代码
tracetrace事件跟踪,用于实时记录系统运行轨迹
includeLiteOS开源内核头文件
initLiteOS内核初始化相关代码
libhuawei_libcLiteOS自研libc库和适配的posix接口
libcLiteOS适配的musl libc库
libsec华为安全函数库
zlib开源zlib库
osdependsliteosLiteOS提供的部分OS适配接口
shell实现shell命令的代码,支持基本调试功能
targetsbsp通用板级支持包
Cloud_STM32F429IGTx_FIRE野火STM32F429(ARM Cortex M4)开发板的开发工程源码包
qemu-virt-a53Coretex A53的qemu开发工程源码包
realview-pbx-a9Coretex A9的qemu开发工程源码包
STM32F072_NucleoSTM32F072_Nucleo(ARM Cortex M0)开发板的开发工程源码包
STM32F103_FIRE_Arbitrary野火STM32F103(ARM Cortex M3)霸道开发板的开发工程源码包
STM32F407_ATK_Explorer正点原子STM32F407(ARM Cortex M4)探索者开发板的开发工程源码包
STM32F769IDISCOVERYSTM32F769IDISCOVERY(ARM Cortex M7)开发板的开发工程源码包
STM32L431_BearPi小熊派STM32L431(ARM Cortex M4)开发板的开发工程源码包
toolsbuildLiteOS支持的开发板编译配置文件
menuconfigLiteOS编译所需的menuconfig脚本
MakefileLiteOS Makefile
.config开发板的配置文件,如果用户不重新选择开发板,默认为野火挑战者STM32F429开发板的配置文件