女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

簡(jiǎn)化SBC的嵌入式Linux軟件開(kāi)發(fā)

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

掃碼添加小助手

加入工程師交流群

如今,大多數(shù)從大學(xué)畢業(yè)并獲得電氣工程或計(jì)算機(jī)科學(xué)學(xué)位的程序員都非常精通 Linux 桌面平臺(tái)上的編程。當(dāng)這些程序員需要跨越式地對(duì)嵌入式 Linux 系統(tǒng)進(jìn)行編程時(shí),他們常常會(huì)驚訝和困惑,他們?cè)谧烂嫔暇帉懙某绦驅(qū)o(wú)法運(yùn)行他們的 Linux 嵌入式系統(tǒng)

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

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

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

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

進(jìn)入日食

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

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

poYBAGK6eWuACZOaAARwCSx-aKI995.png

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

嵌入式 Java

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

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

交叉編譯的 C

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

語(yǔ)法高亮

代碼完成

即時(shí)構(gòu)建

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

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

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

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)境一樣,所有項(xiàng)目共有的復(fù)雜編譯器/鏈接器標(biāo)志隱藏在更高級(jí)別的文件中,然后包含在 SDK 中的所有 Makefile 中。

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

調(diào)試

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

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

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

目標(biāo)溝通

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

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

CVS

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

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

文檔

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

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

pYYBAGK6eXWARKK0AAe3UaB-E_8246.png

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

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

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

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

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

作者:Nathan Z. Gustavson,Eric Rossi

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11509

    瀏覽量

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

    關(guān)注

    13

    文章

    9791

    瀏覽量

    87915
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2989

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

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

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

    IAR發(fā)布云端平臺(tái),助力現(xiàn)代嵌入式軟件開(kāi)發(fā)團(tuán)隊(duì)

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

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

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

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

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

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

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

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

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

    你認(rèn)為嵌入式軟件開(kāi)發(fā)的盡頭是什么?

    嵌入式軟件開(kāi)發(fā)的“盡頭”是一個(gè)富有哲理且多維度的概念,因?yàn)樗粌H關(guān)乎技術(shù)發(fā)展的極限,還涉及到行業(yè)應(yīng)用、市場(chǎng)需求、技術(shù)融合與創(chuàng)新等多個(gè)方面。從幾個(gè)不同的視角來(lái)看
    的頭像 發(fā)表于 09-18 09:42 ?777次閱讀
    你認(rèn)為<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開(kāi)發(fā)</b>的盡頭是什么?

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

    嵌入式開(kāi)發(fā)常用軟件有哪些? 對(duì)于初學(xué)嵌入式的朋友們,會(huì)想要了解嵌入式軟件開(kāi)發(fā)常用的軟件有些,有什
    發(fā)表于 09-09 15:22

    嵌入式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è)方面。以下是
    的頭像 發(fā)表于 09-02 09:11 ?1232次閱讀

    嵌入式linux開(kāi)發(fā)板怎么操作

    嵌入式Linux開(kāi)發(fā)板是一種基于Linux操作系統(tǒng)的嵌入式系統(tǒng)開(kāi)發(fā)平臺(tái)。它通常包括一個(gè)處理器、內(nèi)
    的頭像 發(fā)表于 09-02 09:09 ?790次閱讀

    嵌入式linux開(kāi)發(fā)板芯片的工作原理

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

    節(jié)點(diǎn)、跨平臺(tái)開(kāi)發(fā),AWFlow讓嵌入式開(kāi)發(fā)變得更簡(jiǎn)單

    國(guó)產(chǎn)化趨勢(shì)對(duì)嵌入式軟件開(kāi)發(fā)構(gòu)成挑戰(zhàn),導(dǎo)致軟件移植和適配需求激增,影響開(kāi)發(fā)效率。AWFlow軟件通過(guò)節(jié)點(diǎn)化和跨平臺(tái)
    的頭像 發(fā)表于 08-02 08:25 ?750次閱讀
    節(jié)點(diǎn)<b class='flag-5'>式</b>、跨平臺(tái)<b class='flag-5'>開(kāi)發(fā)</b>,AWFlow讓<b class='flag-5'>嵌入式開(kāi)發(fā)</b>變得更簡(jiǎn)單

    嵌入式軟件開(kāi)發(fā)與AI整合

    嵌入式軟件開(kāi)發(fā)與AI整合是當(dāng)前技術(shù)發(fā)展的重要趨勢(shì)之一。隨著人工智能技術(shù)的快速發(fā)展,嵌入式系統(tǒng)越來(lái)越多地集成了AI算法,以實(shí)現(xiàn)更復(fù)雜的智能功能。以下是關(guān)于嵌入式
    的頭像 發(fā)表于 07-31 09:25 ?1355次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開(kāi)發(fā)</b>與AI整合

    嵌入式軟件開(kāi)發(fā)招聘

    本帖最后由 jf_19082533 于 2024-7-26 13:56 編輯 尋求:嵌入式軟件工程師 要求:3年以上開(kāi)發(fā)經(jīng)驗(yàn),音視頻領(lǐng)域應(yīng)用層開(kāi)發(fā) 地址:北京市昌平區(qū) 郵箱:10
    發(fā)表于 07-26 13:44