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

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

3天内不再提示

龙芯开发板的板级代码首发

电子发烧友开源社区 来源:HarmonyOS官方合作社区 作者:HarmonyOS官方合作社 2021-12-24 17:39 次阅读

开源项目见:首发!成功移植OpenHarmony到龙芯开发板,代码开源~

1、启动文件和链接脚本

龙芯开发板的板级代码位于:deviceloongsonls1c300b_hrst 文件夹。其中,启动文件位于 deviceloongsonls1c300b_hrstsrclib 文件夹下,文件名:start.S 文件

链接脚本:deviceloongsonls1c300b_hrst 文件夹下:ld.script 文件

3bb07d4e-630b-11ec-b2e9-dac502259ad0.png

可以看到链接的地址是 0x80200000,也就是说我们编译出来的固件要加载到这个地址运行。

2、系统启动流程

代码启动流程图如下,首先 start 函数会做芯片相关初始化,然后跳转到main函数,接下来会调用bsp_init进行板级初始化,包括串口初始化等,接下来进入 run_los 函数,进行LOS_KernelInit内核初始化,create_test_task创建测试线程,最后调用LOS_Start启动内核。

流程如下:

3bdb25c6-630b-11ec-b2e9-dac502259ad0.png

3、main函数

启动文件 start.S 中会执行CPU相关的初始化,例如内存初始化、代码拷贝、BSS段清零等。最后会执行main函数,如下:

3c2382bc-630b-11ec-b2e9-dac502259ad0.png

我们来看下main函数:

3c792032-630b-11ec-b2e9-dac502259ad0.png

可以看到main函数首先执行 bsp_init 进行板级初始化,bsp_init 函数主要执行串口初始化、硬浮点初始化,中断初始化等,最后打印CPU时钟

3cb860d0-630b-11ec-b2e9-dac502259ad0.png

clk_print_all 函数打印的CPU时钟信息可以在通过打印看到,如下:

3ceb1e1c-630b-11ec-b2e9-dac502259ad0.png

执行完 bsp_init 初始化后,会开始执行 run_los 执行openharmony内核,代码如下:

3d28e27e-630b-11ec-b2e9-dac502259ad0.png

create_test_task 会根据相关的宏创建对应的测试线程,开发者可以根据需要打开相应测试:

3d830b6e-630b-11ec-b2e9-dac502259ad0.png

原文标题:龙芯 openharmony 课程 【2】启动分析

文章出处:【微信公众号:HarmonyOS官方合作社区】欢迎添加关注!文章转载请注明出处。

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

    关注

    25

    文章

    4920

    浏览量

    97109
  • 代码
    +关注

    关注

    30

    文章

    4732

    浏览量

    68274
  • OpenHarmony
    +关注

    关注

    25

    文章

    3649

    浏览量

    16086

原文标题:龙芯 openharmony 课程 【2】启动分析

文章出处:【微信号:HarmonyOS_Community,微信公众号:电子发烧友开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    正点原子fpga开发板不同型号

    正点原子作为国内领先的FPGA开发板供应商,其产品线覆盖了从入门到高端应用的各个领域。这些开发板不仅适用于学术研究,还广泛应用于工业控制、通信、图像处理等多个领域。 1. 入门
    的头像 发表于 11-13 09:30 182次阅读

    龙芯2K0300蜂鸟试用】龙芯2K0300蜂鸟开发板引脚定义及体验开发板

    今天为大家隆重介绍这块龙芯2K0300蜂鸟开发板,为你详细介绍开发板引脚定义及为大家做初步的开发板体验。 先介绍这块龙芯2K0300蜂鸟
    发表于 09-19 18:54

    龙芯2K0300蜂鸟试用】OpenHarmony代码

    收到龙芯2K0300蜂鸟开发板后,对开发板做了一些了解和研究,现将OpenHarmony代码提供给大家测试,也希望大家能更多的认识龙芯2K0
    发表于 09-18 11:42

    【作品合集】龙芯2K0300蜂鸟开发板试用精选

    广东龙芯2K0300蜂鸟开发板采用核心加扩展板的模式设计,核心上集成了CPU 、DDR4 、PHY芯片、EMMC、NOR FLASH等核心部件;在底板设计上为用户扩展了丰富的外围
    发表于 09-10 18:17

    龙芯2K0300蜂鸟试用】龙芯2K0300蜂鸟开发板开发环境搭建

    龙芯2K0300蜂鸟开发板是一块集成度很高的板卡,龙芯2K0300蜂鸟开发板*这个板子很小(几乎跟树莓派一样大),IO资源确实非常丰富,值得大家来研究和学习,下面简单介绍介绍一下这块
    发表于 09-05 21:16

    龙芯2K0300蜂鸟试用】龙芯2K0300蜂鸟开发板上电测试!

    龙芯2K0300蜂鸟开发板收到后让我很惊艳,龙芯2K0300蜂鸟开发板板子小巧,布局非常合理,而且板子做的非常漂亮,集成度非常高,功能也很全。 该系统是专为嵌入式领域打造的解决方
    发表于 09-05 20:46

    龙芯2K0300蜂鸟试用】龙芯2K0300蜂鸟开发板上GPIO的驱动及使用

    收到龙芯2K0300蜂鸟开发板已经有几周了,今天给各位朋友介绍一下这块开发板GPIO的驱动及使用。 先简单介绍一下这块龙芯2K0300蜂鸟开发板
    发表于 09-05 20:35

    linux开发板如何编译curl

    在Linux开发板上编译 curl 库通常涉及到几个步骤,包括准备开发环境、下载源代码、配置编译选项以及执行编译和安装过程。以下是一个基本的指南,帮助你在Linux开发板上编译 cur
    的头像 发表于 08-30 15:33 453次阅读

    【北京迅为】龙芯iTOP-LS2K0500开发板快速启动手册-第3章 Windows安装串口终端

    龙芯iTOP-LS2K0500开发板
    的头像 发表于 08-28 15:13 491次阅读
    【北京迅为】<b class='flag-5'>龙芯</b>iTOP-LS2K0500<b class='flag-5'>开发板</b>快速启动手册-第3章 Windows安装串口终端

    龙芯2K0300蜂鸟试用】开箱体验

    本帖最后由 ele2022 于 2024-8-13 19:54 编辑 首先感谢电子发烧友和龙芯中科提供的试用机会。 今天开箱体验龙芯中科的一款2K0300蜂鸟开发板龙芯2K03
    发表于 08-12 19:59

    龙芯2K0300蜂鸟试用】开发板简介

    龙芯2K0300蜂鸟试用】开发板简介 广东龙芯 2K0300 蜂鸟 LS-2K0300 开发板
    发表于 08-12 17:27

    龙芯2K0300蜂鸟试用】+龙芯2K0300蜂鸟开发板快速上手

    和社区内其他成员一起讨论学习过程中遇到的问题,促进自身实力和经验的提升。我期待着与大家一起分享学习过程和开发成果,共同在这条探索之路上前进。 2.开发板简介 龙芯2K0300蜂鸟开发板
    发表于 08-04 14:19

    fpga开发板是什么?fpga开发板有哪些?

    FPGA开发板是一种基于FPGA(现场可编程门阵列)技术的开发平台,它允许工程师通过编程来定义和配置FPGA芯片上的逻辑电路,以实现各种数字电路和逻辑功能。FPGA开发板通常包括FPGA芯片、时钟模块、电源模块、输入输出接口等组
    的头像 发表于 03-14 18:20 1778次阅读

    fpga开发板使用教程

    FPGA开发板的使用教程主要包括以下几个关键步骤。
    的头像 发表于 03-14 15:50 937次阅读

    fpga开发板与linux开发板区别

    FPGA开发板与Linux开发板是两种不同的硬件开发平台,各自具有不同的特点和应用场景。在以下的文章中,我将详细介绍FPGA开发板和Linux开发板
    的头像 发表于 02-01 17:09 2042次阅读