0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【开鸿智谷NiobeU4开发板免费试用体验】程序执行过程分析

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-10-17 10:30 次阅读

本文来源电子发烧友社区,作者:李先生, 帖子地址:https://bbs.elecfans.com/jishu_2307381_1_1.html



前言

磨刀不误砍材工,为了方便后面开发,先对照着打印信息和代码,对启动过程进行分析,对程序执行过程有个大致了解。

程序入口点,内核启动

device/soc/esp/esp32/components/esp_system/port/cpu_start.c

call_start_cpu0

打印如下

I (370) cpu_start: Pro cpu up.

I (376) cpu_start: Single core mode

device/soc/esp/esp32/components/esp_system/startup.c

start_cpu0_default

打印如下

I (371) cpu_start: Pro cpu start user code

I (373) cpu_start: cpu freq: 160000000

I (378) cpu_start: Application information:

I (380) cpu_start: Project name:     spp_client_demo

I (383) cpu_start: App version:      1

I (389) cpu_start: Compile time:     Sep 23 2022 21:28:08

I (393) cpu_start: ELF file SHA256:  aa63348688c93d38...

I (394) cpu_start: ESP-IDF:          v4.3.1-dirty

device/soc/esp/esp32/components/heap/heap_caps_init.c

heap_caps_init

打印如下

I (94) heap_init: Initializing. RAM available for dynamic allocation:

I (118) heap_init: At 3FF80000 len 00002000 (8 KiB): RTCRAM

I (118) heap_init: At 3FFAFF10 len 000000F0 (0 KiB): DRAM

I (118) heap_init: At 3FFB6388 len 00001C78 (7 KiB): DRAM

I (118) heap_init: At 3FFB9A20 len 00004108 (16 KiB): DRAM

I (118) heap_init: At 3FFC5128 len 0001AED8 (107 KiB): DRAM

I (118) heap_init: At 3FFE0440 len 0001FBC0 (126 KiB): D/IRAM

I (118) heap_init: At 40078000 len 00008000 (32 KiB): IRAM

I (118) heap_init: At 400905E0 len 0000FA20 (62 KiB): IRAM

kernel/liteos_m/kernel/src/los_init.c

LOS_KernelInit

打印如下

entering kernel init...

kernel/liteos_m/kernel/src/los_sched.c

OsSchedStart

打印如下

Entering scheduler

系统初始化

deviceboardopenvalleyniobeu4liteos_mtargetsrctarget_startup.c

OHOS_SystemInitEntry ->

int err;

printf("Code Build Time:%s %sn", __DATE__, __TIME__);

before_ohos_run();

esp_err_t ret = nvs_flash_init();

if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {

    nvs_flash_erase();

    ret = nvs_flash_init();

}

DeviceWifiStart();

init_trace_system();

err = DeviceManagerStart();

if (err) {

    printf("DeviceManagerStart.ret=0x%Xn", err);

}

OHOS_SystemInit();

ohos_app_main();

return NULL;

l 先打印编译时间

l before_ohos_run调用钩子函数BEFORE_OHOS_RUN_FUNC_ENTRY

该函数由#define BEFORE_OHOS_RUN(func) void *BEFORE_OHOS_RUN_FUNC_ENTRY = (func)宏定义,实际是一个全局函数指针变量

l nvs_flash_init进行flash初始化

对应打印如下

l DeviceWifiStart

l init_trace_system 注册打印输出接口g_hilogOutputProc赋值为HilogProc_Impl

OutputLog即调用该函数打印输出

l DeviceManagerStart

l OHOS_SystemInit

l ohos_app_main调用用户代码

Code Build Time:Sep 23 2022 21:52:39

I (321) spi_flash: detected chip: generic

I (218) spi_flash: flash io: dio

I (18) wifi:wifi driver task: 6, prio:23, stack:6656, core=0

I (56) system_api: Base MAC address is not set

I (156) system_api: read default base MAC address from EFUSE

I (18) wifi:wifi firmware version: 88c8747

I (28) wifi:wifi certification version: v7.0

I (28) wifi:config NVS flash: disabled

I (28) wifi:config nano formating: disabled

I (38) wifi:Init data frame dynamic rx buffer num: 32

I (38) wifi:Init management frame dynamic rx buffer num: 32

I (48) wifi:Init management short buffer num: 32

I (48) wifi:Init dynamic tx buffer num: 32

I (48) wifi:Init static rx buffer size: 1600

I (58) wifi:Init static rx buffer num: 10

I (58) wifi:Init dynamic rx buffer num: 32

I (141) wifi_init: rx ba win: 6

I (145) wifi_init: tcpip mbox: 32

I (146) wifi_init: udp mbox: 6

I (147) wifi_init: tcp mbox: 6

I (148) wifi_init: tcp tx win: 5744

I (149) wifi_init: tcp rx win: 5744

I (150) wifi_init: tcp mss: 1440

I (157) wifi_init: WiFi IRAM OP enabled

hilog will init.

hievent will init.

hievent init success.

01-01 00:00:00.247 0 48 D 0/HIVIEW: log limit init success.

Littlefs.mount=/Openvalley addr=0x312000 size=832K OK!!!

01-01 00:00:00.257 0 48 I 1/SAMGR: Bootstrap core services(count:1).

01-01 00:00:00.263 0 48 I 1/SAMGR: Init service:0x3f401224

hiview init success.

01-01 00:00:00.269 0 112 I 1/SAMGR: Init service 0x3f401224 20ms> success!

01-01 00:00:00.277 0 112 I 1/SAMGR: Initialized all core system services!

01-01 00:00:00.283 0 112 I 1/SAMGR: Goto next boot step return code:-6

用户代码执行

用户代码中,例如

OHOS_APP_RUN(Niobeu4HelloWorld);

定义全局函数指针变量OHOS_APP_FUNC_ENTRY,并赋值。

其宏定义如下

#define OHOS_APP_RUN(func) void *OHOS_APP_FUNC_ENTRY = (func)

在如下

deviceboardopenvalleyniobeu4liteos_mtargetsrctarget_startup.c

ohos_app_main

调用OHOS_APP_FUNC_ENTRY即调用Niobeu4HelloWorld

对应打印如下

<--------------- OHOS Application Start Here --------------->

---

* [Openvalley/Niobeu4] *
* Hello world.    *

---
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开鸿智谷
    +关注

    关注

    2

    文章

    90

    浏览量

    880
  • NiobeU4
    +关注

    关注

    3

    文章

    31

    浏览量

    442
收藏 人收藏

    评论

    相关推荐

    参与FPGA开发者技术社区每周一练,精美开发板免费领!

    1K开发板+“作者自拟内容” 活动方式: 5周后,根据参与度、活跃度、完成度、帖子热度等筛选部分优秀参与者免费赠送1K开发板套件,并直通22K开发板
    发表于 11-20 16:26

    【LuckFox Pico 开发板免费试用】点亮OLED

    与 env.txt 文件 3.拷贝上述两文件至烧录镜像文件替换原来的,重新烧录固件到SD卡,烧录成功后插上开发板 4.应用程序代码准备 使用的oled是128*32点阵,参照官方
    发表于 10-22 12:00

    【新品体验】先楫HPM5361EVK开发板免费试用

    : 1.本次试用不包含拉票环节。 2.产品试用结束后,完整参与试用,可免费获得开发板。(试用报告
    发表于 10-20 11:30

    OpenHarmony开发板汇总

    NiobeU4(ESP32-U4WDH)轻量系统:鸿Niobe 407(STM32F407IGT6)轻量系统:朗国IoT WiFi
    发表于 10-19 11:27

    轻量系统:鸿NiobeU4(ESP32-U4WDH)

    开发板名称(芯片型号) 鸿NiobeU4(ESP32-U4WDH) 芯片架构 xtensa
    发表于 10-19 11:23

    轻量系统:鸿Niobe 407(STM32F407IGT6)

    开发板名称(芯片型号) 鸿Niobe 407(STM32F407IGT6) 芯片架构 CST85F01 CPU频率 介绍(字数请控制在200字以内) Niobe 407
    发表于 10-19 11:22

    鸿鸿OS设备开发实验箱通过OpenHarmony兼容性测评

    ,实验箱还提供4个综合智能场景,高校老师在教学时可自由组合多个案例模块,开发更丰富、更有趣的互动场景。 鸿依托OpenHarmony
    发表于 10-19 10:14

    【LuckFox Pico 开发板免费试用】开箱初体验

    很高兴有这次LuckFox Pico 开发板试用机会,前面也做了些了解,搜集了一些相关资料。1.关于开发板 LuckFox Pico 开发板基于瑞芯微 RV1103 主控芯片,Cor
    发表于 10-15 19:09

    【中科微CSM32RV003绿色开发板免费体验】3.使用流程

    AM6254开发板试用4-机器视觉(原创) - 飞凌嵌入式 【飞凌AM6254开发板试用】+5内核编译串口芯片Linux驱动(原创) 【
    发表于 10-14 00:05

    OpenHarmony应用分发运营体系

    一、分发流程 图片来源:OpenHarmony官网 二、主要途径 更多 鸿鸿OS 开发板 设备 润和HiHopeOS
    发表于 09-21 15:27

    免费试用】紫光同创PGL50H开发平台,高性能国产FPGA,盘古50K开发板试用活动火热征集中!

    开发板免费试用活动,欢迎FPGA应用开发者、高校师生和研究人员踊跃报名,申请试用! 扫描报名二维码即可立即报名! *扫码报名参与
    发表于 08-21 16:16

    【Start_DSC28034PNT湖人开发板免费体验】开发板使用2

    Start_DSC28034PNT开发板免费试用\\\\Start_DSC28034.zip 编译Project->Build All 09:20:42 **** Build of configuration
    发表于 08-19 10:11

    0元试用!车规级国产芯驰D9开发板

    米尔与合作芯驰推出的新品基于D9系列应用处理器的MYC-JD9X核心板及开发板现已开放免费试用名额!!米尔准备了3块价值1199元的开发板发起试用
    的头像 发表于 07-06 10:07 552次阅读
    0元<b class='flag-5'>试用</b>!车规级国产芯驰D9<b class='flag-5'>开发板</b>

    有奖,免费开发板又双叒叕来了!米尔基于全志T113-S3开发板试用招募

    米尔再次与全志推出新品基于全志T113-S3应用处理器的MYC-YT113X核心板及开发板现已开放免费试用名额!!米尔准备了4块价值348元的开发板发起
    的头像 发表于 05-18 10:25 702次阅读
    有奖,<b class='flag-5'>免费</b><b class='flag-5'>开发板</b>又双叒叕来了!米尔基于全志T113-S3<b class='flag-5'>开发板</b><b class='flag-5'>试用</b>招募

    基于ESP32芯片,搭载OpenHarmony操作系统,NiobeU4开发板应用实例

    性能、稳定性、通用性和可靠性,以及超低的功耗,适用于各种应用场景。 1.开箱体验编译环境搭建及烧录 感谢开鸿智谷和电子发烧友寄来的中秋礼物,下面给大家做个NiobeU4开发板开箱体验,祝大家中秋快乐! 此次收到的NiobeU4
    的头像 发表于 05-11 20:16 2006次阅读
    基于ESP32芯片,搭载OpenHarmony操作系统,<b class='flag-5'>NiobeU4</b><b class='flag-5'>开发板</b>应用实例