<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > STM32再學(xué)習――集成開(kāi)發(fā)環(huán)境IDE

STM32再學(xué)習――集成開(kāi)發(fā)環(huán)境IDE

作者: 時(shí)間:2016-10-15 來(lái)源:網(wǎng)絡(luò ) 收藏

嵌入式系統是一個(gè)軟件和硬件相結合的計算機系統。軟件代碼經(jīng)編寫(xiě)、編譯、匯編、鏈接,生成可執行文件,然后將可執行文件加載到嵌入式系統的ROM或flash中,通過(guò)嵌入式系統的MCU來(lái)控制、檢測外部的裝置。

本文引用地址:http://dyxdggzs.com/article/201610/307477.htm

軟件的編輯需要文本編輯器,編譯需要編譯器,匯編需要匯編器,鏈接需要編譯器,可執行文件需要軟件工具來(lái)加載文件,同時(shí)軟件還需要一些函數庫,中間件等。為了使開(kāi)發(fā)更便捷,簡(jiǎn)單,幾乎所有的MCU芯片都會(huì )有對應的集成開(kāi)發(fā)環(huán)境(IDE),該環(huán)境囊括了軟件開(kāi)發(fā)從編輯到可執行文件的所有工具,同時(shí)還包括常用的庫,調試工具,在線(xiàn)調試工具鏈等。

STM32主流的集成開(kāi)發(fā)環(huán)境有兩種:IAR和MDK。我在這里不想討論哪一種IDE好,談?wù)撨@個(gè)沒(méi)有意義,就像你認為版主多優(yōu)秀,但是版主依然單身;你認為這個(gè)人多蛋疼,他卻有鮮花默默的陪伴在身邊,所以沒(méi)有好與不好,只有喜歡與不喜歡,適合與不適合。如果你是一名剛接觸STM32的同學(xué),我將發(fā)揮我媒婆的本色,為你分別介紹下這兩款開(kāi)發(fā)環(huán)境,看看有沒(méi)有相中的,如果沒(méi)有,我就無(wú)能為力,請你自己尋覓吧;如果你是一名老鳥(niǎo),也許下面的介紹會(huì )讓你移情別戀也說(shuō)不定。

無(wú)論MDK還是IAR,功能都很強大,除非有些比較特殊需求之外,基本上都能滿(mǎn)足日常的工作和學(xué)習。兩者的區別這處,可能會(huì )主導我們比較傾向于選擇哪一個(gè)。

1、MDK是keil公司的產(chǎn)品,keil公司的集成環(huán)境,我們學(xué)習的51單片機的開(kāi)發(fā)環(huán)境就是keil C,所以上手很容易,IDE中的各個(gè)功能很容易找到,再加上大量的中文出版圖書(shū)都使用了Keil,因此,其中文資料相當豐富,對于英語(yǔ)稍差的童鞋,絕對是一個(gè)不錯的選擇;IAR對于大多數網(wǎng)友們來(lái)說(shuō)使用的并不多,所以需要一段時(shí)間的學(xué)習和適應,而且最近其更新的加密措施,原有的和諧程序無(wú)法使用了,對于初學(xué)者來(lái)說(shuō),造成了不少的麻煩。

2、 MDK的文本編輯與IAR的文本編輯,自我感覺(jué)都不怎么樣,相對于Source Insight的文本,差的太遠了(順便吐槽)。即使最新版的兩者開(kāi)發(fā)環(huán)境在文本編輯器方面都做了改善,但bla~~ bla~~

3 、MDK的工程管理和平常用的VC,keil C,PIC等開(kāi)發(fā)環(huán)境沒(méi)有多大的區別,而IAR的工程管理文件,采用了層疊的技術(shù),更容易理清代碼的層次,方便工程管理,這事IAR的亮點(diǎn)。兩者的文件管理視圖如下:

1.jpg

圖1:MFDK開(kāi)發(fā)環(huán)境 工程管理界面

2.jpg

圖2:IAR開(kāi)發(fā)環(huán)境 工程管理界面

4、 MDK的默認工具欄工具多,方便查找;IAR的工具欄的工具比較少,看起來(lái)是干凈整潔了,用到的時(shí)候就不太方便了。兩者都支持外部工具鏈的調用。

5、 MDK的源程序的最后一行要是空行,否則就會(huì )有一個(gè)警告:warning: #1-D: last line of file ends without a newline,類(lèi)似與unix的gcc的C語(yǔ)言規范;而IAR則不需要最后一行是空格。

6、 IAR有Eclipse 插件,可以使用Eclipse進(jìn)行開(kāi)發(fā)。

7、 IAR的優(yōu)化效率較高,CODE-DATA代碼區較小,而MDK的RW-DATA區較小。采用同一段程序,分別采用MDK和IAR開(kāi)發(fā)環(huán)境,在不同的優(yōu)化級別下,得到了如下的數據:

MDK 開(kāi)發(fā)環(huán)境

優(yōu)化級別CODE data memoryRO data memoryRW data memoryZI-data memory

0

2032

252

0

608

1

1888

252

0

608

2

1876

252

0

608

3

1872

252

0

608

IAR開(kāi)發(fā)環(huán)境

優(yōu)化級別CODE data memoryRO data memoryRW data memory
NONE

2208

84

8708

LOW

2176

84

8708

MEDIUM

992

84

8708

HIGH

952

84

8708

無(wú)論使用哪種開(kāi)發(fā)環(huán)境都應該將該環(huán)境熟練使用,對其配置參數、功能要理解透徹,對其提供的庫函數要熟悉,對該編程環(huán)境支持的C或者C++代碼的規范要深入理解。最后一句,兩者的說(shuō)明文檔都是非常全面,英語(yǔ)好的話(huà),千萬(wàn)不要差過(guò)。

  • STM32單片機中文官網(wǎng)
  • STM32單片機官方開(kāi)發(fā)工具
  • STM32單片機參考設計


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>