nios2移植uclinux修改enc28j60驱动成功加入网络
来源:互联网 发布:阿玛尼手表淘宝 编辑:程序博客网 时间:2024/04/28 00:35
移植的环境:
ubuntu12.10
quartus11.0sp1,NIOSII 11.0IDE sp1(win7)
fpga开发板采用的是黑金开发板cyclone四代
首先硬件配置
如果只是跑来玩玩可以不需要flash芯片,但这个ip core必须要有以后会用到;
图中的eth_cs可以不用添加,我是参考http://hi.baidu.com/xuxin_813/item/4cc6c6505017402b32e0a9cf的方法加入来控制网络芯片,结果根本用不到。
spi设置
timer设置
eth_irq中断设置
编译
下载到板子
先用IDE写个hello world跑一下 看看不能正常运行 呵呵。
ubuntu编译内核:
参考alterawiki,我在当时没仔细看浪费了不少时间。。。
http://www.alterawiki.com/wiki/Install_Nios_II_Linux
很多地方都有说,不过我再来重复一下
sudo apt-get updatesudo apt-get install git-core git-gui make gcc ncurses-dev bison flex gawk \gettext ccache zlib1g-dev libx11-dev texinfo liblzo2-dev pax-utils uboot-mkimage corkscrew
选择bash
通过以下方式可以使 shell 切换回 bash:
$sudo dpkg-reconfigure dash
然后选择 no 或者 否 ,并确认。
这样做将重新配置 dash,并使其不作为默认的 shell 工具
确保gcc和cc一致,我使用gcc version 4.7.2
下载uclinux相关工具和内核
wget ftp://ftp.altera.com/outgoing/nios2-linux/20120802/*
wget ftp://ftp.altera.com/outgoing/nios2-linux/nios2gcc-20080203.tar.bz2
解压
for i in $(ls nios2-linux-*.tgz); do tar -xzvf $i;done
tar -xvf nios2gcc-20080203.tar.bz2
设置环境变量(这里必须到root下操作,不然会有错)
我直接修改 /etc/profile文件 加入
export PATH="$PATH:/XXX/nios2-linux/toolchain-build/build/nios2/bin"(xxx是你解压nios2gcc-20080203的目录)
然后运行
source /etc/profile
解压文件后必须转换工作平台
cd nios2-linux/linux-2.6git fetch origingit branch test-nios2 origin/test-nios2git checkout -f test-nios2
成功后运行make menuconfig 就不会出现有关nios2-linux-uclibc-gcc 的警告
进行如下操作
make menuconfig(先选择default all settings 确保能正常编译和运行)
make (报错忽略)
make vendor_hwselect SYSPTF=/xxx/yourptf.ptf
make
我遇到报错:
undefined reference to bzero
undefined reference to index
undefined reference to rindex
我手动修改了几个调用这几个函数的源文件,用相同功能的函数memset,strchr,strrchr代替,重新 make就不再提示错误了
再次make成功
make linux image
生成zImage(在uClinux-dist/linux-2.6.x/arch/nios2/boot目录下,需要复制到windows下altera的安装目录下的examples中 这是我的目录D:\altera\11.0\nios2eds\examples )通过nios2-download -g zImage 直接下载到sdram运行,成功后结果如下
修改enc28j60驱动:
修改linux2.6/arch/inos2/kernel/config.c
添加平台设备信息
在static struct spi_board_info nios2_spi_devices[] = {中添加有关enc28j60的spi设备
在drivers/net/enc28j60.c修改
重新make menuconfig(选择customize kernel settings 自定义内核)
device drivers--->
[*] spi_support --->
[*] altera spi controller
device drivers--->
[*]network device support --->
[*]ethernet (10 or 100mbit) --->
[*] enc28j60 support
[*]networking support --->
netowrking options---->
[*] packet socket
[*] unix domain sockets
[*]tcp/ip networking
还可以选择添加nfs功能
编译成功
下载
我的运行结果如下:
程序的固化可以使用如下命令
(b).xx.flash是这条命令输出的文件,
(c).--base和--end分别对应flash芯片的基地址和结束地址.--reset是CPU复位地址,和--base相同.
(d).xxxx.src是bootloader,可以从安装目录下的ip/altera_nios2下拷贝,名字是:boot_loader_cfi.srec
2.nios2-flash-programmer -g -c usb-blaster --base=0x... --program xx.flash
目前还不能加入使用udhcpc这个命令发现busybox不能修改。
- nios2移植uclinux修改enc28j60驱动成功加入网络
- uclinux stm32移植enc28j60笔记
- NIOS2 uCLinux-mmu 驱动之hello_world
- NIOS2 uCLinux-mmu驱动之LED
- NIOS2 uCLinux-mmu驱动之LED 2
- nios2 ucos lwip enc28j60
- ENC28J60网络模块驱动代码
- enc28j60网卡驱动移植到tcc8900上
- 终于将uClinux移植于fpga成功
- enc28j60网卡驱动移植到tcc8900上 -----续
- Linux驱动移植——ENC28J60以太网控制器
- 网卡驱动移植成功
- NIOS2中FATFS的移植
- ENC28J60网络设备驱动分析
- ENC28J60 驱动开发要点
- 毕业设计--uclinux系统上程序的成功移植
- 移植uClinux
- 驱动 ENC28J60 SPI网卡移植 linux 2.6.28 SAMSUNG 6410 ARM11
- 连分数逼近。
- HDU 1671 Phone List
- ArcGIS 10.3 for Desktop新特性介绍
- 多进程编程总述
- windows定时器设置
- nios2移植uclinux修改enc28j60驱动成功加入网络
- 40、实例 使用jQuery操作DOM之操作属性
- Unable to chmod ***: Read-only file system问题的解决方法
- 3.13 Anagrams
- Python 的代码风格
- 配置配额系统
- 2014华为机试西安地区B组试题
- 如何在ubuntu14.04(64位)编译运行32位程序
- 2014年7月9日 09:41:58