第一步,是用SOPC Builder把硬件做好,并且自己写一个小的测试程序,看能否正确运行,主要是测试你的SDRAM和FLASH是否可用,要注意的就是FLASH的访问时间一定不要太短,我就因为这个问题浪费了两天而没有任何进展.还有一个需要特别注意的就是一定要把CPU的中断向量设在SDRAM中,这是我当时犯的一个重要的错误,当然,如果你不用uClinux的话这个无所谓.我一开始是把向量设在片内RAM中的,结果是裸机程序可以正常运行,但uclinux怎么也跑不了,这个小小的一般不会引起注意的小失误又让我痛苦了一天,不过我现在要说的最主要的也是让我痛苦了很长一段时间的问题是uClinux的编译错误.
我用的是Fedora9的Linux系统,Altera的开发套件却是WINXP下的,这样我不得不停地把电脑重启,在两个系统间不停地切换(谁让我的机器太差跑不了虚拟机呢).到www.uclinux.org下载源码包,http://nioswiki.jot.com/WikiHome这里有NIOSII的补丁,打补丁和安装交差编译环境可以差考这里http://blog.ednchina.com/duckfly/35483/message.aspx.不过按duckfly的步骤在make是会出错,不是步骤有错,而是源码的问题,不知道其它的朋友有没遇到同样的问题,一般错误原因是bzero,index,rindex,bcopy符号未这定义,都是在user目录下的文件用到这几个函数引起的,它们在
grep -lr bzero user/
grep -lr index user/
grep -lr bcopy user/
用gedit或vim分别打开每个命令对应的那些源文件,直接用上面提到的函数替换.保存.差点忘了提了,我还遇到另一个小错误,大概是PATH_MAX未定义,根据make的提示,找到相应的源文件,在文件头部加上:
#define PATH_MAX 100 //100是我随便想的一个数.
这些工作做好了,再按这里http://blog.ednchina.com/duckfly/35483/message.aspx的步骤就成功了.
希望这篇文章对遇到和我同样的错误的朋友有帮助,也希望高手们释一下为什么别人可以编译成功,而我需要修改源码才行.
作者brother.abc 出自http://brother.abc.blog.163.com/


kevinsamuel 于 2008-07-14 13:39:57发表:
user 下有很多文件 怎么替换呢 如果一一替换的话 工程量很大 有没有什么简单的方法