1502|1

6842

帖子

11

TA的资源

版主

楼主
 

【平头哥RVB2601创意应用开发】记录一下hello worl系统启动流程 [复制链接]

 

【前言】前面一阵子,看了入门手册,拉取例子运行,或者改改,就可以运行了,但是真正要从头写自己想要的东西,就会遇到很多麻烦,今天放假,静下心,理清一下板子的启动流程,给自己记录起来,以便后面随时翻看,感觉论坛这里就是我的记事本。由于对操作系统的理解还没有算入门。所以只是记录给我自己看,如果有讲得不对,请无视,当路过。

    现在的芯片运行频率、内存逐渐的强大,所以用操作系统就会很方便。平头哥这款开发板,是用他们开发的YoC平台(YoC概述 · GitBook (t-head.cn))这里有详细描述的文档,建议大家一定要先去熟悉一下,少走弯路。

    helloworld例程是用集成Rhino内核来搭建的,当然也可以用freeRTOS,好象也有一个例程。

   查看了例程的源代码,程序的启动入口主函数应该是在:..\__workspace_pack__\aos\v7.4.3\src目录下的main.c的pre_main函数。其代码如下:

int pre_main(void)
{
    /* kernel init */
    aos_init();//内核初始化
#ifdef CONFIG_OS_TRACE 
    trace_init_data();
#endif

    /* 创建一个app_task 任务*/
    aos_task_new_ext(&app_task_handle, "app_task", application_task_entry,
                     NULL, INIT_TASK_STACK_SIZE, AOS_DEFAULT_APP_PRI);

    /* kernel start */
    aos_start(); //启动任务

    return 0;
}

//application_task_entry数里启动了app\src下的main()函数:
static void application_task_entry(void *arg)
{
    main();//这里才是给用户的程序入口
    aos_task_exit(0);
}

    这个跟我们以往用STM32祼机工程不同的就是,在执行main()函数之前已经完成内核的初始化。内核初始跟踪进去还有很多的函数,看着头大,就只看app下main的了吧

    main.c中它先引入头件:<aos/aos.h> 、"aos/cli.h"  其中cli为控制台服务所必须。

   程序建了一个Init的文件夹,里面分别有init.c 和cli_cmd.c.

   init.c中的board_yoc_init函数,对串口的GPIO进行了初始化,并初始化串口0,初始化了日志服务,并设定为打印所有信息。

   最后初始化了oled,显示了开机图片。在while(1)循环中每隔1秒打印一行字符串。完成程序的流程。

【总结】YoC的启动流程:Rhino内核初始——》创建main任务并启动给用户的main函数——》配置用于串口(终端)的GPIO——>>配置串口0为波特率115200 接收缓冲区为128——》初始化、配置日志服务——》初始化OLED——》输出hello world。

 

建议还是脑补一下这个系统的知识,想要弄通这块开发板,还得花很多时间,掉很多头发。。。。。

最新回复

支持楼主,记录一下hello worl系统启动流程好习惯   详情 回复 发表于 2022-4-3 11:12
点赞 关注
 
 

回复
举报

6628

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

支持楼主,记录一下hello worl系统启动流程好习惯

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表