shell/full/src/base/show.c shell/full/src/cmds/dmesg.c shell/full/src/base/shcmd.c shell/full/src/base/shmsg.c
1.5 解决链接错误
tools/build/mk/los_config.mk mv vendor/st/stm32mp157/stm32mp157.mk vendor/st/stm32mp157/demochip.mk vendor/democom/hdf/hdf_vendor.mk drivers/hdf/lite/hdf_lite.mk
1.6 内核启动流程
内核启动流程可以分为4步骤(非官方):
启动
使用汇编代码编写,涉及非常底层的设置,比如CPU设置、代码重定位等等
地址映射也在这里实现
它最终会调用main函数
main函数
以后的代码,基本都是使用C语言编写了
主要工作是:调用OsMain进行各类初始化、最终会启动用户程序
OsMain函数
进行操作系统层面的初始化,比如异常初始化、任务初始化、IPC初始化
调用SystemInit
SystemInit
偏向于应用程序的初始化
挂载根文件系统
启动第一个用户进程
1.6.1 启动文件分析
从kernel\liteos_a\arch\arm\arm\src\startup\reset_vector_up.S开始阅读代码,
流程如下:
1.6.2 main函数分析
main函数在这个文件里kernel\liteos_a\platform\main.c,
流程如下:
1.6.3 OsMain函数分析
OsMain函数在这个文件里kernel\liteos_a\kernel\common\los_config.c,
流程如下:
1.6.4 SystemInit函数分析
SystemInit函数在这个文件里vendor\st\stm32mp157\board\board.c,
流程如下: