新聞中心

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

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

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

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

        本文引用地址:http://www.104case.com/article/201610/307477.htm

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

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

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

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

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

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

        1.jpg

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

        2.jpg

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

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

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

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

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

        MDK 開發(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開發(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

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

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


        關(guān)鍵詞: STM32 開發(fā)環(huán)境 IDE

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 什邡市| 化州市| 肥城市| 石景山区| 乐亭县| 奉节县| 庆元县| 阿勒泰市| 射洪县| 舒兰市| 招远市| 中卫市| 安远县| 疏附县| 丰原市| 乐清市| 泉州市| 原阳县| 合川市| 邻水| 平远县| 当阳市| 德州市| 辽源市| 汽车| 安化县| 南陵县| 大厂| 双峰县| 凉城县| 洛扎县| 吉林省| 通城县| 长治市| 鄂州市| 涪陵区| 乌鲁木齐县| 博罗县| 兴义市| 凤翔县| 伽师县|