chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

全志D1芯片的啟動(dòng)流程最底層分析

嵌入式IoT ? 來源:嵌入式IoT ? 作者:嵌入式IoT ? 2021-06-15 17:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

關(guān)于d1哪吒開發(fā)板的啟動(dòng)流程分析

1.本文概述

2.D1上電后啟動(dòng)的第一個(gè)程序

3.啟動(dòng)SPL

4.啟動(dòng)opensbi

5.裸機(jī)程序的編寫

6.小結(jié)

1.本文概述

RISCV生態(tài)的角度上來看,D1哪吒開發(fā)板確實(shí)是一塊不錯(cuò)的可以研究很深的開發(fā)板。本文主要從研究D1啟動(dòng)流程的角度出發(fā),探索一下D1的裸機(jī)開發(fā)實(shí)踐。對(duì)于研究D1的底層裸機(jī)開發(fā),首先需要知道可以玩那些東西,也可以對(duì)RISCV相關(guān)的軟件生態(tài)有比較透徹的理解,本文會(huì)從spl階段到opensbi階段以及后續(xù)階段做一個(gè)簡(jiǎn)單的分析。

2.D1上電后啟動(dòng)的第一個(gè)程序

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

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

SD card

eMMC

SPI NOR Flash

SPI NAND Flash

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

總的說來,BROM就是從其他的介質(zhì)中讀取SPL,然后放到SRAM中執(zhí)行,同時(shí)也通過FEL運(yùn)行環(huán)境。

3.啟動(dòng)SPL

當(dāng)BROM啟動(dòng)完成后,接下來要去存儲(chǔ)介質(zhì)中尋找SPL的程序,這部分可以通過對(duì)全志D1 SDK的源代碼進(jìn)行查看。

不難看出,在tina-d1-open的源代碼下有l(wèi)ichee的代碼。另外brandy-2.0下有spl、opensbi和u-boot的代碼。通過對(duì)spl代碼的研究,主要從流程上可以知道,spl的代碼運(yùn)行在sram中。

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

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

然后通過設(shè)置

export PATH=/yourpath/:$PATH

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

編譯后會(huì)在nboot的目錄下生成相關(guān)的固件。

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

下載可以利用tools/windows目錄下的xfel工具進(jìn)行下載。

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

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

1.通過引腳判斷是否啟動(dòng)JTAG

2.初始化DDR

3.使能MMU

4.根據(jù)SD CARD、SPI NAND FLASH 、SPI NOR FLASH判斷初始化那種外設(shè)。

5.根據(jù)opensbi/rtos/uboot,將其搬運(yùn)到DDR中執(zhí)行,然后程序運(yùn)行在DDR中。

4.啟動(dòng)opensbi

此時(shí)程序就運(yùn)行在DDR中了,對(duì)于開發(fā)RISCV的人來說,opensbi并不陌生,一方面這個(gè)是后臺(tái)常駐程序,提供S-mode和M-mode的轉(zhuǎn)換層,另外也起到引導(dǎo)下一階段程序的目的。這個(gè)d1下個(gè)階段指的是uboot。然后opensbi就常駐在M-mode下了。作為獨(dú)立的程序,我也在裸機(jī)層面去編譯下載opensbi。

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

編譯的過程可以通過

要想在d1上運(yùn)行opensbi,首先需要根據(jù)下面的情況進(jìn)行編譯。

cd d1-nezha-baremeta/opensbi

然后導(dǎo)入環(huán)境變量

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

最后進(jìn)行編譯

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文件下載。

可以通過下面的三條指令進(jìn)行下載

.xfel.exe ddr ddr3

.xfel.exe write 0x40000000 fw_jump.bin

.xfel.exe exec 0x40000000

最后可以看到啟動(dòng)如下

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

這里將boot0的固件燒錄到sd卡的8K處,系統(tǒng)可以正常的啟動(dòng)。

5.裸機(jī)程序的編寫

在分析了上述SPL和opensbi的啟動(dòng)流程后,自行編譯一個(gè)簡(jiǎn)單的裸機(jī)程序就容易許多。從啟動(dòng)流程的角度上來說,只需要實(shí)現(xiàn)初始化時(shí)鐘、串口即可。這樣就能夠享受D1上裸機(jī)開發(fā)的樂趣了。更多的外設(shè)擴(kuò)展需要根據(jù)芯片手冊(cè)去進(jìn)行編程。

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

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

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

xboot的底層也會(huì)用到基本的裸機(jī)編程部分的代碼實(shí)現(xiàn),也是非常值得研究和學(xué)習(xí)的。

6.小結(jié)

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

原文標(biāo)題:關(guān)于d1哪吒開發(fā)板的啟動(dòng)流程分析

文章出處:【微信公眾號(hào):嵌入式IoT】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    462

    文章

    53183

    瀏覽量

    453760
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    6001

    瀏覽量

    110072

原文標(biāo)題:關(guān)于d1哪吒開發(fā)板的啟動(dòng)流程分析

文章出處:【微信號(hào):Embeded_IoT,微信公眾號(hào):嵌入式IoT】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    工博會(huì)現(xiàn)場(chǎng)|志在新品發(fā)布會(huì)為我司頒發(fā) “科技生態(tài)認(rèn)證合作伙伴” 證書

    科技作為國內(nèi)領(lǐng)先的芯片設(shè)計(jì)企業(yè),在工業(yè)、物聯(lián)網(wǎng)等領(lǐng)域擁有深厚技術(shù)積累。志在發(fā)布會(huì)現(xiàn)場(chǎng)為我司正式頒發(fā)“
    的頭像 發(fā)表于 10-10 11:57 ?192次閱讀
    工博會(huì)現(xiàn)場(chǎng)|<b class='flag-5'>全</b>志在新品發(fā)布會(huì)為我司頒發(fā) “<b class='flag-5'>全</b><b class='flag-5'>志</b>科技生態(tài)認(rèn)證合作伙伴” 證書

    從消費(fèi)電子到工業(yè)高地:打出組合拳:發(fā)布T153+工業(yè)生態(tài)計(jì)劃

    工業(yè)市場(chǎng),從2016年發(fā)布至今,累計(jì)銷售已經(jīng)超過5000萬顆。 今年9月,在工業(yè)戰(zhàn)略開啟十周年之際,科技舉行“工業(yè)生態(tài)研討會(huì)暨 T153芯片
    的頭像 發(fā)表于 09-28 23:19 ?4571次閱讀
    從消費(fèi)電子到工業(yè)高地:<b class='flag-5'>全</b><b class='flag-5'>志</b>打出組合拳:發(fā)布T153+工業(yè)生態(tài)計(jì)劃

    Comake PI D1開箱使用體驗(yàn)分享

    一顆針對(duì)智慧視覺、智慧音頻、智能機(jī)器人、小屏顯示等應(yīng)用的AI主控芯片SSD2355,并搭配該芯片重磅推出了Comake PI D1開發(fā)板,結(jié)合Comake 開發(fā)者社區(qū)的高效在線服務(wù)及AI 模型資源
    發(fā)表于 08-21 15:37

    【案例2.36】芯片啟動(dòng)異常的故障分析

    【案例2.36】芯片啟動(dòng)異常的故障分析在某產(chǎn)品的調(diào)試中發(fā)現(xiàn),板上核心處理芯片在每次啟動(dòng)后的表現(xiàn)不同,偶爾會(huì)出現(xiàn)無法
    的頭像 發(fā)表于 06-26 08:24 ?507次閱讀
    【案例2.36】<b class='flag-5'>芯片</b><b class='flag-5'>啟動(dòng)</b>異常的故障<b class='flag-5'>分析</b>

    音諾恒 A133收銀機(jī)POS機(jī)主板規(guī)格書-V1

    音諾恒A133收銀機(jī)POS機(jī)主板規(guī)格書-V1
    發(fā)表于 06-11 18:09 ?0次下載

    音諾恒 A133商顯安卓主板規(guī)格書-V1

    音諾恒 A133商顯安卓主板規(guī)格書-V1
    發(fā)表于 06-11 18:08 ?0次下載

    AIOT系列芯片助力AI玩具百花齊放

    近日,由阿里云主辦的“AI火花會(huì)——通情達(dá)義智玩共生:玩具行業(yè)的“智”變方程式”在深圳舉行,科技受邀參會(huì)。會(huì)上,科技 模擬互聯(lián)產(chǎn)品中心總經(jīng)理 黃露 深入分享了
    的頭像 發(fā)表于 04-01 09:16 ?990次閱讀

    視覺芯片V821接入DeepSeek和豆包視覺大模型

    帶來一款新的視覺芯片V821,通過網(wǎng)絡(luò)接入的方式打通DeepSeek-R1滿血版模型和豆包視覺大模型,并展示其語言和視覺交互的能力和多樣性。
    的頭像 發(fā)表于 02-21 09:27 ?3359次閱讀

    芯片失效分析的方法和流程

    、物理分析、材料表征等多種手段,逐步縮小問題范圍,最終定位失效根源。以下是典型分析流程及關(guān)鍵方法詳解: ? ? ? 前期信息收集與失效現(xiàn)象確認(rèn) 1.?失效背景調(diào)查 收集
    的頭像 發(fā)表于 02-19 09:44 ?2023次閱讀

    科技2024年凈利預(yù)計(jì)暴漲727.42%

    近日,國產(chǎn)芯片行業(yè)的佼佼者——科技發(fā)布了其2024年度的業(yè)績(jī)預(yù)告,揭示了公司在過去一年中的卓越表現(xiàn)。據(jù)公告顯示,科技預(yù)計(jì)2024年度
    的頭像 發(fā)表于 02-05 15:19 ?1533次閱讀

    攜手科技,共創(chuàng)智慧工業(yè)新未來

    》的主題演講,深入介紹了科技與RT-Thread在工業(yè)領(lǐng)域的技術(shù)合作,以及在AIoT工業(yè)應(yīng)用方向的產(chǎn)品和技術(shù)布局。分享中首先介紹了芯片
    的頭像 發(fā)表于 01-02 18:39 ?1166次閱讀
    攜手<b class='flag-5'>全</b><b class='flag-5'>志</b>科技,共創(chuàng)智慧工業(yè)新未來

    請(qǐng)問TVP5158分辨率D1與HalfD1是如何轉(zhuǎn)換的?

    這段時(shí)間在調(diào)試TVP5158模擬視頻采集芯片,發(fā)現(xiàn)輸出數(shù)據(jù)有三種分辨率D1、HalfD1和CIF,手冊(cè)上面只是說明了D1、HalfD1和C
    發(fā)表于 12-23 06:31

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

    “ ??F133是首款基于RISC-V架構(gòu)的F系列處理器,F(xiàn)133是一款64bit處理器,性能比以往的F系列芯片有很大的提升。 ? ” 概覽
    的頭像 發(fā)表于 12-04 18:22 ?5874次閱讀
    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開發(fā)板

    亮相灰度科技2024年新品發(fā)布會(huì)

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

    國產(chǎn)RISC-V案例分享,基于T113-i異構(gòu)多核平臺(tái)!

    ,并已適配OpenWRT系統(tǒng)、Docker容器技術(shù)。而其中的RISC-V屬于超高能效副核心,主頻高達(dá)1008MHz,標(biāo)配內(nèi)存管理單元,可運(yùn)行RTOS或裸機(jī)程序。 圖 1 T113-i的RISC-V
    發(fā)表于 10-29 09:47