亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

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

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

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

簡化SBC的嵌入式Linux軟件開發(fā)

星星科技指導(dǎo)員 ? 來源:嵌入式計算設(shè)計 ? 作者:Nathan Z. Gustavson, ? 2022-06-22 11:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

如今,大多數(shù)從大學(xué)畢業(yè)并獲得電氣工程或計算機科學(xué)學(xué)位的程序員都非常精通 Linux 桌面平臺上的編程。當(dāng)這些程序員需要跨越式地對嵌入式 Linux 系統(tǒng)進行編程時,他們常常會感到驚訝和困惑,因為他們在桌面上編寫的程序無法運行他們的 Linux 嵌入式系統(tǒng)。

如今,大多數(shù)從大學(xué)畢業(yè)并獲得電氣工程或計算機科學(xué)學(xué)位的程序員都非常精通 Linux 桌面平臺上的編程。當(dāng)這些程序員需要跨越式地對嵌入式 Linux 系統(tǒng)進行編程時,他們常常會感到驚訝和困惑,因為他們在桌面上編寫的程序無法運行他們的 Linux 嵌入式系統(tǒng)。

為了緩解這個問題,一些程序員選擇在嵌入式應(yīng)用程序中使用桌面系統(tǒng)版本。這通常不太適合,因為臺式機系統(tǒng)通常具有風(fēng)扇和硬盤驅(qū)動器,它們是故障點。更大的障礙是快速變化;擁有最快、最新技術(shù)的需求在短短六個月內(nèi)就淘汰了桌面系統(tǒng)。圍繞一個沒有壽命的平臺設(shè)計一個壽命長的嵌入式產(chǎn)品是災(zāi)難的根源。

即使桌面平臺可以保證從現(xiàn)在起大約五年后,Linux 內(nèi)核和相關(guān)的發(fā)行版也是移動的目標(biāo)。內(nèi)核和標(biāo)準(zhǔn)庫在不斷發(fā)展,發(fā)行版也在努力跟上步伐。內(nèi)核補丁和庫更新可能會使用戶的程序無法運行。當(dāng)工程師由于安全漏洞或其他問題而需要更新開發(fā)機器時,這種情況會更加嚴(yán)重。需要一種從標(biāo)準(zhǔn)桌面環(huán)境中抽象出嵌入式開發(fā)環(huán)境的方法。

關(guān)鍵不僅是要找到一個長壽命的嵌入式Linux硬件平臺,還要找到一個長壽命的嵌入式Linux軟件平臺。熟練的嵌入式 Linux 程序員通??梢酝ㄟ^收集正確的庫和工具版本,并適當(dāng)?shù)匦薷?Makefile 來創(chuàng)建嵌入式開發(fā)平臺。即使成功,它也是一個次優(yōu)的開發(fā)環(huán)境。

理想情況下,編譯器不應(yīng)該依賴于其主機的庫和內(nèi)核,而是依賴于更靜態(tài)目標(biāo)的工具鏈。軟件平臺應(yīng)與其他平臺、其他操作系統(tǒng)(OS)和其他語言兼容。軟件開發(fā)工具包 (SDK) 應(yīng)該基于具有廣泛社區(qū)支持的工具鏈,以便即使驅(qū)動 SDK 的組織之一停止支持它,它也可以在其他組織的肩膀上生存。

進入日食

Eclipse 是一個開源的、可再發(fā)行的、跨平臺的代碼開發(fā)框架。它本身就支持 Java 和 C/C++ 及其 CDT 插件。它提供了許多由商業(yè)集成開發(fā)環(huán)境 (IDE) 反復(fù)改造的相同功能(語法突出顯示、語言感知搜索、代碼完成等),但不依賴于任何特定的工具集來完成它(見圖1)。

圖 1:商業(yè)集成開發(fā)環(huán)境 (IDE) 反復(fù)改造的許多相同功能(語法突出顯示、語言感知搜索、代碼完成等)但不依賴于任何特定的一組完成它的工具

poYBAGKykSmAY5kwAAVdvF7EaMM414.png

該解決方案的靈活性促使 EMAC 和其他嵌入式軟件公司在 Eclipse 環(huán)境中構(gòu)建開發(fā)平臺。這種商業(yè)采用為嵌入式代碼開發(fā)人員創(chuàng)造了事實上的標(biāo)準(zhǔn)化。OEM 可以編寫與 GNU 工具鏈一起使用的 Eclipse 插件和項目,同時提供與運行 Windows 和 Linux 的眾多商業(yè)平臺的兼容性。

嵌入式 Java

EMAC 的原始 Eclipse 環(huán)境是為 SoM-400M 模塊開發(fā)的,使用 Dallas/Maxim 的 DS400 TINI 處理器。該處理器的固件包含專有的嵌入式 JRE。通過為普通 JRE 環(huán)境編譯類,用 TINI 特定 jar 替換核心 jar,然后將生成的類轉(zhuǎn)換為 TINI 可執(zhí)行文件來完成為系統(tǒng)構(gòu)建 Java 代碼。

為此,開發(fā)人員利用了 Eclipse 的原生 Ant 支持,它可以用來創(chuàng)建一種 XML 格式的高級 Java Makefile。Ant 然后使用 Eclipse 的 JDTcompileradaptor 類構(gòu)建目標(biāo),這使得內(nèi)部編譯器可用于 Ant 的任務(wù)。Sourceforge TiniAnt 擴展然后執(zhí)行從 Java 類到 TINI 可執(zhí)行文件的最終轉(zhuǎn)換。執(zhí)行此操作所需的所有復(fù)雜聲明都隱藏在頂級 build.properties 文件中,從而極大地降低了將 SoM-400M 編譯為簡單的標(biāo)準(zhǔn) Ant 任務(wù)的復(fù)雜性。

交叉編譯的 C

Eclipse 工具項目提供了一個開放的、可再發(fā)行的 C 開發(fā)插件,稱為 CDT。除其他外,它還提供:

語法高亮

代碼完成

即時構(gòu)建

調(diào)試器集成(使用 GDB 的 MI 接口

它不提供實際的編譯器、鏈接器和調(diào)試器二進制文件。這些特定于正在構(gòu)建的目標(biāo),并且必須從外部源提供。然后可以通過編寫 Eclipse 插件將它們集成到 Eclipse 中,或者更簡單地說,通過使用“標(biāo)準(zhǔn)”make 項目并在 Makefile 中指定編譯器。

清單 1 中的 Makefile 將在 EMAC Eclipse 環(huán)境中編譯一個簡單的 Hello World 示例項目。

SDKBASE=。。/。。/

CROSS=$(SDKBASE)gcc-4.0.0-i486-D/bin/i486-linux-

CC=$(CROSS)gcc

LIBFLAGS =-lc

#VERBOSE=-v

CFLAGS= -g

OFLAGS=-Wl

TARGET=hello

CFILES=hello.c

all: $(TARGET)

$(TARGET): objects

$(CC) $(VERBOSE) *.o $(OFLAGS) $(SLIBS)-o $(TARGET) $(LIBFLAGS)

objects: $(CFILES)

$(CC) $(VERBOSE) $(CFLAGS) -c $(CFILES)

clean:

$(RM) *.o *.gdb $(TARGET)

TARGET_IP=192.168.0.1

LOGIN=someuser

PASSWORD=somepassword

upload

wput $(TARGET) ftp://$(LOGIN):$(PASSWORD)@$(TARGET_IP)/。。/。。/tmp/$(TARGET)

與嵌入式 Java 環(huán)境一樣,所有項目共有的復(fù)雜編譯器/鏈接器標(biāo)志隱藏在更高級別的文件中,然后包含在 SDK 中的所有 Makefile 中。

EMAC 通過針對目標(biāo)開發(fā)操作系統(tǒng)的庫構(gòu)建免費可用的 GNU 交叉編譯器,為其所有板提供交叉編譯器。在 Linux 上,這些庫是原生的;在 Windows 上使用 Cygwin 庫。然后,我們“隱藏”實際的 Eclipse 可執(zhí)行文件,并用一個批處理文件替換它,該批處理文件在 Eclipse 啟動時臨時添加所需的路徑以支持 GNU 工具鏈。

調(diào)試

使用 GDB 和 GDBServer 進行調(diào)試以促進遠程調(diào)試環(huán)境。為此,將編譯后的可執(zhí)行文件上傳到 SBC 并啟動 GDBServer 會話,偵聽特定端口或串行終端。Eclipse 調(diào)試透視圖允許用戶通過指定要使用的連接參數(shù)以及為目標(biāo)體系結(jié)構(gòu)構(gòu)建的 GDB 版本來調(diào)試應(yīng)用程序。

Debugging 透視圖顯示要調(diào)試的程序的源代碼和生成的匯編代碼。易于管理和監(jiān)視斷點和變量,以及逐行單步執(zhí)行程序。源代碼中的當(dāng)前位置會自動突出顯示。Eclipse 提供了一個圖形化的調(diào)試環(huán)境,極大地簡化了遠程目標(biāo)調(diào)試的過程。

目標(biāo)溝通

在為嵌入式環(huán)境進行開發(fā)時,需要通過串行終端程序或使用 Telnet、SSH 或其他類似連接通過 TCP 與目標(biāo)板建立連接。當(dāng)這是通過命令行界面或圖形前端完成時,程序員被迫不斷地在窗口之間切換以同時監(jiān)視連接和 IDE。

EMAC 通過集成 Eclipse 插件消除了這個問題,這些插件允許 SSH、Telnet 和終端連接都在 Eclipse 中。這允許程序員監(jiān)控嵌入式目標(biāo)板,就像它是本地文件系統(tǒng)一樣,并直接發(fā)出命令,而無需離開 Eclipse 環(huán)境。

CVS

Eclipse 原生提供了強大的 CVS。通過設(shè)置 CVS 登錄并向客戶提供密碼,開發(fā)人員可以確保他們始終可以訪問最新版本的代碼和產(chǎn)品的錯誤修復(fù)。

將 SDK 的軟件補丁和全新組件上傳到 CVS 服務(wù)器可為客戶提供最新的軟件支持,客戶可以以圖形方式查看文件中的差異,并使用已上傳的部分、全部或不修補自己的 SDK 。

文檔

Eclipse 提供了自己的本機瀏覽器,這有利于在工作區(qū)中創(chuàng)建 HTML 鏈接文檔。通過這種方式,客戶可以瀏覽 HTML 文檔(類似于 Doxygen 和 Javadoc 生成的文檔)。上下文相關(guān)的幫助也集成在 Eclipse 中(參見圖 2),使新用戶的工作效率更高。

圖 2:上下文相關(guān)的幫助也集成在 Eclipse 中

poYBAGKykTKAYH0oAAljVhF9L_0603.png

該文檔也可以直接鏈接回軟件開發(fā)人員的網(wǎng)站,從而允許動態(tài)添加用戶文檔。用戶可以使用選項卡從代碼直接切換到文檔,而不是一次瀏覽多個窗口。

集成工具,更好的開發(fā)

Eclipse 提供了一個環(huán)境,讓 GNU 工具和商業(yè)工具可以一起發(fā)揮作用。通過一點點集成,OEM 可以為其開發(fā)板創(chuàng)建一個強大的跨平臺開發(fā)平臺,該平臺將在許多商業(yè)軟件供應(yīng)商采用的同一平臺上運行。

在 Eclipse 框架內(nèi),EMAC 使用交叉編譯來緩解將嵌入式開發(fā)環(huán)境從標(biāo)準(zhǔn)桌面環(huán)境中抽象出來的問題。調(diào)試是使用帶有 Eclipse 窗口的 GDB 來完成的,用于調(diào)試器的輸入和輸出。與目標(biāo)的通信也通過 Telnet、FTP、終端和 SSH 插件集成到 Eclipse 中。CVS 版本控制和 HTML 文檔也是在 Eclipse 環(huán)境中完成的。

將上述所有開發(fā)功能整合到一個標(biāo)準(zhǔn) IDE 中,形成了一個強大、高效的開發(fā)平臺,可以與基于 Java 的小型 8 位控制器和用 C 編程的 32 位 Linux 服務(wù)器一起使用。這就是蝕。

作者:Nathan Z. Gustavson,Eric Rossi

審核編輯:郭婷

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

    關(guān)注

    5177

    文章

    20014

    瀏覽量

    325897
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11582

    瀏覽量

    217240
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    13

    文章

    10024

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    新一代嵌入式開發(fā)平臺 AMD嵌入式軟件和工具2025.1版現(xiàn)已推出

    搶先體驗 SHEL 流程簡化所有 AMD 嵌入式開發(fā)平臺上的軟件項目生成過程 Zephyr RTOS 兼容性已擴展至第二代 AMD Versal AI Edge 系列、Kria SOM
    的頭像 發(fā)表于 08-20 09:15 ?3426次閱讀

    2025“芯原杯”全國嵌入式軟件開發(fā)大賽圓滿落幕

    此前,2025年7月20日至26日,第四屆“芯原杯”全國嵌入式軟件開發(fā)大賽決賽在??诔晒εe辦。
    的頭像 發(fā)表于 08-06 09:51 ?927次閱讀

    嵌入式軟件開發(fā)常用的軟件有哪些?

    對于初學(xué)嵌入式的朋友們,會想要了解嵌入式軟件開發(fā)常用的軟件有些,有什么用。那么看以下常用的軟件介紹。 1.Visual Studio Cod
    發(fā)表于 07-03 17:06

    Linux嵌入式和單片機嵌入式的區(qū)別?

    區(qū)別 單片機嵌入式系統(tǒng)和Linux嵌入式系統(tǒng)是兩種不同的嵌入式系統(tǒng)開發(fā)方式,它們在應(yīng)用領(lǐng)域、開發(fā)
    發(fā)表于 06-20 09:46

    嵌入式開發(fā)入門指南:從零開始學(xué)習(xí)嵌入式

    特定功能的計算機系統(tǒng),廣泛應(yīng)用于智能家居、工業(yè)控制、醫(yī)療設(shè)備、車載系統(tǒng)等領(lǐng)域。 2. 學(xué)習(xí)嵌入式開發(fā)的前置知識熟悉C語言編程掌握基本的數(shù)據(jù)結(jié)構(gòu)與算法了解數(shù)字電路與微控制器原理熟悉Linux操作系統(tǒng)
    發(fā)表于 05-15 09:29

    如何成為一名嵌入式軟件工程師?

    、Java等)和軟件開發(fā)工具,還需要對硬件的工作原理有深入的理解。 在團隊中,嵌入式軟件工程師往往扮演著核心角色,他們的工作直接關(guān)系到產(chǎn)品的性能、穩(wěn)定性和用戶體驗。 02掌握核心技能與知識
    發(fā)表于 04-15 14:37

    硬核升級!華清遠見STM32MP157驅(qū)動開發(fā)課程助力嵌入式Linux底層開發(fā)入門進階

    嵌入式Linux系統(tǒng)開發(fā)中,驅(qū)動程序開發(fā)是一項關(guān)鍵技術(shù),它作為硬件與軟件之間的橋梁,實現(xiàn)了操作系統(tǒng)對硬件設(shè)備的控制。相較于
    的頭像 發(fā)表于 04-03 16:40 ?645次閱讀
    硬核升級!華清遠見STM32MP157驅(qū)動<b class='flag-5'>開發(fā)</b>課程助力<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>底層<b class='flag-5'>開發(fā)</b>入門進階

    嵌入式系統(tǒng)開發(fā)圣經(jīng)【干貨】

    內(nèi)容包括:嵌入式系統(tǒng)的介紹、嵌入式SoC硬件系統(tǒng)概論、嵌入式系統(tǒng)軟件開發(fā)。適用于產(chǎn)品主管、系統(tǒng)設(shè)計分析人員及欲進入該領(lǐng)域的工程師。本資料詳細的理論講解,廣泛深入地分析相關(guān)的
    發(fā)表于 03-12 13:58

    IAR發(fā)布云端平臺,助力現(xiàn)代嵌入式軟件開發(fā)團隊

    該平臺為嵌入式軟件開發(fā)人員提供前所未有的自由度與靈活性,助力開發(fā)團隊在工具選擇和日常工作流中實現(xiàn)更高效的協(xié)作與創(chuàng)新。
    的頭像 發(fā)表于 03-12 11:56 ?529次閱讀

    嵌入式軟件工程師就業(yè)好不好?

    、智能醫(yī)療設(shè)備等,都離不開嵌入式軟件的支持。預(yù)計2025年,物聯(lián)網(wǎng)設(shè)備的數(shù)量將呈爆發(fā)式增長,這將為嵌入式軟件開發(fā)工程師帶來大量的就業(yè)機會。 薪資待遇具有競爭力 由于
    發(fā)表于 02-20 10:19

    打破技術(shù)壁壘!AWFlow讓嵌入式軟件開發(fā)觸手可及

    嵌入式軟件開發(fā)中,創(chuàng)意和技術(shù)創(chuàng)新常常難以融合。AWFlow通過其圖形化組態(tài)方法,利用拖拽節(jié)點構(gòu)建業(yè)務(wù)流程圖,幫助用戶實現(xiàn)奇思妙想。在嵌入式軟件開發(fā)中,創(chuàng)意和技術(shù)創(chuàng)新常常難以融合。一方
    的頭像 發(fā)表于 02-10 16:44 ?651次閱讀
    打破技術(shù)壁壘!AWFlow讓<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發(fā)</b>觸手可及

    嵌入式機器學(xué)習(xí)的應(yīng)用特性與軟件開發(fā)環(huán)境

    設(shè)備和智能傳感器)上,這些設(shè)備通常具有有限的計算能力、存儲空間和功耗。本文將您介紹嵌入式機器學(xué)習(xí)的應(yīng)用特性,以及常見的機器學(xué)習(xí)開發(fā)軟件開發(fā)環(huán)境。 嵌入式機器學(xué)習(xí)的應(yīng)用特性與優(yōu)勢 由于
    的頭像 發(fā)表于 01-25 17:05 ?1034次閱讀
    <b class='flag-5'>嵌入式</b>機器學(xué)習(xí)的應(yīng)用特性與<b class='flag-5'>軟件開發(fā)</b>環(huán)境

    嵌入式軟件開發(fā)符合ISO 26262 功能安全標(biāo)準(zhǔn)

    )的符合性呢?現(xiàn)在,您可以通過 “如何遵守 ISO 26262 標(biāo)準(zhǔn) ”白皮書在 ISO 26262 合規(guī)性方面搶占先機。了解如何以最佳方式加快嵌入式軟件開發(fā)符合
    發(fā)表于 01-15 12:04 ?3次下載

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

    嵌入式系統(tǒng)開發(fā)與硬件的關(guān)系 嵌入式系統(tǒng)是專為特定應(yīng)用設(shè)計的計算機系統(tǒng),它們通常嵌入在所控制的設(shè)備中。這些系統(tǒng)的關(guān)鍵特點是它們與硬件的緊密集成,這意味著
    的頭像 發(fā)表于 12-09 09:38 ?1329次閱讀

    一文了解嵌入式軟件開發(fā)的對象

    以前應(yīng)用場景很單一,嵌入式開發(fā)可能談不上面向?qū)ο?b class='flag-5'>開發(fā)。但現(xiàn)在,做嵌入式開發(fā),沒有面向?qū)ο?b class='flag-5'>開發(fā),你就有點落伍了。 本文結(jié)合個人經(jīng)驗和周立功《抽象接口技術(shù)和組件
    的頭像 發(fā)表于 11-15 10:31 ?1175次閱讀
    一文了解<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發(fā)</b>的對象