在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

簡化SBC的嵌入式Linux軟件開發

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Nathan Z. Gustavson, ? 2022-06-28 11:45 ? 次閱讀

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

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

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

關鍵不僅是要找到一個長壽命的嵌入式Linux硬件平臺,還要找到一個長壽命的嵌入式Linux軟件平臺。熟練的嵌入式 Linux 程序員通常可以通過收集正確的庫和工具版本,并適當地修改 Makefile 來創建嵌入式開發平臺。即使成功,它也是一個次優的開發環境。

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

進入日食

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

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

poYBAGK6eWuACZOaAARwCSx-aKI995.png

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

嵌入式 Java

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

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

交叉編譯的 C

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

語法高亮

代碼完成

即時構建

調試器集成(使用 GDB 的 MI 接口

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

清單 1 中的 Makefile 將在 EMAC Eclipse 環境中編譯一個簡單的 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 環境一樣,所有項目共有的復雜編譯器/鏈接器標志隱藏在更高級別的文件中,然后包含在 SDK 中的所有 Makefile 中。

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

調試

使用 GDB 和 GDBServer 進行調試以促進遠程調試環境。為此,將編譯后的可執行文件上傳到 SBC 并啟動 GDBServer 會話,偵聽特定端口或串行終端。Eclipse 調試透視圖允許用戶通過指定要使用的連接參數以及為目標體系結構構建的 GDB 版本來調試應用程序。

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

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

目標溝通

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

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

CVS

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

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

文檔

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

圖 2:上下文相關的幫助也集成在 Eclipse 中

pYYBAGK6eXWARKK0AAe3UaB-E_8246.png

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

集成工具,更好的開發

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

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

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

作者:Nathan Z. Gustavson,Eric Rossi

審核編輯:郭婷

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

    關注

    87

    文章

    11419

    瀏覽量

    212270
  • 服務器
    +關注

    關注

    12

    文章

    9588

    瀏覽量

    86947
  • JAVA
    +關注

    關注

    20

    文章

    2983

    瀏覽量

    106471
收藏 0人收藏

    評論

    相關推薦

    IAR發布云端平臺,助力現代嵌入式軟件開發團隊

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

    打破技術壁壘!AWFlow讓嵌入式軟件開發觸手可及

    嵌入式軟件開發中,創意和技術創新常常難以融合。AWFlow通過其圖形化組態方法,利用拖拽節點構建業務流程圖,幫助用戶實現奇思妙想。在嵌入式軟件開發中,創意和技術創新常常難以融合。一方
    的頭像 發表于 02-10 16:44 ?345次閱讀
    打破技術壁壘!AWFlow讓<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發</b>觸手可及

    嵌入式機器學習的應用特性與軟件開發環境

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

    嵌入式軟件開發符合ISO 26262 功能安全標準

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

    一文了解嵌入式軟件開發的對象

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

    你認為嵌入式軟件開發的盡頭是什么?

    嵌入式軟件開發的“盡頭”是一個富有哲理且多維度的概念,因為它不僅關乎技術發展的極限,還涉及到行業應用、市場需求、技術融合與創新等多個方面。從幾個不同的視角來看
    的頭像 發表于 09-18 09:42 ?659次閱讀
    你認為<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發</b>的盡頭是什么?

    嵌入式開發常用軟件有哪些?

    嵌入式開發常用軟件有哪些? 對于初學嵌入式的朋友們,會想要了解嵌入式軟件開發常用的軟件有些,有什
    發表于 09-09 15:22

    嵌入式linux開發的基本步驟有哪些?

    嵌入式Linux開發是一個復雜的過程,涉及到硬件選擇、操作系統移植、驅動開發、應用程序開發等多個方面。以下是
    的頭像 發表于 09-02 09:11 ?916次閱讀

    嵌入式linux開發板怎么操作

    嵌入式Linux開發板是一種基于Linux操作系統的嵌入式系統開發平臺。它通常包括一個處理器、內
    的頭像 發表于 09-02 09:09 ?617次閱讀

    嵌入式linux開發板芯片的工作原理

    了處理器、存儲器、輸入/輸出接口等硬件資源的嵌入式系統開發平臺。它通常采用Linux操作系統作為底層軟件平臺,提供了豐富的開發工具和庫函數,
    的頭像 發表于 09-02 09:07 ?643次閱讀

    節點、跨平臺開發,AWFlow讓嵌入式開發變得更簡單

    國產化趨勢對嵌入式軟件開發構成挑戰,導致軟件移植和適配需求激增,影響開發效率。AWFlow軟件通過節點化和跨平臺
    的頭像 發表于 08-02 08:25 ?570次閱讀
    節點<b class='flag-5'>式</b>、跨平臺<b class='flag-5'>開發</b>,AWFlow讓<b class='flag-5'>嵌入式開發</b>變得更簡單

    嵌入式軟件開發與AI整合

    嵌入式軟件開發與AI整合是當前技術發展的重要趨勢之一。隨著人工智能技術的快速發展,嵌入式系統越來越多地集成了AI算法,以實現更復雜的智能功能。以下是關于嵌入式
    的頭像 發表于 07-31 09:25 ?1149次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發</b>與AI整合

    嵌入式軟件開發招聘

    本帖最后由 jf_19082533 于 2024-7-26 13:56 編輯 尋求:嵌入式軟件工程師 要求:3年以上開發經驗,音視頻領域應用層開發 地址:北京市昌平區 郵箱:10
    發表于 07-26 13:44

    專家力薦|《嵌入式系統原理與開發——基于RISC-V和Linux系統》新書發售

    當前,嵌入式系統已成為智能設備的核心之一,RISC-V+Linux的開源力量為嵌入式系統注入強大的創新動力。作為中國RISC-V軟硬件生態領導者,賽昉科技與業界專家合作推出《嵌入式系統
    的頭像 發表于 07-24 08:20 ?924次閱讀
    專家力薦|《<b class='flag-5'>嵌入式</b>系統原理與<b class='flag-5'>開發</b>——基于RISC-V和<b class='flag-5'>Linux</b>系統》新書發售

    嵌入式開發者的未來

    和測試這些產品的硬件和軟件。汽車行業:現代汽車包含大量的嵌入式系統,例如車載娛樂系統、發動機控制單元、自動駕駛系統等。在這個領域,工程師可以從事嵌入式軟件開發、系統集
    的頭像 發表于 06-23 08:10 ?593次閱讀
    <b class='flag-5'>嵌入式開發</b>者的未來

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品
    主站蜘蛛池模板: 免费在线色视频 | 视频在线免费观看网址 | 欧美一区二区三区黄色 | 视频在线观看网站免费 | 天天夜夜啦啦啦 | 天堂福利视频 | 久久女同 | 狠狠干激情 | 久久久久九九精品影院 | 国产在线观看午夜不卡 | 在线看片成人免费视频 | 国产三片高清在线观看 | 天天操天天射天天舔 | 久久久久性| 国产免费爽爽视频免费可以看 | 国内精品视频免费观看 | 色噜噜狠狠色综合中文字幕 | 国产美女亚洲精品久久久综合 | 国产又粗又大又爽又免费 | 亚洲男人的天堂久久香蕉网 | 狠狠色噜噜狠狠狠狠色综合久 | 午夜视频免费看 | 欧美成人 一区二区三区 | 国产成人精品亚洲日本在线 | 美女扒开尿囗给男人玩的动图 | 久久综合欧美 | 老师在办公室被躁得舒服小说 | 天天射天天干天天色 | 夜色成人| 高清一区二区三区视频 | 欧美色欧美亚洲高清在线视频 | 久久亚洲一级毛片 | 日本特黄特色视频 | 户外露出精品视频国产 | 五月激情久久 | 特级淫片aaaaa片毛片 | 天天艹天天操 | 沟沟人体一区二区 | 国产三级观看久久 | 男男之h啪肉np文 | 五月婷婷深爱五月 |