刚刚上传图片失败,重来
历时两个星期,终于将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: