色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

全志D1芯片的啟動流程最底層分析

嵌入式IoT ? 來源:嵌入式IoT ? 作者:嵌入式IoT ? 2021-06-15 17:44 ? 次閱讀

關于d1哪吒開發板的啟動流程分析

1.本文概述

2.D1上電后啟動的第一個程序

3.啟動SPL

4.啟動opensbi

5.裸機程序的編寫

6.小結

1.本文概述

RISCV生態的角度上來看,D1哪吒開發板確實是一塊不錯的可以研究很深的開發板。本文主要從研究D1啟動流程的角度出發,探索一下D1的裸機開發實踐。對于研究D1的底層裸機開發,首先需要知道可以玩那些東西,也可以對RISCV相關的軟件生態有比較透徹的理解,本文會從spl階段到opensbi階段以及后續階段做一個簡單的分析。

2.D1上電后啟動的第一個程序

D1上電后,首先啟動一個(Boot ROM)BROM。根據芯片手冊的描述,該BROM的啟動地址是0地址處開始啟動。

一共是48KB的內存空間用于運行BROM,那么這個BROM做了哪些事情?首先它根據efuse和GPIO選擇了啟動的媒體類型。支持的啟動方式有

SD card

eMMC

SPI NOR Flash

SPI NAND Flash

并且可以根據GPIO的選擇和Efuse的選擇決定啟動的模式。同時也支持USB的啟動方式,這就為fel啟動方式做了很好鋪墊。

總的說來,BROM就是從其他的介質中讀取SPL,然后放到SRAM中執行,同時也通過FEL運行環境。

3.啟動SPL

當BROM啟動完成后,接下來要去存儲介質中尋找SPL的程序,這部分可以通過對全志D1 SDK的源代碼進行查看。

不難看出,在tina-d1-open的源代碼下有lichee的代碼。另外brandy-2.0下有spl、opensbi和u-boot的代碼。通過對spl代碼的研究,主要從流程上可以知道,spl的代碼運行在sram中。

通過查看,可以看到SRAM為32KB,但是實際編譯出來的估計大小在32KB~64KB,遠大于32KB,這樣懷疑的可能性是SRAM可能大于32KB或者利用了DSP0 IRAM的空間。在編譯的過程中,發現SPL的固件的頭部一段區域,也就是0x00020000地址開始處的一段空間,是初始化的參數,SPL可以根據這個參數選擇初始化的串口編號,初始化的DDR參數等等。在這里面編譯的串口并非開發板的參數的串口參數,后面在制作固件的時候,會將頭部的信息替換。為此我做了一個專門研究D1 哪吒裸機的倉庫,來研究其實際的啟動信息。

首先下載平頭哥的交叉編譯工具鏈。

然后通過設置

export PATH=/yourpath/:$PATH

將gcc的路徑添加到環境變量,直接在spl目錄下編譯即可。

編譯后會在nboot的目錄下生成相關的固件。

在生成的固件中,每個固件分別表示從哪種介質中啟動下一階段。前面說過,spl的頭部存放了一些初始化的參數變量,所以我直接通過一個腳本make_download.sh將spl的頭部一些信息替換了。這樣下來,就能夠正常的啟動spl階段了,并且可以正常的初始化DDR。按下開發板的FEL鍵并且上電。

下載可以利用tools/windows目錄下的xfel工具進行下載。

可以正常的啟動SPL。xfel的工具是xboot大佬旨在打造全志裸機的萬能開發工具,感覺用起來還是挺好。

當前xfel在d1上支持了ddr初始化,下載到SRAM和DDR3等操作,并支持運行程序。非常的強大,后面做裸機開發會經常用到,后續如果能夠支持USB燒錄SPI NAND Flash,那會更加的好用。那么在spl里做了哪些事情?首先SPL是運行在SRAM中的程序,這段程序受到SRAM尺寸大小的影響,并不會做的很復雜。主要功能來說:

1.通過引腳判斷是否啟動JTAG

2.初始化DDR

3.使能MMU

4.根據SD CARD、SPI NAND FLASH 、SPI NOR FLASH判斷初始化那種外設。

5.根據opensbi/rtos/uboot,將其搬運到DDR中執行,然后程序運行在DDR中。

4.啟動opensbi

此時程序就運行在DDR中了,對于開發RISCV的人來說,opensbi并不陌生,一方面這個是后臺常駐程序,提供S-mode和M-mode的轉換層,另外也起到引導下一階段程序的目的。這個d1下個階段指的是uboot。然后opensbi就常駐在M-mode下了。作為獨立的程序,我也在裸機層面去編譯下載opensbi。

https://github.com/bigmagic123/d1-nezha-baremeta/tree/main/opensbi

編譯的過程可以通過

要想在d1上運行opensbi,首先需要根據下面的情況進行編譯。

cd d1-nezha-baremeta/opensbi

然后導入環境變量

export CROSS_COMPILE=/home/bigmagic/work/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702/bin/riscv64-unknown-linux-gnu- PLATFORM_RISCV_ISA=rv64gcxthead FW_JUMP_ADDR=0x40200000 FW_TEXT_START=0x40000000

最后進行編譯

make PLATFORM=thead/c910

正常情況下,生成

AS platform/thead/c910/standby-normal/standby.o

CC platform/thead/c910/standby-normal/loadelf.o

CC platform/thead/c910/sunxi_platform.o

CC platform/thead/c910/opensbi_head.o

AS platform/thead/c910/sunxi_cpuidle.o

CC platform/thead/c910/sunxi_idle.o

AR platform/thead/c910/lib/libplatsbi.a

AS platform/thead/c910/firmware/fw_dynamic.o

ELF platform/thead/c910/firmware/fw_dynamic.elf

OBJCOPY platform/thead/c910/firmware/fw_dynamic.bin

AS platform/thead/c910/firmware/fw_jump.o

ELF platform/thead/c910/firmware/fw_jump.elf

OBJCOPY platform/thead/c910/firmware/fw_jump.bin

可以把build/platform/thead/c910/firmware/fw_jump.bin文件下載。

可以通過下面的三條指令進行下載

.xfel.exe ddr ddr3

.xfel.exe write 0x40000000 fw_jump.bin

.xfel.exe exec 0x40000000

最后可以看到啟動如下

其中對opensbi的下載流程,實際上這里直接是通過xfel初始化ddr,然后將程序加載到ddr中直接啟動運行。并沒有通過spl階段,如果想要自己編譯的程序通過spl --》 opensbi??梢栽贚inux上通過dd命令將程序燒錄到sd卡中。

這里將boot0的固件燒錄到sd卡的8K處,系統可以正常的啟動。

5.裸機程序的編寫

在分析了上述SPL和opensbi的啟動流程后,自行編譯一個簡單的裸機程序就容易許多。從啟動流程的角度上來說,只需要實現初始化時鐘、串口即可。這樣就能夠享受D1上裸機開發的樂趣了。更多的外設擴展需要根據芯片手冊去進行編程。

https://github.com/bigmagic123/d1-nezha-baremeta/tree/main/src/1.startup

而燒錄的流程,可以利用xfel初始化ddr,然后燒錄到ddr中,這樣方便調試。目前裸機開發代碼比較好的可以參考xboot的代碼。

https://github.com/xboot/xboot/tree/test-d1

xboot的底層也會用到基本的裸機編程部分的代碼實現,也是非常值得研究和學習的。

6.小結

全志D1芯片的啟動流程最底層的分析來看,和其他全志產品線的芯片的啟動流程基本類似,主要需要理解的是fel模式下對SRAM,DDR等操作,這樣在做裸機開發的時候,才能將程序下載進去。有了這些理解,在做riscv的底層編程的時候,才能透徹的理解其啟動的流程和原理。

原文標題:關于d1哪吒開發板的啟動流程分析

文章出處:【微信公眾號:嵌入式IoT】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    455

    文章

    50714

    瀏覽量

    423158
  • 開發板
    +關注

    關注

    25

    文章

    5032

    瀏覽量

    97375

原文標題:關于d1哪吒開發板的啟動流程分析

文章出處:【微信號:Embeded_IoT,微信公眾號:嵌入式IoT】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Made with KiCad(十六):RISC-V 64 SoC F133/D1s開發板

    “ ??F133是首款基于RISC-V架構的F系列處理器,F133是一款64bit處理器,性能比以往的F系列芯片有很大的提升。 ? ” 概覽
    的頭像 發表于 12-04 18:22 ?966次閱讀
    Made with KiCad(十六):<b class='flag-5'>全</b><b class='flag-5'>志</b>RISC-V 64 SoC F133/<b class='flag-5'>D1</b>s開發板

    亮相灰度科技2024年新品發布會

    近日,國內商顯方案廠商灰度科技在深圳召開主題為【智啟·賦能】的2024年新品發布會,科技作為新品方案的主控芯片提供商受邀參會。會上,
    的頭像 發表于 11-14 15:14 ?455次閱讀

    哇!0.8秒啟動!Linux快速啟動方案分享,T113-i國產平臺!

    本文主要介紹基于創龍科技TLT113-EVM評估板(基于T113-i)的系統快速啟動方案,適用開發環境如下。 Windows開發環境:Windows 7 64bit、Windows 10
    發表于 08-22 11:54

    D1s軟件入門之Tina Linux燒寫教程

    燒寫 Tina Linux 燒寫,即將編譯打包好的固件下載到設備 燒寫方式簡介 平臺為開發者提供了多種多樣的燒寫方式和燒寫工具: (1) PhoenixSuit:基于Windows的系統的燒寫
    發表于 06-05 13:41

    T527芯片詳解:計算性能與高清圖像編解碼

    T527芯片詳解:計算性能與高清圖像編解碼
    的頭像 發表于 05-21 14:37 ?2870次閱讀
    <b class='flag-5'>全</b><b class='flag-5'>志</b>T527<b class='flag-5'>芯片</b>詳解:計算性能與高清圖像編解碼

    科技發布新一代強勁性能主控芯片T527,助力行業智能

    科技「T527」是新一代強勁性能主控芯片,已大規模應用于智慧工業、智慧汽車、智慧機器人等領域。
    的頭像 發表于 04-22 10:40 ?2060次閱讀
    <b class='flag-5'>全</b><b class='flag-5'>志</b>科技發布新一代強勁性能主控<b class='flag-5'>芯片</b>T527,助力行業智能

    A527系列規格書YNH-830-V1

    A527系列規格書YNH-830-V1
    發表于 04-15 15:54 ?3次下載

    2月芯片開源項目分享合集

    1、項目名稱:T113-S3智能家居86屏 作者的上一個作品的V3s的隨身終端,由于硬件解碼一直無法完成適配,于是作者找了另一塊性能更強,接口更豐富的T113-S3來替代,并將其應用在智能家居
    發表于 03-02 14:39

    D1-H 哪吒開發板】Debian系統安裝調教和點燈指南

    D1-H開發板【哪吒】使用Deabian系統入門 特別說明: 因為涉及到操作較多,博文可能會導致格式丟失 其中內容,會根據后續使用做優化調整 目錄: 參考資料 固件燒錄 啟動 調教
    發表于 02-28 09:55

    RISC-V SoC + AI | 在 D1「哪吒」開發板上,跑個 ncnn 神經網絡推理框架的 demo

    引言 D1科技首款基于 RISC-V 指令集的 SoC,主核是來自阿里平頭哥的 64 位的 玄鐵 C906。「哪吒」開發板 是志在線基于
    發表于 02-26 10:51

    D1開發板上玩ncnn

    0x0 工具鏈變得更好了 距上次在d1開發板上玩ncnn,已經過去了5個月 在此期間,ncnn收到perfxlab和騰訊犀牛鳥開源人才的學生有關riscv vector的優化 但更重要的是,平頭
    發表于 02-23 10:08

    全球大廠自研芯片進度分析

    特斯拉以自動駕駛需求為主,至今推出兩種AI芯片,分別是全自動駕駛的FSD芯片和Dojo D1芯片。FSD 芯片用于特斯拉車自動駕駛系統,Do
    發表于 02-20 09:41 ?306次閱讀

    1芯片開源項目分享合輯

    接口、連wifi、接入SD卡、調整屏幕亮度、按鍵控制、外接其他設備、1轉4USB HUB......4、TinyVision V851seTinyVision是一款異構視覺AI開發套件,主控芯片使用
    發表于 01-29 10:20

    A527主板規格書-V1

    A527主板規格書-V1
    發表于 01-26 15:49 ?27次下載

    科技創新與智能助力:揭秘科大訊飛智能鍵盤D1的獨特魅力

    科技創新與智能助力:揭秘科大訊飛智能鍵盤D1的獨特魅力引言:AI鍵盤賦予普通鍵盤智能化的能力,為移動辦公和語音翻譯等場景提供了更便捷高效的解決方案。在這篇文章中,我們將揭秘科大訊飛智能鍵盤D1的獨特
    的頭像 發表于 01-03 11:02 ?643次閱讀
    科技創新與智能助力:揭秘科大訊飛智能鍵盤<b class='flag-5'>D1</b>的獨特魅力
    主站蜘蛛池模板: 大中国免费视频大全在线观看| 99精品在线播放| 夜色88V精品国产亚洲AV| 一个人HD在线观看免费高清视频 | 四虎视频最新视频在线观看| 台湾佬休闲中性娱乐网| 性做久久久久久久久浪潮| 亚洲伊人网站| 18禁无遮遮挡羞漫画免费阅读| 99久热这里精品免费| 国产 精品 亚洲 欧美 高清| 国产一区二区波多野结衣| 久久是热频国产在线| 青柠在线电影高清免费观看| 熟女理发厅| 孕妇高潮抽搐喷水30分钟| qvod 在线| 国产色欲一区二区精品久久呦 | 精品无码久久久久久久久| 免费的黄直播| 兽皇VIDEO另类HD| 在线播放国产视频| yellow片在线观看免费观看动漫| 国产精品久久久久久免费播放| 久久草福利自拍视频在线观看| 欧美日本高清动作片www网站| 推倒美女总裁啪啪| 张开腿我尝尝你的草莓| 吃寂寞寡妇的奶| 久久成人亚洲| 日本阿v直播在线| 亚洲精品另类有吗中文字幕| 88蜜桃人妻无码精品系列| 国产精品高清免费网站| 巨污全肉np一女多男| 色情www日本欧美| 中文字幕无码亚洲字幕成A人蜜桃| 吃奶摸下的激烈免费视频| 久草在线福利资站免费视频| 日本无码色哟哟婷婷最新网站| 一本大道手机在线看|