国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

樹莓派裸機代碼之前必做的事情

嵌入式IoT ? 來源:嵌入式IoT ? 作者:嵌入式IoT ? 2020-09-25 15:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

樹莓派4裸機基礎教程:芯片啟動到代碼執行

1.說明

2.樹莓派的sd

3.config.txt的配置信息

4.小結

1.說明

在做嵌入式開發的時候,每個芯片都有自己的啟動方式。在做底層優化的時候,往往也需要關注芯片的啟動方式,涉及到啟動時間,啟動的穩定性問題。所以關注芯片的啟動方式非常的重要。在使用電腦的時候,電腦上電后首先會執行BIOS,這個是廠家固化到ROM里面的代碼,一般從電腦生產出來到電腦的壽命結束,其中的內容都是不會變的。而系統卻可以經常更換,我們可以裝Linux系統,也可以裝windows系統。這個就是電腦的啟動過程。

類比芯片的啟動過程,大多數也是如此,比如我們一般描述嵌入式Linux在某些芯片的上的啟動流程,首先芯片上電后會執行芯片內部rom的一段固化代碼,這段代碼會根據撥碼開關選擇從不同的存儲介質中去讀取一小段可以執行的代碼放到sram中執行。這些存儲介質可以是SPI Flash,可以是nand或者nor flash,或者sd卡等等。由于芯片的sram不可能做到非常大,所以第一階段的代碼往往會有限制,比如只允許使用4K內存等等。這段小的代碼負責初始化sdram,然后跳轉到sdram中去執行代碼。由于sdram的成本比sram小許多,所以sdram往往非常的大,接著就是執行正常的程序了。

這些啟動方式的選擇,都是芯片設計者需要考慮的問題,一方面是成本另一方面是啟動的效率問題。在使用芯片的時候,具體看設計者的思路即可。下面來分析一下樹莓派4芯片的啟動過程。

2.樹莓派的sd卡

一般我們使用開發板的時候,很少會見到需要插上sd卡才能啟動的,唯有樹莓派有這個特殊的操作。那么樹莓派的sd卡里面的文件究竟有什么作用呢?

樹莓派在設計的時候,為了節省成本,沒有使用掉電非易失性存儲介質,也就在板子上不能找到相關的flash。這樣芯片啟動的程序只能放在sd卡里面了。本來U盤啟動也是一種方式,但是樹莓派4代之前的設計并不是很好,導致這種啟動方式不可以使用。樹莓派4也有一些嘗試,但是目前樹莓派4最主流的方式還是使用SD卡啟動。

Raspberry Pi 4具有一個SPI連接的EEPROM(4MBits / 512KB)。其中包含用于啟動系統的代碼,并替換了先前在SD卡的啟動分區中找到的bootcode.bin。請注意,如果Pi 4的SD卡的啟動分區中存在bootcode.bin,則將其忽略。也就是說在樹莓派4的啟動方式上,更加的靈活,甚至可以直接去掉SD卡,從網絡方式啟動應用程序。具體可以看之前的文章

下面來分析一下從sd卡啟動系統需要的必要的文件內容。在裸機實驗中,一般只需要如下的文件就可以啟動了。

啟動過程可以描述如下:

首先芯片上電后執行first-stage bootloader,這是芯片固化在內部的代碼,這個代碼的功能是加載sd卡中的bootcode.bin文件。在樹莓派4之前的版本都是需要這個文件的,但是在樹莓派4上,由于有了SPI的EEPROM,所以SD卡中可以不用存在這個文件。并且啟動了GPU。然后將bootcode.bin讀取到了128K大小的二級緩存(L2 Cache)中。此時開始執行bootcode.bin代碼。該功能用于初始化ram,并且把start4.elf加載到內存中,并且去讀取config.txt中的配置信息,設置這些配置信息。上述已經描述了這幾個文件的作用,但是經過實際測試發現,這個設備樹文件bcm2711-rpi-4-b.dtb文件也是需要的,如果不存在也會影響串口的輸出,也就是只會有亂碼輸出。所以推測start4.elf文件也會去讀取設備樹文件,然后設置一些基本的參數。畢竟這個文件的大小也可以說明其功能的豐富。

3.config.txt的配置信息

前面說到,start4.elf會讀取config.txt中的配置信息,然后去設置相關的配置。先看看最簡單的裸機代碼啟動里設置了哪些配置:

enable_uart=1 arm_64bit=0 core_freq=250 kernel=kernel7.img kernel_address=0x8000

首先enable_uart=1表示使用的是miniUART,樹莓派4中,UART控制器有兩種,PL011或者mini UART。

Name Type
UART0 PL011
UART1 mini UART
UART2 PL011
UART3 PL011
UART4 PL011
UART5 PL011

這里設置使能UART1作為輸出信息,接著需要設置arm的頻率core_freq=250。因為串口控制器是需要頻率進行使能的。

arm_64bit=0告訴arm要啟動的程序是32位的,由于樹莓派4上的芯片是cortex-a72,是aarch64架構的,但是也支持向下兼容的32位指令。所以需要告知當前的裸機程序是32位指令集架構。

kernel=kernel7.img表示從start4.elf執行的程序是哪一個,另外kernel_address=0x8000表示需要執行的內存地址。這個地址就是裸機程序在鏈接時的入口地址。

4.小結

本文主要描述了一個樹莓派裸機代碼之前所做的事情,這些啟動流程是非常值得思考的,每一個步驟都有其設定的含義。剩下的config.txt文件中的配置其實還是有很多可以嘗試的,比如修改啟動地址,或者去使能某些外設等等。由于目前研究的是最簡單的裸機代碼,所以這些配置會在以后更高級的功能中慢慢說到。比如比較重要的安全可信技術,也需要修改配置文件。前期理解芯片的啟動過程有助于對后面編寫裸機代碼的分析。

- END -

原文標題:樹莓派4裸機基礎教程:芯片啟動到代碼執行

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

責任編輯:haq

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

    關注

    463

    文章

    54010

    瀏覽量

    466087
  • 樹莓派
    +關注

    關注

    122

    文章

    2078

    瀏覽量

    110473

原文標題:樹莓派4裸機基礎教程:芯片啟動到代碼執行

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    零成本鋼鐵俠手套!樹莓+OpenCV 秒變手勢遙控器!

    大家好,這是一個樹莓和OpenCV的連載專題。使用樹莓與OpenCV實現姿態估計和面部特征點追蹤使用樹莓
    的頭像 發表于 08-16 16:16 ?1274次閱讀
    零成本鋼鐵俠手套!<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>+OpenCV 秒變手勢遙控器!

    如何使用樹莓與OpenCV實現面部和運動追蹤的云臺系統?

    大家好,這是一個樹莓和OpenCV的連載專題。使用樹莓與OpenCV實現姿態估計和面部特征點追蹤使用樹莓
    的頭像 發表于 08-14 17:45 ?1582次閱讀
    如何使用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>與OpenCV實現面部和運動追蹤的云臺系統?

    樹莓屏幕怎么選?

    樹莓很多人都用過,但用屏幕的倒不是很多。不少都是直接遠程操作,或者直接接身邊的顯示設備了。但我覺得給開發板配一個屏幕還是很能提升使用體驗的。這次我就介紹一下樹莓的屏幕怎么選擇。
    的頭像 發表于 08-08 14:59 ?1515次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>屏幕怎么選?

    樹莓操作系統:版本、特性及設置完整指南!

    樹莓操作系統是什么?樹莓操作系統是由樹莓基金會專為樹莓
    的頭像 發表于 07-28 18:26 ?1447次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>操作系統:版本、特性及設置完整指南!

    樹莓5上開啟YOLO姿態估計識別之旅!

    AIHat+上|如何編寫自定義Python代碼YOLO姿態估計在樹莓AIHat+上|編寫自定義Python代碼今天是第二部分:樹莓
    的頭像 發表于 07-18 15:31 ?2493次閱讀
    在<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>5上開啟YOLO姿態估計識別之旅!

    樹莓5上使用YOLO進行物體和動物識別-入門指南

    AIHat+上|如何編寫自定義Python代碼YOLO姿態估計在樹莓AIHat+上|編寫自定義Python代碼今天是第一部分:在樹莓
    的頭像 發表于 07-17 17:16 ?2054次閱讀
    在<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>5上使用YOLO進行物體和動物識別-入門指南

    樹莓6 傳聞:發布日期與規格!

    每當我想再為我的收藏增添一款樹莓時,總會在是立即購買還是等待硬件更強大的下一代之間猶豫不決。但新樹莓型號的發布往往容易被錯過,尤其是在你的信息流被病毒式傳播的貓咪視頻占據時。因此,
    的頭像 發表于 07-11 16:21 ?2321次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>6 傳聞:發布日期與規格!

    樹莓小技巧:無需鍵盤或顯示器,如何通過WiFi設置樹莓

    樹莓是一款小巧便攜的USB供電計算機,可以隱藏起來用于小型項目,如網絡服務器或家庭自動化。通常,設置樹莓需要鍵盤和顯示器來編輯和查看樹莓
    的頭像 發表于 06-26 15:41 ?1556次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>小技巧:無需鍵盤或顯示器,如何通過WiFi設置<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>?

    搭載代碼樹莓進入國際空間站!

    前言通過歐洲宇航挑戰賽(EuropeanAstroPiChallenge),年輕人通過在國際空間站(ISS)上的樹莓(RaspberryPi)計算機上運行代碼的獨特體驗,參與計算編
    的頭像 發表于 06-19 17:11 ?1036次閱讀
    搭載<b class='flag-5'>代碼</b>的<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>進入國際空間站!

    樹莓分類器:用樹莓識別不同型號的樹莓

    在本教程系列的第一部分中,您將學習如何使用樹莓AI攝像頭來檢測不同的樹莓型號。本系列由DavidPlowman創建,他是樹莓
    的頭像 發表于 06-13 16:39 ?1305次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>分類器:用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>識別不同型號的<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>!

    樹莓“揪出”家里的耗電怪獸!

    在本應用中,我們將使用樹莓設置一個CE電流監測器,并通過網頁界面顯示電路的電流讀數。本項目使用的組件硬件組件樹莓2ModelBx112通道20安培電流監測控制器x1項目背景介紹在本
    的頭像 發表于 06-04 15:33 ?1543次閱讀
    用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>“揪出”家里的耗電怪獸!

    樹莓“吉尼斯世界記錄”:將樹莓的性能發揮到極致的項目!

    樹莓是一款功能強大、體積小巧且高度可定制的設備,多年來,我們見證了它被應用于眾多領域。無論是將其裝入3D打印的經典游戲機外殼,還是簡單地將它隱藏起來作為家庭文件服務器,我們都報道過在社區里用樹莓
    的頭像 發表于 05-22 16:53 ?1533次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>“吉尼斯世界記錄”:將<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>的性能發揮到極致的項目!

    樹莓5 與 樹莓4:深度對比與獨特優勢!

    隨著技術的不斷發展,推動創新與創造力的工具和設備也在不斷升級。其中,樹莓派系列憑借其多功能性和強大性能,在從簡單的DIY項目到復雜的計算任務等眾多應用場景中脫穎而出。隨著樹莓5的近期發布,愛好者
    的頭像 發表于 05-21 13:15 ?2966次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>5 與 <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>4:深度對比與獨特優勢!

    能夠精準定位的樹莓機器人!

    我為我的自制機器人BigRob(同樣由樹莓驅動)配備了基于樹莓的精準GPS導航系統。本項目所用組件硬件組件NV08C-CSMx1NV08C-CSM是一款集成式衛星導航接收器
    的頭像 發表于 05-17 08:33 ?1235次閱讀
    能夠精準定位的<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>機器人!

    樹莓 Zero 打造的智能漫游車!

    使用PXFMini和樹莓Zero打造您自己的自主漫游車。本項目所用組件硬件組件ErleRoboticsPXFmini×1樹莓Zero×1樹莓
    的頭像 發表于 05-13 16:39 ?1107次閱讀
    用 <b class='flag-5'>樹莓</b><b class='flag-5'>派</b> Zero 打造的智能漫游車!