linux 搭建开发stm32 stlink,Ubuntu下搭建stm32+stlink的开发环境
Ubuntu下搭建stm32+stlink的開發環境
熱度 3已有 15960 次閱讀2014-8-19 21:09
|
上周因為忙于別的事情,很久沒切到ubuntu下了,這周繼續弄了弄。
弄到了一些眉目,決定先簡單寫個總結。
我不打算采用 詳細文檔 的寫法,而采取一種啟發性的思路。因為中間很多操作,我們可以自己百度或者,假如你熟悉這些命令,操作。
首先,講述一下要實現的功能。
在Windows下,有好幾款ARM stm32的開發工具,比如我個人最喜歡的IAR,更加著名的MDK。
首先我們要搞清楚一些基礎概念,IAR,MDK是IDE,也就是 集成開發環境,所謂集成因為它包含了很多工具,其中最主要的是 編譯器,調試器,下載工具 等等,所有這些,組成一個完整的工具鏈,可以供我們 在單片機上開發項目。
也就是說,原則上來說,只要我們獲取了這一系列工具,并且互相配合起來,組成一條完整的工具鏈——或者足夠的工具鏈,我們就可以自行組建自己的開發環境,而無須受制于 軟件的license,運行環境等各種限制條件。
IAR MDK都沒有Linux的版本。
但是在Linux下,我們可以使用一些分散的替代工具。
其中,C編譯器是 大名鼎鼎的 GNU C,調試器是GDB,至于下載工具,由于本人偏好使用STLINK SWD,所以,經過一番搜尋和了解,我選擇使用 stlink-master,此外,為了進行硬件調試,除了宿主機上需要gdb外,還需要一個裝在芯片上的 遠程gdbserver。
經過一番折騰。
目前,我已經完成的工作有:
1.我從 Sourcery g++ Lite獲取了一個相當新的 GCC編譯工具;其中包含gcc g++ gdb;
當時我這么做是因為我不懂得設置和重新編譯gcc工具鏈,因為事實上,4.4以后的版本,官方版本已經加入了對cortex m0 m3的支持——而這兩個也是我所需要的。也就是說,如果我能學會編譯,我以后大可自己重新做一個,但無論如何,至少現在為止,我們可以擁有一個 gcc交叉工具鏈;
2.在編譯的時候,我發現,它需要指定 編譯腳本 ld文件,讓編譯器了解具體芯片的一些基本信息:比如 存儲器的分配和中斷入口 ,堆棧的設置;
這一塊,我還不會寫,所以我打算想辦法去找例子學著寫;
3.在第二步卡住的時候,我覺得,這一步最終需要實際燒錄程序才能驗證是否可行,于是我決定再往前走,先把stlink的驅動搞定。慢慢的,我發現,當我把stlink-master搞定的時候,我發現,我同時擁有了我以為還得費勁的gdbserver。
當前的進展是,我已經擁有了gcc工具鏈 和 stlink驅動及相應燒錄,調試工具。
下一步我需要學會或者找到一個m0的 連接腳本。
(具體的過程,我會在完成之后,詳細整理出來。)
在這以前,還有一點要提醒。
Linux下設置 環境變量,沒有windows那么方便,可以在 桌面右鍵屬性的 高級? 里 設置。目前我只知道通過export PATH命令完成。但有個比較麻煩的地方是,直接這么export,在下次重啟后,這變量就沒了。
當然還有很多人喜歡另一種辦法,那就是把相應的bin放到 系統的/usr/bin下,但這種行為無異于在windows下,把所有軟件裝在c盤,這種事,老子不干。而且我曾經接觸過這個問題,我記得是可以通過直接寫什么文件,把這個環境變量固定下來,現在我首先要解決這個事情。
然后再去想腳本,這里,給大家推薦一個很不錯的 第三方徹底開源工具。 libopencm3,它其實同時包含了cm0 cm0+ cm3 cm4 cm1,并且不止stm32,還包含ti部分,nxp部分mcu 的工具鏈。
不過既然我已經裝好了工具鏈,我也就不打算重新換他的,我只想學會或者獲得m0的連接腳本,此外,它使用的是openhcd來做stlink的驅動框架,我暫時對這個不夠了解,但我怕它不穩定,所以相對來說我還是打算選擇stlink-master,它似乎更加“官方”——這是一個動態的過程,玩Linux的都是熱愛自由,不怕折騰的人,我會持續關注這些事情,盡可能改善自己的開發環境。
好了,今晚的筆記到此結束~~
總結
以上是生活随笔為你收集整理的linux 搭建开发stm32 stlink,Ubuntu下搭建stm32+stlink的开发环境的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 水煮菜煮什么好处?
- 下一篇: linux redis 3.0.7,li