uClinux下STM32開發環境搭建
一實驗環境介紹:
目標板:STM3210E-EVAL
虛擬機:VMware 6.5
二、在開始搭建環境之前你需要三個壓縮包:
1、IA32 GNU/Linux Installer :GNU工具安裝包,你可以把它簡單的理解為Windows下面的MDK或者IAR等編譯環境。
2:這是Linux 2.26內核的源文件。可以理解為是在Windows下面我們要編寫的文件的工程的源文件的一部分。
3、uClinux-dist-20080808-20090112.patch.gz:為了支持STM32的開發和加入一些源文件。可理解為在Windows下面我們要編寫的文件的工程的源文件的另一部分。
第2個軟件包加上第3個軟件包就是我們在MDK和IAR下的工程源文件了。理所當然地就包含了timer.c lib.h等STM32的庫文件了。
OK,接下為你地有一個在PC上跳的Linux操作系統,我這里安裝的是Fedora 10 。安裝過程這里就不作詳細的介紹了,這一類教程網上都有。這里有一點需要注意一下的,就是硬盤的空間盡可能的大點,因為軟件包2將占用2.6G左右的空間,而軟件包1、3也會占幾百M的空間。因此你在安裝完Linux后到少要保證你的用戶區的空間要不少于3G。
若你之前玩過S3C44B0X上面的uClinux且看了網上現在點擊率最高的那套視頻教程的話我想你大概會使用SSH建立一條從Window到虛擬Linux的通道。在這里我花點小時間說說一個我個人使用的方法:使用VMware自帶的軟件共享功能。
1、 Windows下,打開VMware。
2、 VM –》Settings…。
3、 在彈出介面中選擇Options標簽。
4、 選擇Shared Folders.
5、 右邊選擇Always Enable
6、 右下角Add.。把你準備共享的Windows文件夾(一般為你存放那幾個軟件包的文件夾或盤)的路徑(host path)添加進去。Name的話就是你在linux看到的文件夾的名稱。
說到這里再提一下Hardware那里可以把串口,USB等添加進去。方便日后調試之用。
啟動linux后你將會在/mnt/hgfs文件夾下看到你剛剛共享的文件夾。
三、把三個軟件包拷貝到linux里面。找一個容易找到的地方安頓好它們。
(1)接下來安裝GNU工具:
1、 運行終端
2、 使用cd命令進入那三個軟件包所在的文件夾
3、 執行#./arm-2009q1-163-arm-uclinuxeabi.bin 運行第一個軟件包
4、 運行一段時間后會彈出一個安裝向導窗口,跟著你需要做的就只是像在windows下面安裝軟件那樣安裝它就好。基本上是一路next ,到了選擇安裝文件夾時你需要注意一下它的位置,以便日后查找,用于設置環境變量。
(2)解壓第2個軟件包可以點擊右鍵解壓也可以在終端中輸入命令進行解壓:(在軟件包當前目錄路徑下運行)# tar –xjvf uClinux-dist-20080808.tar.bz2
由于這個包的文件比較多,所以需要一定的時間。解壓后會生成一個uClinux-dist的文件夾。
(3)打補丁,patch第3個軟件包。
在終端下運行:
#zcat uClinux-dist-20080808-20090112.patch.gz | patch -p1(上面的命令的前提條件是第2個包的安裝路徑和path軟件包也是同時在當前目錄下。)
若不在同一目錄下,你必須先進入uClinux-dist文件夾。運行#zcat /路徑/uClinux-dist-20080808-20090112.patch.gz | patch -p1上面路徑:用你的第3個軟件包的存放路徑代替。
四、為STM3210E-EVAL配置uClinux
進入uClinux-dist文件夾。
運行#make menuconfig
進入目標板配置界面:
進入”Vendor/Product Selection”
uClinuxOnSTM32選擇Vendor,
然后選擇”STMicroelectionics”如圖:
完成上述選擇后會自動返回到上一界面。在上一界面選擇:” STMicroelectionics Products”里面有兩個選項:
“STM3210E-EVAL-jffs” 和“STM3210E-EVAL-MCU_Flash”
若選擇“STM3210E-EVAL-jffs”則程序將從外部存儲器中啟動。而選擇“STM3210E-EVAL-MCU_Flash”剛從內部FLASH中啟動運行。從內部運行的是一個uClinux的微內核。是一個刪減的版本。
在這里我們選擇“STM3210E-EVAL-jffs”
然后回到最頂的菜單項。
進入Kernel / Library / Defaults Selection選項
第一項為”Kernal Version “ 選擇內核版本。這里選擇2.26版。
第二項為”libc Version” C庫的版本,這里選擇None.
第三項為“Default all settings”將默認廠商/產品的配置應用到內核。(為了將剛剛選擇的ST的E板的信息和配置加進去,些項必選)。
第四項為“Customize Kernel Settings”用于自定義內核設置。(嵌入式的內核都是自己定制的,此項必選)。
第五項為“Customize Application/Library Settings”用于自定義添加到文件系統的應用。(可選擇性地為板子添加若刪除LED,LCE,串口等的應用,此項必選)。
第六項為“Update Default Vendor Settings”其功能為將當前修改的情況設置為默認版本。(由官方開發的模板應該是最好的,所以這項一般不選,當你做出比官方更好,更穩定的配置時,可將您自己的模板設置為默認模板,在這里,這一項就不選項了。)
退出當前配置,系統會提示你是否要保存。選擇”YES”退出后,接下來將自動進入uCLinux的配置界面:完整的內核配置的詳盡介紹(每一項的意義,內容很多)這里只介紹與E板相關的配置。
如圖所示:
進入”System Type”
該目錄內容如下:
“MMU-based … “ 因為STM32不具有MMU,此項跳過。
“ARM System type” ARM系統類型。進去后選擇,基于STM32的ST板。
“STMicroelectionics,boards ”選項就只有一個選項了。選擇之。
“Support ARMv7-M processors” 選擇。
最重要的一項為設定內存的地址。
“Set flash/sram size and base addr”
這些都需要根據你的板子的情況而家它上面有內外部內在的基地址和大小,中斷微量表的位置等的設置。
這一菜單配置完成后回到頂層菜單。
進入“Boot Options”菜單,
設置”Kernel Execute-In-Place from ROM”
這里設置的是程序執行的地址。
若程序是在外部存儲器執行的話這里的地址就為0X6400 0000
若為內部FALSH執行剛為0X8000 0000
設置后返回,進入“Device Drivers” -》 “Character Device” -》 “Serial Drivers”。意思是到”設備驅動”-》”字符驅動”-》”串口驅動”菜單下選擇對E板的串口支持,用于與板子的交互操作。
在此目錄下選擇:
[ * ] STM3210E-EVAL USART Port
[ *] Support for console on STM3210E-EVAL USART Port
選擇后返回頂層菜單。選擇”File System”“File systems” -》 “Miscellaneous File system”選擇[ * ] Journalling Flash File System v2 (JFFS2)support 實現對JFFS2文件系統的支持。
完成后退出內核配置,自動進入應用設置。
如上圖所示,選擇”Miscellaneous Applications ”
選擇: “STM3210E-EVAL Demo(s)”
菜單里面有幾個已經做好的應用。都選上。
最后退出菜單,保存設置。
在編譯剛剛所做的一切之前有一個很重要的步驟。就是把你的GNU工具的路徑添加到環境變量中。不然的話直接make 的話就會找不到編譯器。
執行export PATH$PATH:”你安裝的GNU工具的路徑”
添加完成后,就可以運行make就可以了。
一切順利的話你將會在uClinux-dist/image目錄下看到生成的三個映像文件。(如果是使用外部FLASH的話)
若使用的是內部的FLASH啟動的微內核的配置的話就只會生成一個文件。而且生成的過程需要按以下的方式:
1、先運行make ucfront命令
2、再運行make user_only命令
3、跟著運行make romfs命令
4、最后運行make image命令,一切順利的話,你將會在uClinux-dist/image目錄下看到生成的映像文件。
最后將生成的影像文件拷貝回Windows,使用STM32的燒寫軟件Flash loader demonstrator將軟件燒寫進去就行了。
評論
查看更多