日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式硬件
[導讀]在設計實驗系統(tǒng)模型(圖1)時,充分考慮到軟硬協(xié)同性,使其成為一個實驗與研究完備平臺。軟硬件協(xié)同性問題涉及到協(xié)同性劃分技術(shù)和協(xié)同性設計技術(shù)。協(xié)同性核心問題之一將涉及啟動加載軟件Bootloader、系統(tǒng)板級支持包BSP 以及嵌入式OS 之間融合和移植。協(xié)同性設計技術(shù)與系統(tǒng)功能、性能以及開發(fā)人員等因素相關(guān),其核心內(nèi)容為軟硬件的協(xié)同描述、驗證和綜合提供一種集成環(huán)境。

引言

嵌入式技術(shù)被廣泛應用于信息家器、消費電子、交換機以及機器人等產(chǎn)品中,與通用計算機技術(shù)不同,嵌入式系統(tǒng)中計算機被置于應用環(huán)境內(nèi)部特征不明顯。系統(tǒng)對性能、體積、以及時間等有較高的要求。復雜的嵌入式系統(tǒng)面向特定應用環(huán)境,必須支持硬、軟件裁減,適應系統(tǒng)對功能、成本以及功耗等要求。

0.1 嵌入式系統(tǒng)與協(xié)同性

從信息傳遞的電特性過程分析,嵌入式系統(tǒng)特征表現(xiàn)為,計算機技術(shù)與電子技術(shù)緊密結(jié)合,難以分清特定的物理外觀和功能,處理器與外設、存儲器等之間的信息交換主要以電平信號的形式在IC 間直接進行。
從嵌入深度ED來看,信息交換在IC 間越直接、越多,嵌入深度就越大。

在設計實驗系統(tǒng)模型(圖1)時,充分考慮到軟硬協(xié)同性,使其成為一個實驗與研究完備平臺。軟硬件協(xié)同性問題涉及到協(xié)同性劃分技術(shù)和協(xié)同性設計技術(shù)。協(xié)同性核心問題之一將涉及啟動加載軟件Bootloader、系統(tǒng)板級支持包BSP 以及嵌入式OS 之間融合和移植。協(xié)同性設計技術(shù)與系統(tǒng)功能、性能以及開發(fā)人員等因素相關(guān),其核心內(nèi)容為軟硬件的協(xié)同描述、驗證和綜合提供一種集成環(huán)境。

圖 1. 嵌入式系統(tǒng)結(jié)構(gòu)模型

0.2 沒有操作系統(tǒng)OS 的嵌入式系統(tǒng)

0.2.1 系統(tǒng)特點

由于系統(tǒng)的性質(zhì)、任務、成本等原因,沒有操作系統(tǒng)支持的嵌入式系統(tǒng)將繼續(xù)大量存在。這樣的系統(tǒng)使用專用開發(fā)工具(如:仿真在線調(diào)試器ICE 等)。通過串口或并口在PC機上聯(lián)機調(diào)試程序,具有源代碼調(diào)試功能。

0.2.2 局限性分析

沒有OS 的系統(tǒng)按照“指令順序執(zhí)行+中斷”的模式運行。在作者參與的早期程控交換機系統(tǒng)設計中,需要對不同端口量級(從10 到1000 等)的分機進行實時處理。通過建立交換系統(tǒng)核心硬件層(存儲體、第一層I/O 等)以及用戶口地址等程序;然后建立定時和非定時事件、過程以及任務中斷鏈和任務表,應用中斷對任務以及過程調(diào)度。設計人員要完成相當于部分操作系統(tǒng)功能的編寫,導致軟件結(jié)構(gòu)復雜、工作量大尤其是重復勞動。

0.3 具有OS 的嵌入式系統(tǒng)

圖1 的2 嵌入式系統(tǒng)就是具有嵌入式OS 的一種結(jié)構(gòu)模型。引入嵌入式OS 可以面對多種嵌入式處理器環(huán)境(如:MPU、DSP、SOC 等)提供類同的API 接口,使基于OS 上的程序具有較好的移植性。從協(xié)同劃分與設計技術(shù)出發(fā),通過嵌入式軟件的函數(shù)化、產(chǎn)品化能夠促進分工專業(yè)化,減少重復勞動。

1. Bootloader/BSP 特性

Bootloader 與BSP 配合,通過初始化硬件設備、建立內(nèi)存空間映射,“屏敝”硬件環(huán)境,為調(diào)用操作系統(tǒng)內(nèi)核和應用程序運行作好準備。

1.1 Bootloader 特性與結(jié)構(gòu)分析

Bootloader 是系統(tǒng)加電后首先運行的程序,主要依賴于硬件,建立一個通用版本幾乎不可能。即使同一CPU,硬件稍作變化,Bootloader 也必須修改。建立良好的BootLoader 結(jié)構(gòu),為系統(tǒng)二次開發(fā)以及減輕BSP的開發(fā)難度、可移植提供有益幫助;同時,也是保護硬件平臺設計知識產(chǎn)權(quán)的重要措施。

啟動過程分單階段(Single STage)和多階段(Multi-Stage)。從協(xié)同性劃分技術(shù)角度,設備初始化程序等通常放在stage 中,stage2 設置內(nèi)核參數(shù)和調(diào)用,應具有可讀性和可移植性。從固態(tài)存儲設備上啟動的Bootloader 大多都是兩階段的啟動過程。Bootloader 的存貯體和分區(qū):Flash/RAM/固態(tài)存貯器(圖2);Flash 存儲分區(qū)有連續(xù)和非連續(xù)兩種方式。當系統(tǒng)需要多媒體等功能,用DOC(Disk ON Chip)技術(shù)解決大容量嵌入式OS 的存貯。

圖2. 空間分配結(jié)構(gòu)示意圖

1.2 BSP 特性

作為板級支持軟件包BSP 處在一個軟硬件交界的中心位置,結(jié)構(gòu)與功能隨系統(tǒng)應用范圍表現(xiàn)較大的差異。不同的硬件環(huán)境和操作系統(tǒng),BSP 具有不同的內(nèi)容與結(jié)構(gòu)。從協(xié)同性角度,在系統(tǒng)設計初始階段,就必須考慮BSP 可移植性、生成組件性以及快速性。如,BSP 的編程大多數(shù)是在成型的模板上進行,保持與上層OS 正確的接口。

2. Bootloader/BSP 協(xié)同性與設計

在建構(gòu)嵌入式系統(tǒng)的過程中,應從系統(tǒng)結(jié)構(gòu)和協(xié)同性角度,關(guān)注底層軟件的設計。bootloaer 和BSP構(gòu)成底層軟件設計的核心內(nèi)容,與硬件、過程、功能劃分結(jié)合緊密。

2.1 Bootloader 與BSP 協(xié)同性分析流程

首先用對任務所涉及的功能和過程進行系統(tǒng)級劃分,確定將功能劃分給軟件還是硬件,對執(zhí)行確定相關(guān)的“延遲”特性。形成模型創(chuàng)建、配置、*估等協(xié)同流程,克服傳統(tǒng)孤立的設計模式。在面對系統(tǒng)低層軟件Bootloader 與BSP 設計時,在前面分析系統(tǒng)結(jié)構(gòu)以及特性基礎(chǔ)上,給出如下系統(tǒng)性流程圖。

圖 3. 系統(tǒng)底層軟件結(jié)構(gòu)模型

2.2 基于ARM-μCLinux 系統(tǒng)bootloader 設計

在系統(tǒng)結(jié)構(gòu)模型以及設計流程的基礎(chǔ)上,下面通過實例說明bootloader 的主要設計過程。
基于ARM-μCLinux 嵌入式系統(tǒng)的啟動引導過程:通過串口更新系統(tǒng)軟件平臺,完成啟動、初始化、操作系統(tǒng)內(nèi)核的固化和引導等。硬件平臺由內(nèi)嵌ARM10 的處理器、存儲器2MBFlash 和16MBSDRAM、串口以及以太網(wǎng)口組成。軟件平臺組成:系統(tǒng)引導程序、嵌入式操作系統(tǒng)內(nèi)核、文件系統(tǒng)。采用Flash 存儲bootloader、內(nèi)核等,直接訪問內(nèi)核所在地址區(qū)間的首地址。

2.3 μCLinux 內(nèi)核的加載

系統(tǒng)采用μCLinux 自帶的引導程序加載內(nèi)核,用自舉模式和內(nèi)核啟動模式相互切換;同時,切換到內(nèi)核啟動模式,自動安全地啟動系統(tǒng)。針對ARM7TDMI 的無MMU 特性,采用修改后的μCLinux 內(nèi)核引導程序加載操作系統(tǒng)和初始化環(huán)境,解決內(nèi)核加載的地址重映射問題和操作系統(tǒng)的內(nèi)存管理問題。

2.4 WinCE 系統(tǒng)下BootLoader

完成定制WinCE 的加載主要工作是編寫啟動加載程序bootloader 和板級支持包BSP。Bootloader 涉及到基本的硬件操作,如CPU 的結(jié)構(gòu)、指令等,同時涉及以太網(wǎng)下載協(xié)議TFTP 和映像文件格式。Bootloader支持命令輸入的方式,不用人工干預加載WinCE,其主控部分通過串口來接收用戶的命令。

2.5 系統(tǒng)板級支持包BSP

由于硬件環(huán)境、Bootloader 映射范圍以及二次開發(fā)等原因,系統(tǒng)啟動加載程序Bootloader 不能把經(jīng)過裁剪的OS 直接引導進入硬件環(huán)境,需要建立BSP 文件,如VxWorks 的BSP 和Linux 的BSP 相對于某一CPU 來說盡管實現(xiàn)的功能一樣,寫法和接口定義可以完全不同。BSP 的結(jié)構(gòu)與內(nèi)容差異性較大,依據(jù)不同的系統(tǒng)和應用環(huán)境,應設計建立合理、穩(wěn)定的BSP 內(nèi)核。

2.6 交叉融合

在分析過程、任務劃分以及系統(tǒng)協(xié)同性的基礎(chǔ)上,對系統(tǒng)底層軟件設計應考慮Bootloader、BSP、接口以及應用程序交叉與融合。應用BSP 組成靈活性,設計充分考慮軟硬件協(xié)同。接口驅(qū)動程序,如網(wǎng)絡驅(qū)動、串口驅(qū)動和系統(tǒng)下載調(diào)試、部分應用程序可添加到BSP 中,從系統(tǒng)結(jié)構(gòu)的角度是,簡化軟件層次和硬件尤其是存貯體系結(jié)構(gòu),當操作系統(tǒng)運行于硬件相對固定的系統(tǒng),BSP 也相對固定,不需要做任何改動,建立獨立的應用程序包。如果BSP 中的應用程序不斷升級,將對系統(tǒng)穩(wěn)定性造成影響。

圖 4 表征了嵌入式系統(tǒng)三個軟件環(huán)節(jié)的結(jié)構(gòu)變化,Bootloader、BSP、接口驅(qū)動程序以及部分應用程序?qū)a(chǎn)生融合與交叉。對于一次開發(fā)功能強大的嵌入式系統(tǒng),應充分利用嵌入式處理器供應商提供的Bootloader,使建立BSP 的過程變得相對容易。

圖 4. 軟件交叉與融合示意圖

3.結(jié)束語

通過對嵌入式系統(tǒng)結(jié)構(gòu)與協(xié)同性探討,分析了嵌入式系統(tǒng)的特點和協(xié)同性。應用結(jié)構(gòu)協(xié)同思路與流程,建立一個結(jié)構(gòu)良好與嵌入式核心硬件層密切相關(guān)的Bootloader 和BSP,對順利植入裁剪良好的OS、簡化軟件結(jié)構(gòu)以及保護硬件平臺知識產(chǎn)權(quán)都有重要意義。嵌入式處理器種類多,系統(tǒng)結(jié)構(gòu)不盡相同,Bootloader和BSP 的內(nèi)容隨之會產(chǎn)生差異,應充分考慮系統(tǒng)協(xié)同問題,避免傳統(tǒng)的多次設計、反復實驗的方式,為實際應用提供有益幫助。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

在工業(yè)物聯(lián)網(wǎng)設備部署中,Modbus通信故障是導致系統(tǒng)停機的首要原因之一。據(jù)統(tǒng)計,超過60%的現(xiàn)場問題源于通信配置錯誤或數(shù)據(jù)解析異常。本文從嵌入式系統(tǒng)開發(fā)視角,系統(tǒng)闡述Modbus通信調(diào)試的方法論,結(jié)合實際案例解析如何高...

關(guān)鍵字: 嵌入式系統(tǒng) Modbus通信

在嵌入式系統(tǒng)開發(fā)中,看門狗(Watchdog Timer, WDT)是保障系統(tǒng)可靠性的核心組件,其初始化時機的選擇直接影響系統(tǒng)抗干擾能力和穩(wěn)定性。本文從硬件架構(gòu)、軟件流程、安全規(guī)范三個維度,系統(tǒng)分析看門狗初始化的最佳實踐...

關(guān)鍵字: 單片機 看門狗 嵌入式系統(tǒng)

人工智能(AI)和機器學習(ML)是使系統(tǒng)能夠從數(shù)據(jù)中學習、進行推理并隨著時間的推移提高性能的關(guān)鍵技術(shù)。這些技術(shù)通常用于大型數(shù)據(jù)中心和功能強大的GPU,但在微控制器(MCU)等資源受限的器件上部署這些技術(shù)的需求也在不斷增...

關(guān)鍵字: 嵌入式系統(tǒng) 人工智能 機器學習

Zephyr開源項目由Linux基金會維護,是一個針對資源受限的嵌入式設備優(yōu)化的小型、可縮放、多體系結(jié)構(gòu)實時操作系統(tǒng)(RTOS)。近年來,Zephyr RTOS在嵌入式開發(fā)中的采用度逐步增加,支持的開發(fā)板和傳感器不斷增加...

關(guān)鍵字: 嵌入式系統(tǒng) 軟件開發(fā) 實時操作系統(tǒng) Zephyr項目

在資源受限的嵌入式系統(tǒng)中,代碼執(zhí)行效率和內(nèi)存占用始終是開發(fā)者需要權(quán)衡的核心問題。內(nèi)聯(lián)函數(shù)(inline functions)和宏(macros)作為兩種常見的代碼展開技術(shù),在性能、可維護性和安全性方面表現(xiàn)出顯著差異。本文...

關(guān)鍵字: 內(nèi)聯(lián)函數(shù) 嵌入式系統(tǒng)

在嵌入式系統(tǒng)和服務器開發(fā)中,日志系統(tǒng)是故障排查和運行監(jiān)控的核心組件。本文基于Linux環(huán)境實現(xiàn)一個輕量級C語言日志庫,支持DEBUG/INFO/WARN/ERROR四級日志分級,并實現(xiàn)按大小滾動的文件輪轉(zhuǎn)機制。該設計在某...

關(guān)鍵字: C語言 嵌入式系統(tǒng)

在嵌入式系統(tǒng)和底層驅(qū)動開發(fā)中,C語言因其高效性和可控性成為主流選擇,但缺乏原生單元測試支持成為開發(fā)痛點。本文提出一種基于宏定義和測試用例管理的輕量級單元測試框架方案,通過自定義斷言宏和測試注冊機制,實現(xiàn)無需外部依賴的嵌入...

關(guān)鍵字: C語言 嵌入式系統(tǒng) 驅(qū)動開發(fā)

在嵌入式系統(tǒng)與驅(qū)動開發(fā)中,內(nèi)存映射I/O(Memory-Mapped I/O, MMIO)是一種將硬件寄存器映射到處理器地址空間的技術(shù),允許開發(fā)者通過指針直接讀寫寄存器,實現(xiàn)高效、低延遲的硬件控制。本文通過C語言實戰(zhàn)案例...

關(guān)鍵字: 內(nèi)存映射 I/O操作 嵌入式系統(tǒng)

在嵌入式系統(tǒng)開發(fā)和多線程編程中,程序崩潰、內(nèi)存越界等復雜問題常令開發(fā)者困擾。GDB作為強大的調(diào)試工具,其條件斷點和內(nèi)存查看功能可精準定位隱蔽缺陷。本文通過實際案例演示這些高級功能的應用,幫助開發(fā)者提升調(diào)試效率。

關(guān)鍵字: GDB 嵌入式系統(tǒng)
關(guān)閉