基於ARM7的ucLinux核心移植的proteus模擬
一、安裝proteus
從網站上下載Proteus-Pro-crack-ha-7.8sp2,然後進行安裝
二、嵌入式uClinux的實現
1.uClinux核心編譯
(1)安裝交叉編譯工具
安裝交叉編譯器arm-elf-tools-20030314.sh,這是一個可以自動安裝的指令碼檔案,可以在相關網站上下載。在/home/saisai/目錄下新建資料夾201417012,將其拷貝到該資料夾下。
1)以使用者身份登陸,否則不能執行指令碼檔案
2)輸入./arm-elf-tools-20030314.sh執行該指令碼檔案,結果出現如下錯誤:
3)對上述出現的問題,有兩種解決辦法:
解決辦法一:
進入arm-elf-tools-20040427.sh修改
在命令模式下輸入:set nu顯示每一行的行號
將第39行的程式碼: tail +${SKIP} ${SCRIPT} | gunzip | tar xvf –
改成如下:
tail -n +${SKIP} ${SCRIPT} | gunzip | tar xvf –
在最後一行按回車空一行;
修改後儲存退出,再輸入命令即可成功安裝
解決辦法二
#tail -n+43 arm-elf-tools-20040427.sh >> arm.tar.gz
#tar -zxvf arm.tar.gz
4)安裝完後,進行環境變數配置
1》如果不知道安裝到哪了,可以輸入命令which arm-elf-gcc進行檢視
2》輸入vi /etc/environment配置環境變數
3》輸入source/etc/environment 讓配置的環境變數立即生效
1》輸入arm-elf-gcc –v檢視版本,同時也看是否成功安裝交叉編譯器
2》在檢視的時候會出現找不到路徑的問題,是因為沒有安裝32位庫,使用命令apt-get install lib32ncurses5 lib32z1進行安裝。在安裝的過程中要保持網路通暢,其中它會自動解決一些依賴關係,要從網路上下載。
3》安裝成功後即可檢視
(2)編譯核心
下載uClinux-dist-20040408.tar.gz壓縮包,將其複製到目錄
/home/saisai/201417012下。
1)輸入命令tar -zxvf uClinux-dist-20040408.tar.gz解壓到當前目錄
2)檢視當前目錄下的內容
3)修改檔案
1》進入/home/saisai/201417012/ucLinux-dist目錄修改檔案
2》在*(got) 之後新增如下3行語句
3》修改vendors/Samsung/4510B/Makefile檔案
#vi vendors/Samsung/4510B/Makefile檔案
在image 目標的第三行增加一條語句
arm-elf-ld -r -o $(ROOTDIR)/$(LINUXDIR)/romfs.o -bbinary $(ROMFSIMG)
4)使用makexconfig命令對響應內容進行修改,修改完後儲存並退出
5)在終端上執行以下三條命令,如果在執行過程中出現錯誤,可能是交叉編譯器沒有安裝好。
執行make dep命令
執行make clean命令
執行make lib_only命令
6)在執行下一條命令前先進行修改
vi config/.config註釋掉25行,否則編譯有錯
25 #CONFIG_USER_LOD_PASSWORDS=y
修改完後執行make user_only命令
執行make romfs命令
7)執行make命令
8)執行過程中會出現一個"sys_open"的錯誤執行完該條命令後會出現錯誤
在終端上執行cp linux-2.4.x/fs/romfs/romfs.o linux-2.4.x/
然後再次執行make命令
通過vi linux-2.4.x/fs/romfs/inode.c找到
struct file_operations romfs_file_operations = {
開頭加上static
再次執行命令make
9)執行結束後可以看到uClinux-dist下有一個images資料夾,裡面有四個檔案
10)在終端先進入此資料夾,輸入cd images
然後輸入mkimage -n 'uClinux' -A arm -O linux -T kernel -C none -a 0xc0008000 -e 0xc0008000 -d image.bin linux.bin
這條命令執行時,會說沒有安裝mkimage,提示安裝u-boot-tools,按照提示進行安裝
安裝後,再次執行該命令
11)執行arm-elf-objcopy -I binary -O ihex linux.bin linux.img.hex命令
執行完後檢視當前目錄下的內容
12)至此,成功完成
三、系統整合
(1)proteus下建立模擬鏈路
(2) 移植uClinux作業系統
將在虛擬機器(ubuntu)中生成的linux.img.hex複製到目錄D:\Program Files (x86)\Labcenter Electronics\Proteus 7 Professional\SAMPLE\VSM for ARM7\uCLinux
下。然後在proteus下點選play執行。