国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

進入日食

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

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

poYBAGK6eWuACZOaAARwCSx-aKI995.png

該解決方案的靈活性促使 EMAC 和其他嵌入式軟件公司在 Eclipse 環(huán)境中構(gòu)建開發(fā)平臺。這種商業(yè)采用為嵌入式代碼開發(fā)人員創(chuàng)造了事實上的標準化。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)建目標,這使得內(nèi)部編譯器可用于 Ant 的任務。Sourceforge TiniAnt 擴展然后執(zhí)行從 Java 類到 TINI 可執(zhí)行文件的最終轉(zhuǎn)換。執(zhí)行此操作所需的所有復雜聲明都隱藏在頂級 build.properties 文件中,從而極大地降低了將 SoM-400M 編譯為簡單的標準 Ant 任務的復雜性。

交叉編譯的 C

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

語法高亮

代碼完成

即時構(gòu)建

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

它不提供實際的編譯器、鏈接器和調(diào)試器二進制文件。這些特定于正在構(gòu)建的目標,并且必須從外部源提供。然后可以通過編寫 Eclipse 插件將它們集成到 Eclipse 中,或者更簡單地說,通過使用“標準”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)境一樣,所有項目共有的復雜編譯器/鏈接器標志隱藏在更高級別的文件中,然后包含在 SDK 中的所有 Makefile 中。

EMAC 通過針對目標開發(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ù)以及為目標體系結(jié)構(gòu)構(gòu)建的 GDB 版本來調(diào)試應用程序。

“通過一點點集成,OEM 可以為其開發(fā)板創(chuàng)建一個強大的跨平臺開發(fā)平臺,該平臺將在許多商業(yè)軟件供應商采用的同一平臺上運行。”

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

目標溝通

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

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

CVS

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

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

文檔

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

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

pYYBAGK6eXWARKK0AAe3UaB-E_8246.png

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

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

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

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

將上述所有開發(fā)功能整合到一個標準 IDE 中,構(gòu)成了一個強大、高效的開發(fā)平臺,可以與基于 Java 的小型 8 位控制器和用 C 編程的 32 位 Linux 服務器一起使用。

作者:Nathan Z. Gustavson,Eric Rossi

審核編輯:郭婷

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

    關(guān)注

    88

    文章

    11758

    瀏覽量

    219009
  • 服務器
    +關(guān)注

    關(guān)注

    14

    文章

    10251

    瀏覽量

    91480
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    3001

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    嵌入式軟件開發(fā)工具市場新動向:訂閱制趨勢下的中國開發(fā)者選擇

    面對軟件業(yè)從永久授權(quán)模式廣泛轉(zhuǎn)向訂閱制的行業(yè)趨勢,作為行業(yè)兩大主流嵌入式軟件開發(fā)工具,即Keil MDK與IAR Embedded Workbench也推出了不同的市場策略,正在為中國開發(fā)
    的頭像 發(fā)表于 01-30 17:20 ?729次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發(fā)</b>工具市場新動向:訂閱制趨勢下的中國<b class='flag-5'>開發(fā)</b>者選擇

    嵌入式驅(qū)動開發(fā),需要掌握哪些技能?

    單元測試、集成測試、系統(tǒng)測試等,并學會使用調(diào)試工具進行問題排查。 6、 其他嵌入式驅(qū)動開發(fā),實質(zhì)也是軟件開發(fā),還需要掌握開發(fā)文檔的編輯、軟件
    發(fā)表于 01-20 16:46

    Linux開發(fā)嵌入式必備命令速查表

    嵌入式開發(fā)中,Linux系統(tǒng)幾乎成為必備的開發(fā)環(huán)境。不管你是在做STM32、RaspberryPi、還是基于ARM的板子,熟練掌握Linux命令不僅能加快
    的頭像 發(fā)表于 01-19 09:06 ?879次閱讀
    <b class='flag-5'>Linux</b> 下<b class='flag-5'>開發(fā)</b><b class='flag-5'>嵌入式</b>必備命令速查表

    什么是嵌入式應用開發(fā)

    概述 所謂的嵌入式應用開發(fā)就是在嵌入式操作系統(tǒng)下進行開發(fā)、軟硬件綜合開發(fā) ?嵌入式應用
    發(fā)表于 01-12 16:13

    從小白到大牛:Linux嵌入式系統(tǒng)開發(fā)的完整指南

    從小白到大牛:Linux嵌入式系統(tǒng)開發(fā)的完整指南 一、小白入門:搭建 Linux 嵌入式開發(fā)的認知地基? 對于零基礎(chǔ)學習者,首先要打破 “
    發(fā)表于 12-16 10:42

    CW32嵌入式軟件開發(fā)的必備知識

    嵌入式軟件開發(fā)作為計算機科學和電子工程的交叉領(lǐng)域,要求開發(fā)人員具備一系列的專業(yè)知識和技能。 而基于CW32的嵌入式軟件開發(fā)必備知識包括以下
    發(fā)表于 11-28 07:48

    嵌入式與FPGA的區(qū)別

    ,一是嵌入式軟件開發(fā),主要與嵌入式cao作系統(tǒng)、應用軟件等有關(guān)。第二是嵌入式硬件開發(fā),需要掌握硬
    發(fā)表于 11-20 07:12

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

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

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

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

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

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

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

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

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

    特定功能的計算機系統(tǒng),廣泛應用于智能家居、工業(yè)控制、醫(yī)療設(shè)備、車載系統(tǒng)等領(lǐng)域。 2. 學習嵌入式開發(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 ?1008次閱讀
    硬核升級!華清遠見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>入門進階

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

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