ARM DS-5開發STM32程序(Eclipse配合Keil插件使用)

2020-12-06 電子產品世界

ARM DS-5是基於Eclipse的ARM開發環境,有完善的編譯流程,配合Keil插件開發STM32效果更佳。廢話不多,先介紹思路:

1.安裝MDK軟體,就有編譯STM32的工具鏈。我使用是MDK 4.72的。

本文引用地址:http://www.eepw.com.cn/article/201611/317296.htm

http://pan.baidu.com/s/1o6iHPVG

2.安裝DS-5,並註冊社區版(免費閹割)。

http://pan.baidu.com/s/1mgHX2JY

補充:社區版激活代碼:

http://ds.arm.com/zh-cn/ds-5-community-edition/getting-started/

3.運行DS-5安裝Keil插件

安裝好Keil插件後只是使用了Keil的調試和下載功能,真正與DS-5合體需要在Eclipse設置。

4.設置編譯工具鏈,打開eclipse,Windows->Preferences,彈出Preferences窗口後選擇DS-5->Toolchains,點擊Add。選擇keil安裝目錄下的ARM\ARMCC\bin,然後確認點next、next通常會檢測出armcc的版本

確認後如下圖,黃色的就是添加後的工具鏈。

ds-5的環境設置到這裡完成,然後進行項目設置。

5.源碼複製到DS-5項目。由於Eclipse和mdk的項目文件顯示不一樣,Eclipse是項目文件夾有什麼在Eclipse就顯示什麼,Keil要在設置並加入文件才在項目顯示。所以Eclipse加入程序源碼只要在項目文件夾新建文件並複製源碼就行。

首先在Eclipse新建arm項目,New->C Project,選擇Empty Project和ARM Compiler 5.03,同時輸入項目名稱Finish,下圖因為之前有test1這個項目才出現錯誤。

然後添加原來的源碼到Eclipse的項目文件夾就是了,下圖可以對比一下Keil與Eclipse的項目表示方式,

6.構建設置。項目源碼添加後還要設置給編譯工具鏈的參數。點到項目右鍵選擇Properties,C/C++ Build->Tool Chain Editor,Current builder有CDT Internal Builder和Gnu Make Builder選擇,Gun的使用Makefile,CDT是命令形式。在win7下CDT編譯是明顯快一點。這兩個builder還有的區別是文件路徑的表示不一樣,不過影響不是很大。

然後是C/C++ Build->Settings,根據下面圖基本ok,其實Preprocessor和Includes的設置都與MDK設置對應的。Target CPU是Cortex-M3,

在ARM Linker設置裡面涉及一個比較關鍵一點,就是scat文件,在Keil其實也有但是幾乎看不到它的身影。

在Eclipse裡面就要通過這個給連結器,所以在項目下新建一個Templet.scat,DS-5支持scat後綴的文件有特別的查看方式,不過對於STM32應該不重要。0x08000xxx和0x2000...數字的意義懂stm32的存儲器地址都明白吧。寫好scat文件後記得在ARM Linker的Image Layout設置Scatter file。

最後設置列印出來的信息,-map就列印出每個函數和變量的地址。--list就列印到文件,空著列印到console。

基本的設置完成,利用Keil插件可以進行調試和下載。

補充:

1.不想編譯某文件,點擊文件右鍵->Resource Configurations->Exclude from Build..,並勾上就可以。

2.關於bin文件製作,在stm32使用IAP會發送2進位文件給晶片。除了要scat文件裡面設置地址外,還要使用keil的自帶軟體生成bin。設置同樣在C/C++ Build->Setting->Build,設置Post-build steps的Comand。

STM32開發基本上使用keil和iar,keil很強大,運行快速,設置簡單直觀,模擬和調試工具都做的不錯。IAR個人覺得比較醜陋,雖然keil也不是很漂亮。。而Eclipse,其實一開始我是拒絕的。。。因為它設置比較複雜而且一開始加載很慢,對比keil有沒什麼優勢。但是當你的工程越來越多,分支也開始多的時候,就發現Eclipse的優勢:

1.清晰的項目管理,不用再開多個keil軟體和文件夾

2.與svn方便使用,Eclipse安裝了svn插件就容易的進行版本管理


補充:附上配置好的工程文件

http://pan.baidu.com/s/1kTH5IEb


相關焦點

  • 開發過程中的常用Eclipse插件
    了靜態分析工具,就可以在不實際運行程序的情況對軟體進行分析。它可以幫助改進代碼的質量。它是尋找代碼缺陷的,很多我們寫的不好的地方,可以優化的地方,它都能檢查出來。例如:未關閉的資料庫連接,缺少必要的null check,多餘的 null check,多餘的if後置條件,相同的條件分支,重複的代碼塊,錯誤的使用了"==",不同數據類型的比較,建議使用StringBuffer代替字符串連加等等。
  • 如何用Eclipse中插件SQLExplorer開發資料庫
    Eclipse是目前非常流行的開發平臺,開放擴展的架構讓很多程式設計師找到了自己個性化的工作環境。  安裝   JDK:1.5.0 從http://java.sun.com上去下載安裝  Eclipse:3.1.1 從http://www.eclipse.org 上去下載解壓  SQLExplorer 從http://eclipsesql.sourceforge.net/  插件管理
  • 使用eclipse開發Java Web項目
    圖5 tomcat歡迎頁面如果沒有出現歡迎頁面,則可能是下面問題造成的:(1)tomcat壓縮包下載錯誤。下載的tomcat壓縮包和自身使用的作業系統不匹配,需要重新下載tomcat壓縮包。2、eclipse創建Server服務使用eclipse開發Java web項目,需要將已經部署完成的Tomcat關聯到eclipse,並創建Server服務。Server服務創建成功後,eclipse可以直接將項目發布到Tomcat,並啟動Tomcat服務。
  • 在keil中怎麼燒寫程序
    Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟體開發系統,與彙編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。Keil提供了包括C編譯器、宏彙編、連結器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(μVision)將這些部分組合在一起。運行Keil軟體需要WIN98、NT、WIN2000、WINXP等作業系統。如果你使用C語言編程,那麼Keil幾乎就是你的不二之選,即使不使用C語言而僅用彙編語言編程,其方便易用的集成環境、強大的軟體仿真調試工具也會令你事半功倍。
  • STM32開發環境(工具)之Keil MDK 介紹
    5.1 Keil MDK介紹Keil是德國知名軟體公司Keil(現已併入ARM 公司)開發的微控制器軟體開發平臺,是目前ARM內核單片機開發的主流工具。Keil提供了包括C編譯器、宏彙編、連接器、庫管理和一個功能強大的仿真調試器在內的完整開發方案,通過一個集成開發環境(uVision)將這些功能組合在一起。
  • Sketch插件新利器——使用Mockplus DS製作設計規範
    而該Sketch插件,之所以稱作「新利器」,主要因其擁有以下突出特點:1).便捷易懂的帳號使用策略作為Mockplus DS系統的衍生工具,該款Sketch插件沿用了Mockplus DS的便捷易懂的帳號使用策略:*直接使用Mockplus原型設計工具帳號
  • 為STM32開發者而打造的開發軟體-TrueStudio
    對於開發STM32工程師來說,keil-MDK編譯器似乎是唯一的編譯工具,不過現在情況發生了改變,因為意法半導體公司針對STM32開發了一款全新的編譯軟體-TrueStudio。TrueStudio是一個強大的基於Eclipse的C / C++集成開發工具。TrueStudio for STM32是一個靈活的、可擴展的IDE和調試STM32單片機的強大工具。TrueStudio基於開放標準(Eclipse和GNU)和擴展代碼的專業特點,給系統的結構和動態行為提供了獨特的見解。
  • 一文解析stm32產生spwm原理及程序
    打開APP 一文解析stm32產生spwm原理及程序 發表於 2018-05-18 09:11:49   SPWM(Sinusoidal PWM)法是一種比較成熟的,目前使用較廣泛的PWM法。
  • WebGL 3D程序開發
    這種繪圖技術標準允許把JavaScript和OpenGL ES 2.0結合在一起,通過增加OpenGL ES 2.0的一個JavaScript綁定,WebGL可以為HTML5 Canvas提供硬體3D加速渲染,這樣Web開發人員就可以藉助系統顯卡來在瀏覽器裡更流暢地展示3D場景和模型了,還能創建複雜的導航和數據視覺化。
  • stm32的微秒延時程序
    我的stm32系統時鐘為72MHZ,用軟體延時方法實現微秒級的延時,既空循環:延時函數為:本文引用地址:http://www.eepw.com.cn
  • STM32四種庫對比:寄存器、標準外設庫、HAL、LL
    CMSIS的直接寄存器訪問來減少代碼開銷,從而在各種應用程式中最大化STM32 MCUs的性能。 每個STM32系列的100多個片段演示了如何以最小的內存佔用有效地使用STM32外圍設備。
  • avr單片機和stm32區別與優缺點分析
    摘要:avr單片機和stm32單片機是目前使用較廣泛的單片機,那麼avr單片機和stm32單片機有什麼區別呢?有什麼優劣勢呢?相比,avr 8-bit MCU最大的特點是:   ● 哈佛結構,具備1MIPS / MHz的高速運行處理能力;   ● 超功能精簡指令集(RISC),具有32個通用工作寄存器,克服了如8051 MCU採用單一ACC進行處理造成的瓶頸現象;   ● 快速的存取寄存器組、單周期指令系統,大大優化了目標代碼的大小、執行效率,部分型號FLASH非常大,特別適用於使用高級語言進行開發
  • eclipse如何使用JDBC連接mysql資料庫
    eclipse如何使用JDBC連接mysql資料庫1.在新建的Project中右鍵新建Floder2.創建名為lib的包3.創建完畢之後的工程目錄4.接下來解壓你下載的mysql的jar包,拷貝其中的.jar文件5.在工程lib
  • eclipse如何使用JDBC向資料庫插入數據!
    eclipse如何使用JDBC向資料庫插入數據!1.在工程中新建InsertTest.java類2.向資料庫中插入數據總共分為4步   1.獲取資料庫連接   2.準備sql語句   3.執行插入      3.1使用connection的createStatement()方法獲取Statement對象      3.2調用Statement對象的executeUpdate(sql)方法執行插入操作   4.關閉資料庫連接
  • ARM 彙編的mov操作立即數的疑問
    因為對arm彙編有些指令還不能理解,特別是一些相似功能指令間的區別。偶然在網上搜到「faq ARM assembly」,其中描述的幾個問題還是值得好好研究一下。2. 慢慢的發現自己也不再害怕英文的文檔了,耐心看至少也能懂個大概。
  • 使用STM32 的DSP庫進行FFT變換
    * 使用三角函數生成採樣點,供FFT計算* 進行FFT測試時,按下面順序調用函數即可:* dsp_asm_init();* dsp_asm_test();*/#include "stm32f10x.h"#include "dsp_asm.h"#include "stm32_dsp.h"#include "table_fft.h"
  • cypress與Keil聯手為其PSoC Creator IDE推出編譯器
    此外,用於賽普拉斯PSoC 3 和 PSoC 5器件的新的Keil µVision®4 IDE和調試器也已面世。該集成設計環境的設計有助於提高開發者的生產效率,可以進行更快、更有效率的程序開發和校驗。µVision4中靈活的窗口管理系統使得開發者可以使用多個監控器,並且可以控制窗口放在視覺表面的任何位置。
  • arm開發板與樹莓派有什麼區別
    PC 並且硬體接口更豐富的軟體開發和使用平臺。硬體開發者主要是設計、改良硬體和為新老硬體編寫驅動程序等等,軟體開發者主要是在現有的硬體下開發軟體(通常不包括驅動程序),使用者使用現有硬體和軟體而不進行開發。   我之前使用的 arm11 開發板,主要的目標用戶是硬體開發者和軟體開發者(可以不嚴謹地統稱為嵌入式開發者),幾乎沒有使用者,因為對於沒有開發經驗的人,用戶體驗是很差的。
  • CAD加載小插件lisp程序的方法(手動和自動)
    丨CAD加載小插件LISP程序1,手動加載小插件:①,輸入命令APPLOAD(AP),然後找到要加載的插件文件,加載即可。②,找到插件文件,拖拽到CAD窗口中即可加載。2,自動加載小插件①,從啟動組啟動。