鸿蒙wifi iot初始化分析

本文详细解析了鸿蒙操作系统在WiFi IoT设备上的启动过程,从app_main入口开始,介绍了硬件初始化、鸿蒙内核初始化以及各模块的初始化。通过分析宏定义和函数调用,揭示了系统如何逐步执行初始化任务,并调用到应用程序的入口。

1 背景

学习一个系统,先从启动过程开始。鸿蒙的wifiiot的初始化过程,涉及的文件并不多,但因为用到了一些复杂一些的宏定义,理解起来比较困难。

2 开发板系统的入口app_main

文件:vendor/hisi/hi3861/hi3861/app/wifiiot_app/src/app_main.c
鸿蒙wifiiot为单进程系统,整个系统的入口程序为app_main,但这个并没有找到明确的文档说明。
这件文件一开始部分,是定义了开发板相关的一些硬件设备的初始化过程,而最后一行,才真正进入鸿蒙操作系统的初始化。

void __attribute__((weak)) HOS_SystemInit(void)
{
    return;
}

hi_void app_main(hi_void)
{
    const hi_char* sdk_ver = hi_get_sdk_version();
    printf("sdk ver:%s\r\n", sdk_ver);

    hi_flash_partition_table *ptable = HI_NULL;

    peripheral_init();
    peripheral_init_no_sleep();

    hi_u32 ret = hi_factory_nv_init(HI_FNV_DEFAULT_ADDR, HI_NV_DEFAULT_TOTAL_SIZE, HI_NV_DEFAULT_BLOCK_SIZE);

    /* partion table should init after factory nv init. */
    ret = hi_flash_partition_init();
    ptable = hi_get_partition_table();

    ret = hi_nv_init(ptable->table[HI_FLASH_PARTITON_NORMAL_NV].addr, ptable->table[HI_FL
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值