剛剛上傳圖片失敗,重來
歷時兩個星期,終於將uClinux移植於nios ii成功;激動的心情難以掩飾,高興的同時,我希望記錄下我的移植坎坷之旅:
首先我是按照真 OO無雙的博客一步一步走下去的:
file:///C:/Users/Frank/Desktop/(%E5%8E%9F%E5%89%B5)%20%E5%A6%82%E4%BD%95%E5%9C%A8DE2%E4%B8%8A%E5%AE%89%E8%A3%9D%CE%BCClinux%E4%BD%9C%E6%A5%AD%E7%B3%BB%E7%B5%B1%20(IC%20Design)%20(DE2)%20(Nios%20II)%20(OS)%20(Linux)%20(CentOS)%20(%CE%BCClinux)%20-%20%E7%9C%9F%20OO%E6%97%A0%E5%8F%8C%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD.mht
自己總結一下過程:
(1)編譯工具及其環境
Vmware+Ubuntu 11.04+nios2gcc20080230+uClinux-dist20070130+uClinux-dist20070130patch
還有一件重要的事情就是一個正確的完整的quartus工程,最終生成的zImage是否成功跟sopc生成的PTF文件有很大關係,我想我浪費了很多時間就是因爲我對sopc不是很熟悉,導致生成的.ptf存在存在細節上的問題,後面會詳細介紹。
##在這一步驟遇到的問題是Linux操作系統的選擇,本人覺得還是ubuntu比較適合開發人員使用,我安裝過ubuntu11.04、12.04、14.1。還使用過archilinux。主要是因爲自己之前沒有接觸過Linux操作系統,然後編譯過程中一遇到問題就認爲是操作系統的問題;不過還好,最起碼我現在對Linux操作系統基本指令已經比較熟悉了,我發現Linux下面的terminal實在是太棒了,特別是重重敲下Enter按鍵的時候,因爲那是見證奇蹟的時刻。##
(2)建立交叉編譯工具
1. tar -jxvf nios2gcc.tar.bz2
會生成opt文件夾 ;
2.gedit ~/.profile (有的文檔會讓我們使用~/.bash_profile 這是跟Linux版本有關係);
3.source ~/.profile (編譯);
驗證 交叉編譯工具是否成功 : nios2-linux-uclinux-gcc -v;
成功會顯示版本3.4.6;
(3)接下來就是編譯內核
1. tar -zxvf uClinux-dist-20070130.tar.gz;
2. 打補丁: gunzip -c uClinux-dist....diff.gz | patch -p0;
3. make menuconfig
用圖形界面配置內核,主要是配置vendor ————》Altera , product-----》nios2nommu
Save後開始編譯內核;
4. 用制定的內核編譯ptf中的硬件配置信息:
make vendor_hwselect SYSPTF=/......../.ptf
選擇cpu ram flash;
5. make romfs 第一次會出錯 ,此時忽略,但是PATH_MAX錯誤不能忽略;
6. make 這一步非常重要會出現各種錯誤,主要是auth.c ,config.c出錯,然後應該修改參數方法見圖片:
7.make linux image
生成zImage;
(3)下載到開發板
1.進入工程文件,jtagconfig -n測試jtag ;
2. nios2-configure-sof 下載到開發板;
3. nios2-download -g zImage;
這一步阻攔了我很久,總是出現如下錯誤:
最後才發現,是由於我配置的flash的timing三個參數配置錯誤:這裏要學會看原理圖,查看芯片手冊。Cyclone IV E系列 ,flash AM29LV320 應該配置爲50 40 35;
4. nios2-terminal 會顯示uClinux: