linux向DE2_70上带MMU的NiosII的移植
- UID
- 852722
|
linux向DE2_70上带MMU的NiosII的移植
看本文前最好先看一下“NiosII软核微处理器添加MMU的方法”这篇。因为下面的操作是在以它中接受的NiosII为基础的。
1、如何将带MMU的NiosII的配置信息导入到Linux中。NiosII配置并且整个工程完全编译完后,会生成硬件相关的配置信息。打开NiosII的命令工具,并且切换到NiosII的工程目录下执行如下命令:
sopc-create-header-files --single custom_fpga.h后会生成文件custom_fpga.h(注意必须用这个名字,否则后面和Linux的配置对应不起来)。
2、将生成的文件拷贝到nios2-linux/linux-2.6/arch/nios2/include/asm下(前面的那个是Linux的tar包解压后的目录)
3、在linux下切换到nios2-linux/uClinux-dist下,执行make menuconfig,生产厂商(vender)选择altera,产品(products)选择nios,内核库选择的时候选择自定义内核设置(custom kernel setting)。
4、退出,保存后,稍等片刻会在弹出一个对话框,在此对话框中选择NiosII configuration--->NiosII fpga configuration-->custom_fpag
5、再在device driver-->Network device support--->ethernet(10...10M)下,去掉ATSE,选中DM9000,然后可以保存退出了。
上面的配置指示基础的保证不出错的配置,如果向让内核支持更多的功能,需要自己耐心去尝试。。。。。
6、下面终于可以make了
7、不出预料的话,还会出错,提示什么定义没有,这是因为刚才生成的custom_fpag.h中定义的宏和linux内核的不一致,需要修改nios2-linux/linux-2.6/arch/nios2/include/asm下的nios.h文件,在文件的最后添加下面几句即可
#define TIMER_1MS_FREQ TIMER_FREQ
#define TIMER_1MS_BASE TIMER_BASE
#define TIMER_1MS_SPAN TIMER_SPAN
#define TIMER_1MS_IRQ TIMER_IRQ
#define DDR2_TOP_BASE SDRAM_U1_BASE
#define DDR2_TOP_SPAN SDRAM_U1_SPAN
8、OK,可以再次make了,如果运气不错的话,应该会正确生成编译好的linux影像文件linux-initramfs.gz. |
|
|
|
|
|