51c嵌入式※~合集7~Linux

我自己的原文哦~? ? ?https://blog.51cto.com/whaosoft/13926843

一、u-boot和bootloader~區別

Bootloader

比Bootloader從字面上來看就是啟動加載的意思。用過電腦的都知道,windows開機時會首先加載bios,然后是系統內核,最后啟動完畢。那么bootloader就相當于手機的bios,它在手機啟動的時候根據基帶初始化硬件,然后引導系統內核,直到系統啟動。

Bootloader是嵌入式系統在加電后執行的第一段代碼,通過這段小程序,進行硬件初始化,獲取內存大小信息等,調整手機到適配狀態。在它完成CPU和相關硬件的初始化之后,再將操作系統映像或固化的嵌入式應用程序裝在到內存中然后跳轉到操作系統所在的空間,啟動操作系統運行 。

對于嵌入式系統,Bootloader是基于特定硬件平臺來實現的。因此,幾乎不可能為所有的嵌入式系統建立一個通用的Bootloader,不同的處理器架構都有不同的Bootloader。Bootloader不但依賴于CPU的體系結構,而且依賴于嵌入式系統板級設備的配置。對于2塊不同的嵌入式板而言,即使它們使用同一種處理器,要想讓運行在一塊板子上的Bootloader程序也能運行在另一塊板子上,一般也都需要修改Bootloader的源程序 。

反過來,大部分Bootloader仍然具有很多共性,某些Bootloader也能夠支持多種體系結構的嵌入式系統。例如,U-Boot就同時支持PowerPC、ARM、MIPS和X86等體系結構,支持的板子有上百種。通常,它們都能夠自動從存儲介質上啟動,都能夠引導操作系統啟動,并且大部分都可以支持串口和以太網接口。

uboot

1.硬件管理

uboot要能夠進行Soc級(Soc內部外設)和板級(Soc外部外設)硬件管理。

uboot中實現了一部分硬件的控制能力(uboot中初始化了一部分硬件),因為uboot為了完成一些任務必須讓這些硬件工作。譬如uboot要實現刷機必須能驅動iNand,譬如uboot要在刷機時LCD上顯示進度條就必須能驅動LCD,譬如uboot能夠通過串口提供操作界面就必須驅動串口。譬如uboot要實現網絡功能就必須驅動網卡芯片。

2.能夠完成鏡像燒錄(刷機)

uboot要能夠被借助完成刷機操作。參考下SD卡刷機的步驟:

a.燒錄uboot到SD卡中。

有2種燒寫方法:一種是在windows中用刷卡工具去制作啟動SD卡;另一種是在linux中用dd命令。制作完SD后將SD卡插入開發板,然后開機就可以進入uboot界面。

b.使用uboot的fastboot命令,并借助PC中的fastboot軟件完成包括uboot、kernel、rootfs等的鏡像的燒錄。

從上面就可以看出,刷機依靠的是uboot的fastboot命令,將鏡像寫到相應的FLASH中。

3.uboot的“生命周期”

uboot的入口就是開機自動啟動,uboot的唯一出口就是啟動內核。uboot還可以執行很多別的任務(譬如燒錄系統),但是其他任務執行完后都可以回到uboot的命令行繼續執行uboot命令,而啟動內核命令一旦執行就回不來了。

4.uboot要提供命令式shell界面

shell是用戶操作接口的意思。shell有命令行的shell,如windows下的cmd,如linux下的終端;也有GUI式的shell,比如常用的windows下的各種界面。shell是一種封裝后留出來的接口,uboot也要有這樣的一個接口。

shell的原理是:由消息接收、解析、執行構成的一個死循環。我之前用過3D打印機的固件(firmware)也是這樣的模式。

uboot的shell使用的也是行緩沖的模式。也就是以回車鍵(換行鍵)作為一個命令輸入的結束。對應的其他緩沖模式還有無緩沖和全緩沖:無緩沖就是輸入一個字符就當做一個命令處理;全緩沖就是無論輸入什么都緩沖起來知道緩沖區滿了才做一次處理。

bootloader 與 uboot的區別

BootLoader是嵌入式設備中用來啟動操作系統內核的一段程序。

uboot(universal bootloader)是一種可以用于多種嵌入式CPU的BootLoader程序,換言之,uboot是bootloader的一個子集。

二、xxx

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/81640.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/81640.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/81640.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深度學習實戰 04:卷積神經網絡之 VGG16 復現三(訓練)

在后續的系列文章中,我們將逐步深入探討 VGG16 相關的核心內容,具體涵蓋以下幾個方面: 卷積原理篇:詳細剖析 VGG 的 “堆疊小卷積核” 設計理念,深入解讀為何 332 卷積操作等效于 55 卷積,以及 333 卷積操作…

Ubuntu 20.04之Docker安裝ES7.17.14和Kibana7.17.14

你需要已經安裝如下運行環境: Ubuntu 20.04 docker 28 docker-compose 1.25 一、手動拉取鏡像 docker pull docker.elastic.co/kibana/kibana:7.17.14docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.14 或者手動導入鏡像 docker load -i es7.17.14.ta…

實時技術方案對比:SSE vs WebSocket vs Long Polling

早期網站僅展示靜態內容,而如今我們更期望:實時更新、即時聊天、通知推送和動態儀表盤。 那么要如何實現實時的用戶體驗呢?三大經典技術各顯神通: SSE(Server-Sent Events):輕量級單向數據流WebSocket:雙向全雙工通信Long Polling(長輪詢):傳統過渡方案假設目前有三…

測試開發面試題:Python高級特性通俗講解與實戰解析

前言:為什么測試工程師必須掌握Python高級特性? 通俗比喻: 基礎語法就像“錘子”,能敲釘子;高級特性就像“瑞士軍刀”,能應對復雜場景(如自動化框架、高并發測試)。面試官考察點&a…

C語言-9.指針

9.1指針 9.1-1取地址運算:&運算符取得變量的地址 運算符& scanf(“%d”,&i);里的&獲取變量的地址,它們操作數必須是變量int i;printf(“%x”,&i);地址的大小是否與int相同取決于編譯器int i;printf(“%p”,&i); &不能取的地址不能對沒有地址的…

【C++】Vcpkg 介紹及其常見命令

Vcpkg 簡介 Vcpkg 是微軟開發的一個跨平臺的 C/C 依賴管理工具,用于簡化第三方庫的獲取、構建和管理過程。 主要特點 跨平臺支持:支持 Windows、Linux 和 macOS開源免費:MIT 許可證大型庫集合:包含超過 2000 個開源庫簡化集成&…

Unity3D 動畫文件優化總結

前言 在Unity3D中,動畫文件的壓縮和優化是提升性能的重要環節,尤其在移動端或復雜場景中。以下是針對Animation Clip和Animator Controller的優化方法總結: 對惹,這里有一個游戲開發交流小組,希望大家可以點擊進來一…

前端工程的相關管理 git、branch、build

環境配置 標準環境打包 測試版:npm run build-test 預生產:npm run build-preview 正式版:npm run build 建議本地建里一個 .env.development.local 方便和后端聯調時修改配置相關信息。 和 src 同級有一下區分環境的文件: .env.d…

VAPO:視覺-語言對齊預訓練(對象級語義)詳解

簡介 多模態預訓練模型(Vision-Language Pre-training, VLP)近年來取得了飛躍發展。在視覺-語言模型中,模型需要同時理解圖像和文本,這要求模型學習二者之間的語義對應關系。早期方法如 VisualBERT、LXMERT 等往往使用預先提取的圖像區域特征和文本詞嵌入拼接輸入,通過 T…

docker運行Redis

創建目錄 mkdir -p /home/jie/docker/redis/{conf,data,logs}添加權限 chmod -R 777 /home/jie/docker/redis創建配置文件 cat > /home/jie/docker/redis/conf/redis.conf << EOF # 基本配置 bind 0.0.0.0 protected-mode yes port 6379# 安全配置 密碼是root require…

初識 java

目錄 前言 一、jdk&#xff0c;JRE和JVM之間的關系 二、JVM的內存劃分 前言 初步了解 jdk&#xff0c;JRE&#xff0c;JVM 之間的關系&#xff0c;JVM 的內存劃分。 一、jdk&#xff0c;JRE和JVM之間的關系 jdk 是 java 開發工具集&#xff0c;包含JRE&#xff1b; JRE 是…

關于百度地圖JSAPI自定義標注的圖標顯示不完整的問題(其實只是因為圖片尺寸問題)

下載了幾個阿里矢量圖標庫里的圖標作為百度地圖的自定義圖標&#xff0c;結果百度地圖顯示的圖標一直不完整。下載的PNG圖標已經被正常引入到前端代碼&#xff0c;anchor也設置為了圖標底部中心&#xff0c;結果還是顯示不完整。 if (iconUrl) {const icon new mapClass.Icon(…

系統安全及應用深度筆記

系統安全及應用深度筆記 一、賬號安全控制體系構建 &#xff08;一&#xff09;賬戶全生命周期管理 1. 冗余賬戶精細化治理 非登錄賬戶基線核查 Linux 系統默認創建的非登錄賬戶&#xff08;如bin、daemon、mail&#xff09;承擔系統服務支撐功能&#xff0c;其登錄 Shell 必…

02-前端Web開發(JS+Vue+Ajax)

介紹 在前面的課程中&#xff0c;我們已經學習了HTML、CSS的基礎內容&#xff0c;我們知道HTML負責網頁的結構&#xff0c;而CSS負責的是網頁的表現。 而要想讓網頁具備一定的交互效果&#xff0c;具有一定的動作行為&#xff0c;還得通過JavaScript來實現。那今天,我們就來講…

AXXI4總線協議 ------ AXI_FULL協議

https://download.csdn.net/download/mvpkuku/90855619 一、AXI_FULL協議的前提知識 1. 各端口的功能 2. 4K邊界問題 3. outstanding 4.時序仿真體驗 可通過VIVADO自帶ADMA工程觀察仿真波形圖 二、FPGA實現 &#xff08;主要用于讀寫DDR&#xff09; 1.功能模塊及框架 將…

React系列——nvm、node、npm、yarn(MAC)

nvm&#xff0c;node&#xff0c;npm之間的區別 1、nvm&#xff1a;nodejs版本管理工具。nvm 可以管理很多 node 版本和 npm 版本。 2、nodejs&#xff1a;在項目開發時的所需要的代碼庫 3、npm&#xff1a;nodejs包管理工具。nvm、nodejs、npm的關系 nvm 管理 nodejs 和 npm…

2025年AI與網絡安全的終極博弈:沖擊、重構與生存法則

引言 2025年&#xff0c;生成式AI的推理速度突破每秒千萬次&#xff0c;網絡安全行業正經歷前所未有的范式革命。攻擊者用AI批量生成惡意代碼&#xff0c;防御者用AI構建智能護盾&#xff0c;這場技術軍備競賽正重塑行業規則——60%的傳統安全崗位面臨轉型&#xff0c;70%的防…

【Android】Android 實現一個依賴注入的注解

Android 實現一個依賴注入的注解 &#x1f3af; 目標功能 自定義注解 Inject創建一個 Injector 類&#xff0c;用來掃描并注入對象支持 Activity 或其他類中的字段注入 &#x1f9e9; 步驟一&#xff1a;定義注解 import java.lang.annotation.ElementType; import java.lan…

Spring Boot與Kafka集成實踐:從入門到實戰

Spring Boot與Kafka集成實踐 引言 在現代分布式系統中&#xff0c;消息隊列是不可或缺的組件之一。Apache Kafka作為一種高吞吐量的分布式消息系統&#xff0c;廣泛應用于日志收集、流處理、事件驅動架構等場景。Spring Boot作為Java生態中最流行的微服務框架&#xff0c;提供…

ubuntu的虛擬機上的網絡圖標沒有了

非正常的關機導致虛擬機連接xshell連接不上&#xff0c;ping也ping不通。網絡的圖標也沒有了。 記錄一下解決步驟 1、重啟服務 sudo systemctl restart NetworkManager 2、圖標顯示 sudo nmcli network off sudo nmcli network on 3、sudo dhclient ens33 //(網卡) …