色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

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

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Nathan Z. Gustavson, ? 2022-10-18 09:14 ? 次閱讀

作者:Nathan Z. Gustavson,Eric Rossi

如今,大多數擁有電氣工程或計算機科學學位的大學程序員都相當精通Linux桌面平臺上的編程。當這些程序員需要對嵌入式Linux系統進行編程時,他們經常感到驚訝和困惑,因為他們在桌面上編寫的程序將無法運行他們的Linux嵌入式系統

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

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

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

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

輸入日食

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

圖 1:許多由商業集成開發環境(IDE)一遍又一遍地重新發明的相同功能(語法突出顯示,語言感知搜索,代碼完成等),但不依賴于任何一組特定的工具來完成它

poYBAGNN_kSAJA5vAARfQV6e5BY704.png

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

嵌入式爪哇

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

為此,開發人員利用了 Eclipse 的本機 Ant 支持,該支持可用于創建一種 XML 格式的高級 Java 生成文件。然后,Ant 使用 Eclipse 的 JDT 編譯器適配器類構建目標,這使得內部編譯器可用于 Ant 的任務。然后,源代碼鍛造的 TiniAnt 擴展執行從 Java 類到 TINI 可執行文件的最終轉換。執行此操作所需的所有復雜聲明都隱藏在頂級 build.properties 文件中,從而大大降低了 SoM-400M 的編譯復雜性,使其成為簡單的標準 Ant 任務。

交叉編譯 C

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

語法突出顯示

代碼完成

動態構建

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

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

清單 1 中的生成文件將在 EMAC 日食環境中編譯一個簡單的“你好世界”示例項目。

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上,這些庫是原生的;在視窗上,使用天鵝庫。然后,我們“隱藏”實際的 Eclipse 可執行文件,并將其替換為一個批處理文件,該文件在 Eclipse 啟動時臨時添加支持 GNU 工具鏈所需的路徑。

調試

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

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

目標溝通

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

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

CVS

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

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

文檔

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

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

poYBAGNN_k2AUkQXAAeyDXOyrh0549.png

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

集成工具,更好的開發

Eclipse 提供了一個 GNU 工具和商業工具可以一起玩的環境。通過少量集成,OEM可以為他們的電路板創建一個強大的跨平臺開發平臺,該平臺將在許多商業軟件供應商采用的同一平臺上運行。

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

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

審核編輯:郭婷

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

    關注

    5082

    文章

    19104

    瀏覽量

    304797
  • Linux
    +關注

    關注

    87

    文章

    11292

    瀏覽量

    209323
收藏 人收藏

    評論

    相關推薦

    嵌入式軟件開發需要些什么知識?

    嵌入式軟件開發需要學習什么知識,對學習嵌入式來說就比較有條清晰的學習路線。嵌入式軟件開發需要學習的知識有C語言,匯編,數據結構,
    發表于 10-14 09:19

    嵌入式軟件開發需要學習什么?

    應用程序開發標準教程》華清遠見出版2:《嵌入式Linux C語言程序設計基礎教程》華清遠見出版3:《Linux設備驅動開發詳解》華清遠見出版
    發表于 01-31 14:45

    嵌入式Linux軟件開發的相關資料推薦

    嵌入式Linux軟件開發(學習目標計劃內容)
    發表于 11-16 08:17

    如何學習嵌入式軟件開發

    1. 如何學習嵌入式軟件開發嵌入式軟件開發一定要結合開發板來學習,所有的知識都可以在開發板上
    發表于 02-11 07:33

    什么是嵌入式軟件開發

    嵌入式軟件開發又是指什么?   隨著嵌入式軟件系統結構越來越復雜,嵌入式軟件
    發表于 04-20 08:43 ?8773次閱讀

    嵌入式軟件開發與Embedded-GIS

    1.嵌入式軟件開發 市場現狀 嵌入式操作系統 嵌入式軟件開發特點 嵌入式
    發表于 02-28 10:39 ?36次下載

    ARM嵌入式軟件開發

    ARM嵌入式軟件開發ARM嵌入式軟件開發ARM嵌入式軟件開發
    發表于 01-15 17:29 ?65次下載

    嵌入式Linux與物聯網軟件開發C語言內核深度解析書籍的介紹

    嵌入式Linux與物聯網軟件開發——C語言內核深度解析 C語言是嵌入式Linux領域的主要開發
    發表于 05-15 18:10 ?8次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>與物聯網<b class='flag-5'>軟件開發</b>C語言內核深度解析書籍的介紹

    關于嵌入式Linux軟件開發的常用知識

    C語言是嵌入式軟件開發的基礎,c佳佳在嵌入式領域也有一定的份額,但是很少,所以我們如果要做嵌入式軟件開發,就得熟練掌握c語言語法。
    發表于 08-26 17:11 ?1448次閱讀

    嵌入式軟件開發入門

    1. 如何學習嵌入式軟件開發嵌入式軟件開發一定要結合開發板來學習,所有的知識都可以在開發
    發表于 12-07 17:21 ?17次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發</b>入門

    簡化SBC嵌入式Linux軟件開發

      Eclipse 提供了一個環境,讓 GNU 工具和商業工具可以一起發揮作用。只需稍加集成,OEM 就可以為其電路板創建一個強大的跨平臺開發平臺,該平臺將在許多商業軟件供應商采用的同一平臺上運行。
    的頭像 發表于 06-15 09:36 ?1373次閱讀
    <b class='flag-5'>簡化</b><b class='flag-5'>SBC</b>的<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b><b class='flag-5'>軟件開發</b>

    簡化SBC嵌入式Linux軟件開發

      在 Eclipse 框架內,EMAC 使用交叉編譯來緩解將嵌入式開發環境從標準桌面環境中抽象出來的問題。調試是使用帶有 Eclipse 窗口的 GDB 來完成的,用于調試器的輸入和輸出。
    的頭像 發表于 06-22 11:48 ?791次閱讀
    <b class='flag-5'>簡化</b><b class='flag-5'>SBC</b>的<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b><b class='flag-5'>軟件開發</b>

    簡化SBC嵌入式Linux軟件開發

    或其他問題而需要更新開發機器時,這種情況會更加嚴重。需要一種從標準桌面環境中抽象出嵌入式開發環境的方法。
    的頭像 發表于 06-28 11:45 ?763次閱讀
    <b class='flag-5'>簡化</b><b class='flag-5'>SBC</b>的<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b><b class='flag-5'>軟件開發</b>

    簡化SBC嵌入式Linux軟件開發

      Eclipse 提供了一個環境,讓 GNU 工具和商業工具可以一起發揮作用。只需稍加集成,OEM 就可以為其電路板創建一個強大的跨平臺開發平臺,該平臺將在許多商業軟件供應商采用的同一平臺上運行。
    發表于 08-12 09:39 ?531次閱讀
    <b class='flag-5'>簡化</b><b class='flag-5'>SBC</b>的<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b><b class='flag-5'>軟件開發</b>

    嵌入式軟件開發軟件開發的區別

    嵌入式軟件開發軟件開發是兩個不同的概念,它們在一些關鍵方面有著明顯的區別。嵌入式軟件開發是指開發
    的頭像 發表于 01-22 15:27 ?2268次閱讀
    主站蜘蛛池模板: 丰满的女友1在线观看| 久久国产综合精品欧美| 亚洲精品AV无码永久无码| 精品亚洲欧美中文字幕在线看| 最新国产三级在线不卡视频| 欧美另类与牲交ZOZOZO| 国产精品美女久久久网站动漫 | 嫩草影院地址一二三| 国产露脸无码A区久久蘑菇| 亚洲精品无码午夜福利在线观看| 激情床戏揉胸吃胸视频| 一本色道久久综合亚洲精品加 | 视频一区视频二区在线观看| 久久99精品国产麻豆婷婷| 豆奶视频在线高清观看| 国产麻豆剧果冻传媒免费网站| 最新影音先锋av资源台| 亚洲欧美日本久久综合网站| 忘忧草在线社区WWW日本直播 | mxgs-877痉挛媚药按摩| 在线观看成人3d动漫入口| 亚州免费一级毛片| 手机在线免费看毛片| 欧美熟妇互舔20p| 女的把腿张开男的往里面插| 理论片午午伦夜理片I| 老子午夜伦不卡电影院| 久久国产精品自线拍免费| 国产午夜精品一区二区理论影院 | 国产学生无码中文视频一区| 中文字幕欧美一区| 午夜性爽视频男人的天堂在线| 么公在浴室了我的奶| 国产人妻精品久久久久久很牛| 99re6久久热在线播放| 亚洲AV久久无码精品蜜桃| 欧美精品高清在线观看| 绝色娇嫩美人妻老师| 国精产品一区一区三区有限| 国产高清视频a在线大全| 草莓视频cm.888tw|