1. 程式人生 > >基於ARM7的ucLinux核心移植的proteus模擬

基於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 讓配置的環境變數立即生效


     5)檢視arm-elf-gcc的版本

  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命令

執行完該條命令後會出現錯誤

在終端上執行cp linux-2.4.x/fs/romfs/romfs.o linux-2.4.x/

 然後再次執行make命令

     8)執行過程中會出現一個"sys_open"的錯誤

      通過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執行。