[问答]

hi3861如何在移植的main.c中初始化kernel和系统

282 hi3861 鸿蒙移植 HarmonyOS
分享
代烧友提问:
hi3861的vendor代码中找不到如何从flashboot的main.c文件启动内核以及系统的函数和过程。无法从hi3861代码中得到移植启示。
其中boot_kernel函数中使用了指针地址调用entry函数,但asm文件指向重启函数。


需求:请简要说明如何在移植的main.c中初始化kernel和系统
图片121.png

3
2020-11-19 12:03:44   评论 分享淘帖 邀请回答
2个回答
这个问题需要大佬来看看
最佳答案
2020-11-19 12:03:45 评论

举报

华为官方回答:
flashboot引导kernel启动的流程在Hi3861 vendor代码中,函数调用关系如下所示:
start_fastboot->execute_upg_boot->boot_head->boot_kernel
在boot_kernel中,跳转到OS的起始地址继续执行。如,非安全启动场景下,默认传入的起始地址为:0x40D3C0;
kernel初始化默认在OS main函数中已经执行,无需外部再进行初始化:
系统初始化函数调用流程为:main -> app_main -> HOS_SystemInit。(其中main函数中执行了Hi3861硬件和内存相关配置/初始化、LOS_KernelInit、APP初始化(即创建app_main任务)、LOS_Start。

2020-12-3 17:31:59 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
我要提问