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

    文章

    168

    浏览量

    1869
  • NiobeU4
    +关注

    关注

    3

    文章

    31

    浏览量

    730
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【作品合集】润鸿HH-SCDAYU800A开发板测评

    防护,包含丰富的异构计算和高速IO资源。 活动详情地址:【OH专题】润鸿HH-SCDAYU800A开发板免费试用 作者:伞振凯【润
    发表于 09-19 14:09

    【作品精选】2025电子发烧友开发板测评大赛作品合集!

    视美泰GM-3568JHF开发板免费试用 OpenHarmony专题:汇思博SEEK100开发板套件免费
    发表于 09-03 15:24

    鸿开发板深度体验:从开源鸿蒙开发到AI场景实践

    鸿开发板KaihongBoard-3588S-SBCKaihongBoard-3576-SBC体验开源鸿蒙能力学习开源鸿蒙开发●●●搭载KaihongOS
    的头像 发表于 07-03 17:03 1174次阅读
    <b class='flag-5'>开</b><b class='flag-5'>鸿</b><b class='flag-5'>开发板</b>深度体验:从开源鸿蒙<b class='flag-5'>开发</b>到AI场景实践

    【润鸿HH-SCDAYU800A开发板试用体验】润鸿HH-SCDAYU800A开发板(二)

    (三)润鸿HH-SCDAYU800A开发板固件烧录 注意:本烧录方法仅可用于Windows10及之前版本。 1.安装USB驱动 1.1下载润鸿
    发表于 07-02 09:30

    有奖丨米尔 瑞芯微RK3506开发板免费试用

    米尔与瑞芯微合作发布的新品基于瑞芯微RK3506应用处理器的MYD-YR3506开发板免费试用名额来啦~~米尔提供了3块价值299元的MYD-YR3506开发板发起
    的头像 发表于 06-19 08:04 851次阅读
    有奖丨米尔 瑞芯微RK3506<b class='flag-5'>开发板</b><b class='flag-5'>免费</b><b class='flag-5'>试用</b>

    有奖丨米尔 瑞芯微RK3562开发板免费试用新增名额!

    米尔与瑞芯微合作发布的新品基于瑞芯微RK3562应用处理器的MYD-YR3562开发板免费试用名额增加
    的头像 发表于 06-13 08:04 854次阅读
    有奖丨米尔 瑞芯微RK3562<b class='flag-5'>开发板</b><b class='flag-5'>免费</b><b class='flag-5'>试用</b>新增名额!

    基于RK3576处理器,米尔RK3576开发板免费试用

    年7月19日   评测数量: 3块   更多热点文章阅读 基于平头哥TH1520芯片,润鸿HH-SCDAYU800A开发板免费试用 RIS
    的头像 发表于 06-09 15:00 931次阅读
    基于RK3576处理器,米尔RK3576<b class='flag-5'>开发板</b><b class='flag-5'>免费</b><b class='flag-5'>试用</b>

    搭载OpenHarmony操作系统,视美泰SC-3568HA开发板免费试用

    : 10块   更多热点文章阅读 基于平头哥TH1520芯片,润鸿HH-SCDAYU800A开发板免费试用 RISC-V
    的头像 发表于 06-05 16:45 1010次阅读
    搭载OpenHarmony操作系统,视美泰SC-3568HA<b class='flag-5'>开发板</b><b class='flag-5'>免费</b><b class='flag-5'>试用</b>

    基于RK处理器,创龙TL3562-MiniEVM开发板试用体验

    数量: 10块   更多热点文章阅读 基于平头哥TH1520芯片,润鸿HH-SCDAYU800A开发板免费试用 RISC-V
    的头像 发表于 06-05 16:31 915次阅读
    基于RK处理器,创龙TL3562-MiniEVM<b class='flag-5'>开发板</b><b class='flag-5'>试用</b>体验

    性能强悍!合众HZ-RK3568开发板试用体验

    月19日   评测数量: 10块   更多热点文章阅读 基于平头哥TH1520芯片,润鸿HH-SCDAYU800A开发板免费试用 RISC
    的头像 发表于 06-05 16:30 1103次阅读
    性能强悍!合众HZ-RK3568<b class='flag-5'>开发板</b><b class='flag-5'>试用</b>体验

    有奖丨米尔 NXP i.MX91开发板免费试用来啦

    米尔与NXP合作发布的新品基于NXPi.MX91应用处理器的MYD-LMX91开发板免费试用名额来啦~~米尔提供了3套价值588元的MYD-LMX91开发板发起
    的头像 发表于 06-05 08:02 1115次阅读
    有奖丨米尔 NXP i.MX91<b class='flag-5'>开发板</b><b class='flag-5'>免费</b><b class='flag-5'>试用</b>来啦

    【评测试用】合众HZ-T536开发板免费试用体验

    【评测试用】合众HZ-T536开发板免费试用体验
    的头像 发表于 05-27 08:05 685次阅读
    【评测<b class='flag-5'>试用</b>】合众HZ-T536<b class='flag-5'>开发板</b><b class='flag-5'>免费</b><b class='flag-5'>试用</b>体验

    免费丨米尔 STM32MP257开发板有奖试用

    米尔与ST合作发布的新品基于STM32MP257应用处理器的MYD-LD25X开发板免费试用活动来啦~~米尔提供了2块价值488元的MYD-LD25X开发板发起
    的头像 发表于 03-20 08:05 884次阅读
    <b class='flag-5'>免费</b>丨米尔 STM32MP257<b class='flag-5'>开发板</b>有奖<b class='flag-5'>试用</b>

    有奖丨米尔 瑞芯微YR3562开发板免费试用

    米尔与瑞芯微合作发布的新品基于瑞芯微RK3562应用处理器的MYD-YR3562开发板免费试用活动来啦~~米尔提供了3块价值599元的MYD-YR3562开发板发起
    的头像 发表于 03-20 08:05 806次阅读
    有奖丨米尔 瑞芯微YR3562<b class='flag-5'>开发板</b><b class='flag-5'>免费</b><b class='flag-5'>试用</b>

    有奖试用!!RA-Eco-RA4M2-100PIN-V1.0开发板试用活动报名

    RA-Eco-RA4M2-100PIN-V1.0开发板试用活动
    的头像 发表于 03-13 12:10 823次阅读
    有奖<b class='flag-5'>试用</b>!!RA-Eco-RA<b class='flag-5'>4</b>M2-100PIN-V1.0<b class='flag-5'>开发板</b><b class='flag-5'>试用</b>活动报名