欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

如何編譯嵌入式系統(tǒng)運(yùn)行的程序?

jf_78858299 ? 來(lái)源:汽車控制與人工智能 ? 作者:Demu ? 2023-02-13 14:06 ? 次閱讀

汽車上使用的ECU中運(yùn)行的程序,是軟件工程師基于C/C++語(yǔ)言編寫(xiě)出來(lái),然后通過(guò)編譯器編譯得到可執(zhí)行文件,最后將可執(zhí)行文件刷寫(xiě)入ECU中實(shí)現(xiàn)的,今天我們介紹下編譯過(guò)程。

通常我們使用GCC編譯器來(lái)實(shí)現(xiàn)編譯,對(duì)于GCC編譯器,我們就不展開(kāi)介紹了,感興趣的同學(xué)可以到網(wǎng)上找些材料,自行充電。

0 四個(gè)階段

雖然我們稱GCC是C語(yǔ)言的編譯器,但使用GCC由C語(yǔ)言源代碼文件生成可執(zhí)行文件的過(guò)程不僅僅是編譯的過(guò)程,而是要經(jīng)歷四個(gè)相互關(guān)聯(lián)的步驟∶

  • 預(yù)處理(也稱預(yù)編譯,Preprocessing)
  • 編譯(Compilation)
  • 匯編(Assembly)
  • 鏈接(Linking)

GCC首先調(diào)用cpp進(jìn)行預(yù)處理,在預(yù)處理過(guò)程中,對(duì)源代碼文件中包含的預(yù)編譯語(yǔ)句進(jìn)行分析。然后調(diào)用編譯器進(jìn)行編譯,這個(gè)階段根據(jù)輸入文件生成以.s為后綴的匯編文件。匯編過(guò)程是針對(duì)匯編語(yǔ)言的步驟,將.S為后綴的匯編語(yǔ)言源代碼文件生成以.o為后綴的目標(biāo)文件。當(dāng)所有的目標(biāo)文件都生成之后,GCC會(huì)完成最后的鏈接過(guò)程,最終生成可執(zhí)行文件。

1 預(yù)處理階段

讀取c源程序,對(duì)其中的偽指令(以#開(kāi)頭的指令)和特殊符號(hào)進(jìn)行處理。那么,什么是偽指令呢?偽指令主要包括以下四個(gè)方面:

(1)宏定義指令,如#define Demu 520,#undef等。對(duì)于前一個(gè)偽指令,預(yù)編譯所要做的是將程序中的所有Demu用520替換,但作為字符串常量的Demu則不被替換。對(duì)于后者,則將取消對(duì)某個(gè)宏的定義,使以后該串的出現(xiàn)不再被替換。

(2)條件編譯指令,如#ifdef,#ifndef,#else,#elif,#endif等。這些條件編譯指令的引入使得程序員可以通過(guò)定義不同的宏來(lái)決定編譯程序?qū)δ男┐a進(jìn)行處理。預(yù)編譯程序?qū)⒏鶕?jù)有關(guān)的文件,將那些不必要的代碼過(guò)濾掉。

(3)頭文件包含指令,如#include "Filename"或者#include 等。在頭文件中一般用偽指令#define定義了大量的宏(最常見(jiàn)的是字符常量),同時(shí)包含有各種外部符號(hào)的聲明。采用頭文件的目的主要是為了使某些定義可以供多個(gè)不同的C源程序使用。因?yàn)樵谛枰玫竭@些定義的C源程序中,只需加上一條#include語(yǔ)句即可,而不必再在此文件中將這些定義重復(fù)一遍。預(yù)編譯程序?qū)杨^文件中的定義統(tǒng)統(tǒng)都加入到它所產(chǎn)生的輸出文件中,以供編譯程序?qū)χM(jìn)行處理。

包含到c源程序中的頭文件可以是系統(tǒng)提供的。在程序中#include它們要使用尖括號(hào)(<>)。另外開(kāi)發(fā)人員也可以定義自己的頭文件,這些文件一般與c源程序放在同一目錄下,此時(shí)在#include中要用雙引號(hào)("")。所以,你知道為什么include的頭文件,尖括號(hào)和雙引號(hào)都有了吧,當(dāng)然這是規(guī)范用法,大家敲代碼的時(shí)候最好也按照這個(gè)規(guī)范來(lái)。

(4)特殊符號(hào),預(yù)編譯程序可以識(shí)別一些特殊的符號(hào)。例如在源程序中出現(xiàn)的LINE標(biāo)識(shí)將被解釋為當(dāng)前行號(hào)(十進(jìn)制數(shù)),F(xiàn)ILE則被解釋為當(dāng)前被編譯的C源程序的名稱。預(yù)編譯程序?qū)τ谠谠闯绦蛑谐霈F(xiàn)的這些串將用合適的值進(jìn)行替換。

圖片

預(yù)編譯程序所完成的基本上是對(duì)源程序的“替代”工作。經(jīng)過(guò)此種替代,生成一個(gè)沒(méi)有宏定義、沒(méi)有條件編譯指令、沒(méi)有特殊符號(hào)的輸出文件。這個(gè)文件的含義同沒(méi)有經(jīng)過(guò)預(yù)處理的源文件是相同的,但內(nèi)容有所不同。下一步,此輸出文件將作為編譯程序的輸出而被翻譯成為機(jī)器指令。

2 編譯階段

這個(gè)階段,編譯器將預(yù)處理后的輸出文件進(jìn)行編譯處理和優(yōu)化處理。

編譯程序所要做的工作就是通過(guò)詞法分析和語(yǔ)法分析,在確認(rèn)所有的指令都符合語(yǔ)法規(guī)則之后,將其翻譯成等價(jià)的中間代碼表示或匯編代碼。

2.1 詞法分析

詞法分析的任務(wù)是:輸入源程序,對(duì)構(gòu)成源程序的字符串進(jìn)行掃描和分解,識(shí)別出一個(gè)個(gè)的單詞(亦稱單詞符號(hào)),如關(guān)鍵字(if,else,for,while)、標(biāo)識(shí)符、常數(shù)、運(yùn)算符和界符(標(biāo)點(diǎn)符號(hào)、左右括號(hào))。

單詞符號(hào)是語(yǔ)言的基本組成成分,是人們理解和編寫(xiě)程序的基本要素。識(shí)別和理解這些要素?zé)o疑也是翻譯的基礎(chǔ)。如同將英文翻譯成中文的情形一樣,如果你對(duì)英語(yǔ)單詞不理解,那就談不上進(jìn)行正確的翻譯。在詞法分析階段的工作中所依循的是語(yǔ)言的詞法規(guī)則(也稱構(gòu)詞規(guī)則)。

2.2 語(yǔ)法分析

語(yǔ)法分析的任務(wù)是:在詞法分析的基礎(chǔ)上,根據(jù)語(yǔ)言的語(yǔ)法規(guī)則,把單詞符號(hào)串分解成各類語(yǔ)法單位(語(yǔ)法范疇),如“短語(yǔ)”、“句子”、“程序段”和“程序”等。通過(guò)語(yǔ)法分析,確定整個(gè)輸入串是否構(gòu)成語(yǔ)法上正確的“程序”。語(yǔ)法分析所依循的是語(yǔ)言的語(yǔ)法規(guī)則。語(yǔ)法規(guī)則通常用上下文無(wú)關(guān)文法描述。詞法分析是一種線性分析,而語(yǔ)法分析是一種層次結(jié)構(gòu)分析。

例如:

Z = X + 0.618 * Y;

代表一個(gè)“賦值語(yǔ)句”,而其中的X + 0.618 * Y 代表一個(gè)“算術(shù)表達(dá)式”。因而,語(yǔ)法分析的任務(wù)就是識(shí)別X + 0.618 * Y為算術(shù)表達(dá)式,同時(shí),識(shí)別整個(gè)符號(hào)串屬于賦值語(yǔ)句的范疇。

2.3 優(yōu)化處理

優(yōu)化處理是編譯系統(tǒng)中一項(xiàng)比較深?yuàn)W的技術(shù)。它涉及到的問(wèn)題不僅同編譯技術(shù)本身有關(guān),而且同機(jī)器的硬件環(huán)境也有很大的關(guān)系。優(yōu)化一方面是對(duì)中間代碼的優(yōu)化,不依賴于具體的計(jì)算機(jī)。另一種優(yōu)化則主要針對(duì)目標(biāo)代碼的生成而進(jìn)行的。

對(duì)于前一種優(yōu)化,主要的工作是刪除公共表達(dá)式、循環(huán)優(yōu)化(代碼外提、強(qiáng)度削弱、變換循環(huán)控制條件、已知量的合并等)、復(fù)寫(xiě)傳播,以及無(wú)用賦值的刪除等。

后一種類型的優(yōu)化同機(jī)器的硬件結(jié)構(gòu)密切相關(guān),最主要的是考慮是如何充分利用機(jī)器的各個(gè)硬件寄存器存放有關(guān)變量的值,以減少對(duì)于內(nèi)存的訪問(wèn)次數(shù)。另外,如何根據(jù)機(jī)器硬件執(zhí)行指令的特點(diǎn)對(duì)指令進(jìn)行一些調(diào)整使目標(biāo)代碼比較短,執(zhí)行的效率比較高,這一點(diǎn)非常重要。

2.4 中間代碼生成

對(duì)語(yǔ)法分析所識(shí)別出的各類語(yǔ)法范疇,分析其含義,然后進(jìn)行初步翻譯,產(chǎn)生中間代碼。這一階段通常包含兩個(gè)方面的工作。

首先,對(duì)每種語(yǔ)法范疇進(jìn)行語(yǔ)義i安插,例如,變量是否定義、類型是否正確等等。如果語(yǔ)義正確,則進(jìn)行另一方面工作,即進(jìn)行中間代碼的解釋。這一階段所依循的是語(yǔ)言的語(yǔ)義規(guī)則。通常使用屬性文法描述語(yǔ)義規(guī)則。

“翻譯”僅僅在這里才開(kāi)始涉及到。所謂“中間代碼”是一種含義明確、便于處理的記號(hào)系統(tǒng),它通常獨(dú)立于具體的硬件。這種記號(hào)系統(tǒng)或者與現(xiàn)代計(jì)算機(jī)的指令形式比較接近,或者能夠比較容易地把它變換成現(xiàn)代計(jì)算機(jī)的機(jī)器指令。例如,許多編譯程序采用了“四元式”作為中間代碼。這種四元式的形式是:

算符/左操作數(shù)/右操作數(shù)/結(jié)果

它的意義是:對(duì)“左右操作數(shù)”進(jìn)行某種運(yùn)算(由“算符”指明),把運(yùn)算所得的值作為“結(jié)果”保留下來(lái)。在采用四元式作為中間代碼的情形下,中間代碼產(chǎn)生的任務(wù)就是按語(yǔ)言的語(yǔ)法規(guī)則把各類范疇翻譯成四元式序列。

例如,下面的賦值語(yǔ)句:

Z = (X + 0.618) * Y / W;

可被翻譯為如下的四元式序列:

序號(hào) 算符 左操作 右操作 結(jié)果
(1) + X 0.618 T1
(2) * T1 Y T2
(3) / T2 W Z

其中,T1和T2是編譯期間引進(jìn)的臨時(shí)工作變量;第一個(gè)四元式意味著把X的值加上0.618存放在T1中;第二個(gè)四元式值將T1的值和Y的值相乘存于T2中;第三個(gè)四元式指將T2的值除以Y的值留結(jié)果于Z中。

一般而言,中間代碼是一種獨(dú)立于具體硬件的記號(hào)系統(tǒng)。常用的中間代碼,除了四元式之外,還有三元式、間接三元式、逆波蘭記號(hào)和樹(shù)形表示等等。

這樣,經(jīng)過(guò)以上分析和優(yōu)化后,匯編代碼經(jīng)過(guò)匯編程序的匯編轉(zhuǎn)換成相應(yīng)的機(jī)器指令,才可能被機(jī)器執(zhí)行。

圖片

3 匯編階段

匯編過(guò)程實(shí)際上指把匯編語(yǔ)言代碼翻譯成目標(biāo)機(jī)器指令的過(guò)程。對(duì)于被翻譯系統(tǒng)處理的每一個(gè)C語(yǔ)言源程序,都將最終經(jīng)過(guò)這一處理而得到相應(yīng)的目標(biāo)文件。目標(biāo)文件中所存放的也就是與源程序等效的目標(biāo)的機(jī)器語(yǔ)言代碼。

目標(biāo)文件由段組成。通常一個(gè)目標(biāo)文件中至少有兩個(gè)段:

代碼段: 該段中所包含的主要是程序的指令。該段一般是可讀和可執(zhí)行的,但一般卻不可寫(xiě)。

數(shù)據(jù)段: 主要存放程序中要用到的各種全局變量或靜態(tài)的數(shù)據(jù)。一般數(shù)據(jù)段都是可讀,可寫(xiě),可執(zhí)行的。

嵌入式系統(tǒng)中主要有三種類型的目標(biāo)文件:

(1)可重定位文件(relocatable)

其中包含有適合于其它目標(biāo)文件鏈接來(lái)創(chuàng)建一個(gè)可執(zhí)行的或者共享的目標(biāo)文件的代碼和數(shù)據(jù)。

(2)共享的目標(biāo)文件(shared)

這種文件存放了適合于在兩種上下文里鏈接的代碼和數(shù)據(jù)。第一種是鏈接程序可把它與其它可重定位文件及共享的目標(biāo)文件一起處理來(lái)創(chuàng)建另一個(gè)目標(biāo)文件;第二種是動(dòng)態(tài)鏈接程序?qū)⑺c另一個(gè)可執(zhí)行文件及其它的共享目標(biāo)文件結(jié)合到一起,創(chuàng)建一個(gè)進(jìn)程映象。

(3)可執(zhí)行文件(executable)

它包含了一個(gè)可以被操作系統(tǒng)創(chuàng)建一個(gè)進(jìn)程來(lái)執(zhí)行之的文件。

匯編程序生成的實(shí)際上是第一種類型的目標(biāo)文件。對(duì)于后兩種還需要其他的一些處理方能得到,這個(gè)就是鏈接程序的工作了。

4 鏈接階段

由匯編程序生成的目標(biāo)文件并不能立即就被執(zhí)行,其中可能還有許多沒(méi)有解決的問(wèn)題。

例如,某個(gè)源文件中的函數(shù)可能引用了另一個(gè)源文件中定義的某個(gè)符號(hào)(如變量或者函數(shù)調(diào)用),在程序中可能調(diào)用了某個(gè)庫(kù)文件中的函數(shù)等。所有的這些問(wèn)題,都需要經(jīng)鏈接程序的處理方能得以解決。

鏈接程序的主要任務(wù)是將有關(guān)的目標(biāo)文件彼此相連接,即將在一個(gè)文件中引用的符號(hào)同該符號(hào)在另外一個(gè)文件中的定義連接起來(lái),使得所有的這些目標(biāo)文件成為一個(gè)能夠被操作系統(tǒng)裝入執(zhí)行的統(tǒng)一整體。

根據(jù)開(kāi)發(fā)人員指定的同庫(kù)函數(shù)的鏈接方式的不同,鏈接處理分為兩種:

4.1 靜態(tài)鏈接

在這種鏈接方式下,函數(shù)的代碼將從其所在的靜態(tài)鏈接庫(kù)中被拷貝到最終的可執(zhí)行程序中。這樣該程序在被執(zhí)行時(shí)這些代碼將被裝入到該進(jìn)程的虛擬地址空間中。靜態(tài)鏈接庫(kù)實(shí)際上是一個(gè)目標(biāo)文件的集合,其中的每個(gè)文件含有庫(kù)中的一個(gè)或者一組相關(guān)函數(shù)的代碼。

4.2 動(dòng)態(tài)鏈接

在此種方式下,函數(shù)的代碼被放到稱作是動(dòng)態(tài)鏈接庫(kù)或共享對(duì)象的某個(gè)目標(biāo)文件中。鏈接程序此時(shí)所做的只是在最終的可執(zhí)行程序中記錄下共享對(duì)象的名字以及其它少量的登記信息。

在此可執(zhí)行文件被執(zhí)行時(shí),動(dòng)態(tài)鏈接庫(kù)的全部?jī)?nèi)容將被映射到運(yùn)行時(shí)相應(yīng)進(jìn)程的虛地址空間。動(dòng)態(tài)鏈接程序?qū)⒏鶕?jù)可執(zhí)行程序中記錄的信息找到相應(yīng)的函數(shù)代碼。

對(duì)于可執(zhí)行文件中的函數(shù)調(diào)用,可分別采用動(dòng)態(tài)鏈接或靜態(tài)鏈接的方法。使用動(dòng)態(tài)鏈接能夠使最終的可執(zhí)行文件比較短小,并且當(dāng)共享對(duì)象被多個(gè)進(jìn)程使用時(shí)能節(jié)約一些內(nèi)存,因?yàn)樵趦?nèi)存中只需要保存一份此共享對(duì)象的代碼。但并不是使用動(dòng)態(tài)鏈接就一定比使用靜態(tài)鏈接要優(yōu)越。在某些情況下動(dòng)態(tài)鏈接可能帶來(lái)一些性能上損害。

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

    關(guān)注

    5096

    文章

    19189

    瀏覽量

    308036
  • ecu
    ecu
    +關(guān)注

    關(guān)注

    14

    文章

    893

    瀏覽量

    54795
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2114

    瀏覽量

    73895
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    662

    瀏覽量

    33073
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    嵌入式應(yīng)用程序開(kāi)發(fā)Windows環(huán)境一鍵編譯下載

    【知識(shí)分享】嵌入式應(yīng)用程序開(kāi)發(fā),Windows環(huán)境一鍵編譯下載
    的頭像 發(fā)表于 08-27 12:55 ?1975次閱讀
    <b class='flag-5'>嵌入式</b>應(yīng)用<b class='flag-5'>程序</b>開(kāi)發(fā)Windows環(huán)境一鍵<b class='flag-5'>編譯</b>下載

    嵌入式Linux編譯調(diào)試

    文件,然后make,這樣就可以得到對(duì)應(yīng)的bin運(yùn)行文件,最后把該運(yùn)行文件拷貝到嵌入式Linux板子上,運(yùn)行程序。而調(diào)試的話,一般是用在Linux虛擬機(jī)中用交叉
    發(fā)表于 11-04 09:04

    什么是嵌入式系統(tǒng)?深嵌入式系統(tǒng)又是什么

    物聯(lián)網(wǎng)中“事物”的定義差異很大。我們將事務(wù)定義為通過(guò)網(wǎng)絡(luò)發(fā)送和接收信息的嵌入式計(jì)算設(shè)備(或嵌入式系統(tǒng))。什么是嵌入式系統(tǒng)
    發(fā)表于 12-21 06:48

    為什么將編譯好的程序嵌入式設(shè)備上運(yùn)行的時(shí)候報(bào)錯(cuò)呢

    目錄問(wèn)題敘述解決方法chmod用法詳解語(yǔ)法問(wèn)題敘述在虛擬機(jī)上使用對(duì)應(yīng)交叉編譯工具鏈編譯過(guò)的程序按道理來(lái)說(shuō)應(yīng)該可以在嵌入式Ubuntu設(shè)備上運(yùn)行
    發(fā)表于 12-21 06:44

    嵌入式系統(tǒng)的C程序設(shè)計(jì)

    嵌入式系統(tǒng)的C程序設(shè)計(jì)
    發(fā)表于 04-07 22:42 ?86次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>的C<b class='flag-5'>程序</b>設(shè)計(jì)

    嵌入式系統(tǒng)的C程序設(shè)計(jì)

    嵌入式系統(tǒng)的C程序設(shè)計(jì)
    發(fā)表于 11-10 08:59 ?54次下載

    嵌入式系統(tǒng)的c程序設(shè)計(jì)

    嵌入式系統(tǒng)的c程序設(shè)計(jì)
    發(fā)表于 02-11 09:21 ?65次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>的c<b class='flag-5'>程序</b>設(shè)計(jì)

    嵌入式交叉編譯環(huán)境的搭建解析

    是不同版本的內(nèi)核,都會(huì)用到不同的交叉編譯器,而且,有些交叉編譯器經(jīng)常會(huì)有部分的bug,這都會(huì)導(dǎo)致最后的代碼無(wú)法正常地運(yùn)行。因此,選擇合適的交叉編譯器對(duì)于
    發(fā)表于 10-18 16:44 ?1次下載

    嵌入式系統(tǒng)與C程序設(shè)計(jì)

    嵌入式系統(tǒng)與C程序設(shè)計(jì)
    發(fā)表于 10-30 10:20 ?13次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>與C<b class='flag-5'>程序</b>設(shè)計(jì)

    什么是嵌入式系統(tǒng)

    、一般運(yùn)行固定的程序或固定的操作系統(tǒng),再加上可變的應(yīng)用程序。3、有些為工業(yè)系統(tǒng),僅用于某個(gè)特定的控制目的;有些因?yàn)橛袘?yīng)用
    發(fā)表于 10-21 10:36 ?9次下載
    什么是<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>

    嵌入式linux編譯 ko,嵌入式linux:編譯linux驅(qū)動(dòng)模塊

    嵌入式系統(tǒng)應(yīng)用中,嵌入式linux是非常重要的一個(gè)方面,而linux驅(qū)動(dòng)編譯又是嵌入式linux中至關(guān)重要的一個(gè)環(huán)節(jié)。下面,本文將詳細(xì)講解
    發(fā)表于 11-01 16:31 ?9次下載
    <b class='flag-5'>嵌入式</b>linux<b class='flag-5'>編譯</b> ko,<b class='flag-5'>嵌入式</b>linux:<b class='flag-5'>編譯</b>linux驅(qū)動(dòng)模塊

    嵌入式linux一個(gè)簡(jiǎn)單的hello程序編譯運(yùn)行示例

    嵌入式linux一個(gè)簡(jiǎn)單的hello程序編譯運(yùn)行示例由于嵌入式的cpu速度比較慢,所以嵌入式l
    發(fā)表于 11-01 16:56 ?9次下載
    <b class='flag-5'>嵌入式</b>linux一個(gè)簡(jiǎn)單的hello<b class='flag-5'>程序</b><b class='flag-5'>編譯</b>及<b class='flag-5'>運(yùn)行</b>示例

    嵌入式linux系統(tǒng)試題庫(kù),嵌入式linux系統(tǒng)移植試題 - 答案

    嵌入式Linux系統(tǒng)移植試題(時(shí)間:60分鐘)一、單項(xiàng)選擇題(每題2分,共40分)1.嵌入式linux系統(tǒng)移植不包括(D)[A] bootloader[B] linux內(nèi)核[C] 根文
    發(fā)表于 11-01 17:07 ?19次下載
    <b class='flag-5'>嵌入式</b>linux<b class='flag-5'>系統(tǒng)</b>試題庫(kù),<b class='flag-5'>嵌入式</b>linux<b class='flag-5'>系統(tǒng)</b>移植試題 - 答案

    嵌入式Linux編譯調(diào)試---1---】VisualStdio+VisualGDB

    文件,然后make,這樣就可以得到對(duì)應(yīng)的bin運(yùn)行文件,最后把該運(yùn)行文件拷貝到嵌入式Linux板子上,運(yùn)行程序。而調(diào)試的話,一般是用在Linux虛擬機(jī)中用交叉
    發(fā)表于 11-01 17:38 ?8次下載
    【<b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>編譯</b>調(diào)試---1---】VisualStdio+VisualGDB

    C語(yǔ)言嵌入式培訓(xùn) 嵌入式C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)

      學(xué)習(xí)嵌入式的基礎(chǔ)語(yǔ)言是C語(yǔ)言,因此先掌握C語(yǔ)言對(duì)于后續(xù)嵌入式的學(xué)習(xí)有著非常大的意義。下面講解下嵌入式C語(yǔ)言程序設(shè)計(jì)基礎(chǔ),尤其是C語(yǔ)言的一些語(yǔ)言特點(diǎn)?! 語(yǔ)言是一種結(jié)構(gòu)化的
    發(fā)表于 11-03 21:06 ?32次下載
    C語(yǔ)言<b class='flag-5'>嵌入式</b>培訓(xùn)  <b class='flag-5'>嵌入式</b>C語(yǔ)言<b class='flag-5'>程序</b>設(shè)計(jì)基礎(chǔ)