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

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

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

常見(jiàn)的嵌入式程序加載方式介紹

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2021-01-20 16:48 ? 次閱讀

1、大型的嵌入式系統(tǒng)ARM + Linux架構(gòu)為例)

類(lèi)似于電腦程序,手機(jī)APP的加載方式,稍微大型的嵌入式系統(tǒng)(Linux),應(yīng)用程序經(jīng)過(guò)編譯、連接之后,形成一個(gè)類(lèi)似于exe、apk的可執(zhí)行文件,將這個(gè)執(zhí)行文件放置到文件系統(tǒng)中的固定路徑下。以Linux為例,常用文件系統(tǒng)ext3、ext4等等,文件系統(tǒng)根目錄下有許多文件夾(可理解為C盤(pán),D盤(pán)),如bin、root、usr、opt等。

進(jìn)入存放被執(zhí)行文件的路徑,使用./XXX命令,執(zhí)行該XXX程序。如果需要開(kāi)機(jī)就執(zhí)行、該程序,則需要將該可執(zhí)行文件啟動(dòng),加載到開(kāi)機(jī)啟動(dòng)項(xiàng)內(nèi)。

TIPS:如使用execve命令執(zhí)行該程序,通過(guò)ext4文件的fsopen函數(shù)找到XXX這個(gè)文件,然后解釋其ELF格式,在創(chuàng)建好頁(yè)表后,將code段和data段搬到內(nèi)存,初始化bss段,最后跳到entry所在的地方。

2、小型的嵌入式程序(51為例)

應(yīng)用程序在編譯、鏈接之后,會(huì)通過(guò)二進(jìn)制工具分析可執(zhí)行文件的格式,抽出code和data段數(shù)據(jù),生成.HEX格式或者.BIN格式,下載到SOC內(nèi)置的flash中。在上電之后就直接執(zhí)行了。

3、還有一種這樣的嵌入式系統(tǒng)架構(gòu),SOC的計(jì)算能力比較弱,但內(nèi)存資源在百K級(jí)別,其能支持簡(jiǎn)單的操作系統(tǒng),例如UCOS,而其一般沒(méi)有外掛SDRAM,但其會(huì)將代碼存放在外置的存儲(chǔ)設(shè)備中,如nand和card,MP3、U盤(pán)就是這種嵌入式系統(tǒng)架構(gòu)的最典型應(yīng)用。MP3一般支持音樂(lè)、圖片、電子書(shū)等等應(yīng)用,代碼量比較大,不適宜放到內(nèi)置flash中,所以放到外置存儲(chǔ)中。其成本敏感,內(nèi)存要控制到最小,所以很多時(shí)候要對(duì)固件進(jìn)行優(yōu)化。那么它的應(yīng)用程序的加載過(guò)程如何呢?

1)應(yīng)用程序編譯、鏈接之后生成可執(zhí)行文件,可執(zhí)行文件格式一般比較復(fù)雜。通過(guò)二進(jìn)制工具將code、data和entry、bss等信息重新組成一個(gè)簡(jiǎn)單的文件,這樣操作系統(tǒng)在加載這個(gè)文件的時(shí)候由于格式簡(jiǎn)單,可以用較少的內(nèi)存和較少的計(jì)算就可以完成。這個(gè)簡(jiǎn)單的文件會(huì)和OS一塊放到系統(tǒng)區(qū),即不是放到一般文件系統(tǒng)所管理的用戶數(shù)據(jù)區(qū)。當(dāng)然,在系統(tǒng)區(qū)也有文件系統(tǒng)管理,但這個(gè)文件系統(tǒng)往往是自定義的最簡(jiǎn)單的文件系統(tǒng)(自己設(shè)計(jì)一個(gè)簡(jiǎn)單文件系統(tǒng)),而不是ext4,fat這些文件系統(tǒng)。

2)當(dāng)需要運(yùn)行某個(gè)應(yīng)用時(shí),通過(guò)系統(tǒng)區(qū)的簡(jiǎn)單文件系統(tǒng)找到這個(gè)文件,并進(jìn)行簡(jiǎn)單的解釋?zhuān)瑢ode和data搬到內(nèi)存中,初始化bss后即跳到entry執(zhí)行。

來(lái)源:電子創(chuàng)新網(wǎng)

審核編輯黃昊宇

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

    關(guān)注

    5088

    文章

    19158

    瀏覽量

    306484
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    LDO在嵌入式系統(tǒng)中的應(yīng)用 常見(jiàn)LDO故障及解決方法

    的應(yīng)用及其常見(jiàn)故障和解決方法的概述。 應(yīng)用場(chǎng)景 電源轉(zhuǎn)換 :LDO可以將電池電壓或其他電源電壓轉(zhuǎn)換為嵌入式系統(tǒng)所需的穩(wěn)定電壓。 噪聲抑制 :LDO能有效降低電源線上的噪聲,為敏感的模擬電路提供干凈的電源。 功耗管理 :在低功耗應(yīng)用中,LDO可以提供穩(wěn)定的電源,同時(shí)減少功耗
    的頭像 發(fā)表于 12-13 09:08 ?733次閱讀

    新手怎么學(xué)嵌入式?

    的基礎(chǔ)上增加了面向?qū)ο缶幊痰奶匦?,有助于編?xiě)更復(fù)雜的嵌入式程序。 3. 學(xué)習(xí)硬件知識(shí) 嵌入式技術(shù)與硬件緊密相關(guān),因此你需要了解一些基本的硬件知識(shí)。比如微控制器(MCU)、微處理器(MPU)的工作原理,了解
    發(fā)表于 12-12 10:51

    嵌入式系統(tǒng)開(kāi)發(fā)與硬件的關(guān)系 嵌入式系統(tǒng)開(kāi)發(fā)常見(jiàn)問(wèn)題解決

    嵌入式系統(tǒng)開(kāi)發(fā)與硬件的關(guān)系 嵌入式系統(tǒng)是專(zhuān)為特定應(yīng)用設(shè)計(jì)的計(jì)算機(jī)系統(tǒng),它們通常嵌入在所控制的設(shè)備中。這些系統(tǒng)的關(guān)鍵特點(diǎn)是它們與硬件的緊密集成,這意味著軟件必須為特定的硬件平臺(tái)量身定制。以下是
    的頭像 發(fā)表于 12-09 09:38 ?353次閱讀

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被稱為嵌入式系統(tǒng)的核心組件,是一種用于控制和數(shù)據(jù)處理的計(jì)算機(jī)硬件,其設(shè)計(jì)旨在嵌入特定設(shè)備中執(zhí)行專(zhuān)門(mén)任務(wù)。嵌入式主板如同是設(shè)備的“大腦”,主要功能是根據(jù)需要管理和控制設(shè)備
    的頭像 發(fā)表于 09-30 10:05 ?686次閱讀

    嵌入式開(kāi)發(fā)常見(jiàn)問(wèn)題排查

    歸結(jié)為相對(duì)簡(jiǎn)單的小問(wèn)題。接下來(lái),我們將討論一些嵌入式開(kāi)發(fā)中常見(jiàn)的問(wèn)題及其解決方法。一、問(wèn)題復(fù)現(xiàn)要有效解決問(wèn)題,首先需要能夠穩(wěn)定地復(fù)現(xiàn)它。一般來(lái)說(shuō),容易復(fù)現(xiàn)的問(wèn)題也相對(duì)
    的頭像 發(fā)表于 09-22 08:04 ?381次閱讀
    <b class='flag-5'>嵌入式</b>開(kāi)發(fā)<b class='flag-5'>常見(jiàn)</b>問(wèn)題排查

    嵌入式linux開(kāi)發(fā)的基本步驟有哪些?

    嵌入式Linux開(kāi)發(fā)是一個(gè)復(fù)雜的過(guò)程,涉及到硬件選擇、操作系統(tǒng)移植、驅(qū)動(dòng)開(kāi)發(fā)、應(yīng)用程序開(kāi)發(fā)等多個(gè)方面。以下是嵌入式Linux開(kāi)發(fā)的基本步驟,以及每個(gè)步驟的說(shuō)明。 硬件選擇 在開(kāi)始嵌入式
    的頭像 發(fā)表于 09-02 09:11 ?561次閱讀

    嵌入式五種常見(jiàn)模擬電路

    嵌入式系統(tǒng)設(shè)計(jì)中,模擬電路是不可或缺的一部分。它們負(fù)責(zé)處理真實(shí)世界中的信號(hào),如聲音、溫度、壓力等,并將這些信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),或者對(duì)這些信號(hào)進(jìn)行放大、濾波等處理。以下是五種常見(jiàn)的模擬電路及其
    發(fā)表于 08-28 15:31

    嵌入式系統(tǒng)中的實(shí)時(shí)操作系統(tǒng)

    嵌入式RTOS是嵌入式應(yīng)用程序運(yùn)行、相互交互和與外界通信的底層軟件機(jī)制。在本節(jié)中,您將了解嵌入式軟件開(kāi)發(fā)人員使用哪些流行RTOS以及它們運(yùn)行的嵌入式
    的頭像 發(fā)表于 08-20 11:28 ?516次閱讀

    嵌入式QT常見(jiàn)開(kāi)發(fā)方式有哪些?

    嵌入式QT常見(jiàn)開(kāi)發(fā)方式有哪些? 嵌入式工程師在學(xué)習(xí)和使用Qt進(jìn)行開(kāi)發(fā)時(shí),常見(jiàn)的幾種開(kāi)發(fā)方式包括
    發(fā)表于 08-12 10:05

    嵌入式系統(tǒng)怎么學(xué)?

    、C++或者Python。這些語(yǔ)言在嵌入式系統(tǒng)開(kāi)發(fā)中都被廣泛應(yīng)用。 3、微處理器/微控制器架構(gòu):學(xué)習(xí)常見(jiàn)的微處理器和微控制器架構(gòu),如ARM、AVR、PIC等,了解其特性和應(yīng)用場(chǎng)景。 4、嵌入式系統(tǒng)開(kāi)發(fā)
    發(fā)表于 07-02 10:10

    從事嵌入式方向,一定要軟硬件通吃?

    嵌入式系統(tǒng)開(kāi)發(fā)領(lǐng)域,軟件和硬件的界限常常模糊不清。一個(gè)常見(jiàn)的問(wèn)題是,嵌入式軟件工程師是否需要了解硬件。本文將探討這一問(wèn)題的重要性,并分析嵌入式軟件工程師掌握硬件知識(shí)對(duì)項(xiàng)目開(kāi)發(fā)的影響。
    的頭像 發(fā)表于 06-05 08:10 ?1252次閱讀
    從事<b class='flag-5'>嵌入式</b>方向,一定要軟硬件通吃?

    USB嵌入式主機(jī)堆棧

    在USB標(biāo)準(zhǔn)下,USB設(shè)備之間不能直接通信。它們只能與控制一個(gè)或多個(gè)設(shè)備通信的總線的 USB 主機(jī)通信。常見(jiàn)的 USB 主機(jī)是 PC。本應(yīng)用筆記討論了 USB 嵌入式主機(jī),它可以使嵌入式應(yīng)用
    發(fā)表于 05-03 09:13 ?204次閱讀
    USB<b class='flag-5'>嵌入式</b>主機(jī)堆棧

    再談嵌入式實(shí)時(shí)操作系統(tǒng)

    由于嵌入式處理器早期功能單一且運(yùn)算能力不高,嵌入式應(yīng)用已不能滿足各個(gè)領(lǐng)域不斷增長(zhǎng)的需求。嵌入式操作系統(tǒng)應(yīng)運(yùn)而生,嵌入式操作系統(tǒng)可以支持新時(shí)代復(fù)雜、多任務(wù)環(huán)境和功能的
    的頭像 發(fā)表于 04-09 17:27 ?827次閱讀
    再談<b class='flag-5'>嵌入式</b>實(shí)時(shí)操作系統(tǒng)

    維諦嵌入式開(kāi)關(guān)電源常見(jiàn)告警處理方法

    維諦嵌入式開(kāi)關(guān)電源常見(jiàn)告警處理方法
    的頭像 發(fā)表于 04-09 17:15 ?1473次閱讀
    維諦<b class='flag-5'>嵌入式</b>開(kāi)關(guān)電源<b class='flag-5'>常見(jiàn)</b>告警處理方法

    嵌入式Linux開(kāi)發(fā)的三種方式

    嵌入式Linux開(kāi)發(fā)主要有三種方式:裸機(jī)開(kāi)發(fā)、SDK開(kāi)發(fā)和驅(qū)動(dòng)開(kāi)發(fā)。
    的頭像 發(fā)表于 01-22 14:22 ?1017次閱讀