精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

一張圖秒懂嵌入式系統的啟動流程

嵌入式開發愛好者 ? 來源:嵌入式開發愛好者 ? 2023-07-29 16:58 ? 次閱讀

一圖勝千言!看圖:

f65b2156-2d5f-11ee-815d-dac502259ad0.png

上圖是嵌入式系統啟動流程圖,圖中紅色的數字圓點表示啟動的先后順序。主要分為 4 個階段,分別是:第一階段 bootloader,第二階段uboot,第三階段內核啟動,第四階段 app 啟動。

第一:bootloader階段

主要完成第一階段系統的引導和初始化工作,包括序號1~3。

系統上電后,首先是cpu開始工作,此時引導程序(通常是匯編代碼)從ROM被加載到RAM 中,對 cpu 的寄存器進行初始化,啟動核 0,如果是核1或者其他核則處于休眠狀態,等待核 0 在內核啟動正常后通過中斷或者事件將其喚醒(圖中10的位置)。

接下來就是完成 flash 和 ddr 初始化,為后面從 flash 加載 bin 文件,在 DDR 中運行程序提供基本環境,一般情況下都是從flash為0的位置,將flash中的bootloader 鏡像文件加載到 RAM 或 DDR 中,該引導程序最終將uboot從flash 復制到 DDR 中,然后交接給 uboot 進行下一步處理。

第二:uboot 階段

首先對 dram,flash,串口進行檢查,保障 uboot 的運行環境是 ok 的,同時為 linux分配內存空間;接下來初始化網絡配置,包括mac地址的設置、通信端口的工作模式設置,可以讓用戶通過網絡加載程序;最后將linux從flash中復制到內存中。

linux 鏡像文件中包含內核、文件系統和設備管理樹 (FDT) 三個基本組件,uboot 會根據設備管理樹定義的信息進行檢查,然后依次加載到內存中 。包括序號4~5,這個階段最后將 linux 加載后,就可以交接給內核進行操作。

第三:內核啟動階段

主要負責創建進程、綁定進程、劃分內存、喚醒核1、加載文件系統等基本工作,包括序號6~13。

首先,會生成一個初始進程init0,后續創建的所有進程都是從該進程中產生,該進程還負責對內存和虛擬內存進行劃分。

然后 vfork 出一個主核進程,綁定到核 0 上,接下來由 cpu 主核(核0)喚醒其他的核,從 init 進程 vfork 出副核進程,并將該進程綁定到核1上。

最后是基于設備管理樹完成對系統中其他設備的初始化。

第四:app啟動階段

這一階段主要對各類 app 應用進行初始化,如文中以通信設備為例,此處主要完成對轉發芯片的初始化,會涉及一些基礎轉發表項的初始配置,端口和各種通信總線的初始化。

接下來會初始化中間件,中間件是作為應用程序和操作系統之間的橋梁,向下屏蔽操作系統的差異,向上為應用程序提供平臺化的技術支持;最后就是各種應用程序的初始化了,包括各種特性的初始化,心跳信息,單板信息,版本信息等等。

日常工作中,最容易出問題的地方其實都是在 app 的啟動階段,這部分才是最應該做一個詳盡的圖出來,后續筆者有了具體的項目案例后將會補充該圖例。

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

    關注

    31

    文章

    5325

    瀏覽量

    120053
  • 嵌入式系統
    +關注

    關注

    41

    文章

    3570

    瀏覽量

    129253
  • RAM
    RAM
    +關注

    關注

    8

    文章

    1367

    瀏覽量

    114545

原文標題:一張圖秒懂嵌入式系統的啟動流程

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

收藏 人收藏

    評論

    相關推薦

    請問怎樣去設計嵌入式系統啟動程序?

    如何去編寫嵌入式系統啟動程序?設計嵌入式系統啟動程序的步驟流程有哪些?設計嵌入式
    發表于 04-25 09:18

    一張帶你看懂嵌入式系統

    嵌入式系統種應用范圍非常廣泛的系統??梢哉f除了般用途的計算機外的所有計算機都屬于嵌入式
    發表于 05-12 08:30

    嵌入式系統框架的相關資料下載

    1.系統框架對于嵌入式系統,最重要的當然是運算以及存儲單元,基本的嵌入式
    發表于 10-27 06:51

    嵌入式系統的開發流程是怎樣的

    嵌入式系統開發流程嵌入式系統般開發可以參照下圖所示流程
    發表于 10-27 06:12

    嵌入式Linux的啟動流程簡介

    目錄嵌入式 Linux 啟動流程簡介啟動流程Bootloader 簡介市面上可見的 bootloader入
    發表于 11-04 09:04

    詳細分析嵌入式Linux系統啟動流程

    嵌入式Linux專題()中已經對嵌入式Linux系統的架構及啟動流程有了初步的介紹,本文將詳
    發表于 11-05 09:25

    嵌入式系統與ARM啟動流程簡述

    Date:2019-5-131、嵌入式系統概述2、ARM啟動流程簡述2.1、Uboot執行流程2.2、Kernel執行
    發表于 12-14 06:04

    iny4412嵌入式Linux操作系統啟動流程是怎樣的

    本次介紹下友善之臂tiny4412嵌入式Linux操作系統分析首先,可以從官方提供的用戶手冊中得到這樣一張,它簡單表達了裸機燒寫
    發表于 12-20 07:50

    嵌入式系統U盤實時啟動技術

    本文給出了實現嵌入式實時系統優盤啟動嵌入式主機硬件結構、軟件協議棧以及主要程序流程,探討了實現嵌入式
    發表于 07-20 15:09 ?1714次閱讀

    嵌入式Linux快速啟動技術綜述全勝

    嵌入式Linux快速啟動技術綜述_全勝
    發表于 03-14 08:00 ?1次下載

    嵌入式系統框架----硬件篇

    1.1 系統框架對于嵌入式系統,我們從常見的嵌入式ARM板進行分析:(從淘寶上截取了
    發表于 10-20 11:51 ?3次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>框架----硬件篇

    嵌入式Linux專題()——嵌入式Linux系統構成及啟動流程

    本文簡單的介紹了什么是嵌入式系統,以及嵌入式Linux的系統結構,并且簡單的介紹了Linux的啟動流程
    發表于 11-02 12:36 ?15次下載
    <b class='flag-5'>嵌入式</b>Linux專題(<b class='flag-5'>一</b>)——<b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>系統</b>構成及<b class='flag-5'>啟動</b><b class='flag-5'>流程</b>

    一張了解嵌入式系統啟動流程

    如下圖所示是嵌入式系統啟動流程圖,圖中紅色的數字圓點表示啟動的先后順序。主要分為4個階段,分別是第階段 bootloader,第二階段ub
    發表于 03-07 09:44 ?829次閱讀

    看懂RISC-V星光板的啟動流程

    繼《最全教程來啦!在RISC-V星光板上創建Debian系統鏡像》之后,這期來聊聊RISC-V星光板的啟動流程。如何更直觀理解VisionFive的
    的頭像 發表于 04-22 13:43 ?2007次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>圖</b>看懂RISC-V星光板的<b class='flag-5'>啟動</b><b class='flag-5'>流程</b>

    嵌入式系統啟動流程

    嵌入式系統啟動流程個復雜但有序的過程,它涉及從系統上電到操作
    的頭像 發表于 10-05 17:44 ?297次閱讀