lcytms 发表于 2017-3-19 23:39:39

Step4:
下载硬件电路,使用nios2-configure-sof程序,如图46所示。
$nios2-configure-sof DE2_NET.sof

(图46)

lcytms 发表于 2017-3-19 23:40:29

Step5:
下载uClinux内核镜像zImage_1,选项-g表示go,下载后立即运行。如图47所示。
$nios2-download -g zIamge_1

(图47)

lcytms 发表于 2017-3-19 23:41:11

Step6:
打开终端,和DE2进行通信。看到如图48所示的welcome to uclinux字样,表明移植成功。接下来可以运行一些简单的linux指令,如ls,cat,ifconfig等等,大家可以自己试一下。
$nios2-terminal

(图48)

至此,一个最简单的uClinux的移植就完成了。这样移植到SOPC上的uClinux只能运行一些简单的uClinux命令。接下来我们做一个内容稍微加深的例子,在uClinux中加入我们自己编写的命令,比如运行hello,打印“hello,I am now studying uClinux”字符串。

lcytms 发表于 2017-3-19 23:42:27

5, 在uClinux中加入hello命令
Step1:
首先进入ubuntu环境,在 ~/(在这里即是/home/ubuntu/)目录下建立c_test目录,使用gedit或vim编辑hello.c,如图49所示。
ubuntu@ubuntu-desktop:~$ cd c_test/
ubuntu@ubuntu-desktop:~/c_test$ gedit hello.c

hello.c的内容:
#include
int main()
{
   printf("Hello,I am now studying uClinux!\n");
    return 0;
}

(图49)

lcytms 发表于 2017-3-19 23:43:28

Step2:
通过交叉编译工具 nios2-linux-uclibc-gcc 把 hello.c编译成能在nios2 上运行的程序。
ubuntu@ubuntu-desktop:~/c_test$ nios2-linux-uclibc-gcc hello.c –o hello -elf2flt 交叉编译后,c_test 目录下就会生成hello,这就是能在 nios2运行的可执行文件。把它 拷贝到~/ucLinux/uClinux-dist/romfs/bin目录下。如图 50 所示。

(图 50)

lcytms 发表于 2017-3-19 23:44:30

Step3:
进入~/ucLinux/uClinux-dist目录,执行make 命令,重新编译 uClinux内核。这样重新编译的内核就会把 hello 命令包含进去。
ubuntu@ubuntu-desktop:~/ucLinux/uClinux-dist$ make

Step4: 重新生成可供下载的镜像文件 zImage。
ubuntu@ubuntu-desktop:~/ucLinux/uClinux-dist$ make linux image

Step5:
将生成的 zImage 文件取别名 zImage_2,通过 U 盘或 FTP方式传送到 Windows 下的 E:\uclinux_down 文件夹。

Step6:
从开始菜单进入NiosII Command Shell命令行模式,进入uclinux_down文件件,下载硬件电路,下载镜像文件,打开终端,运行hello命令。结果如图51所示,hello运行成功。
$cd/cygdrive/e/uclinux_down/
$nios2-configure-sof DE2_NET.sof
$nios2-download -g zImage_2
$nios2-terminal

(图51)

至此,自己加入命令的uClinux移植也成功了。

lcytms 发表于 2017-3-19 23:45:43

6, 在uClinux中加入网络协议
使用操作系统的一大优势是能轻松地实现对网络的支持,免去自己编写复杂的网络协议,uClinux同样方便地支持网络协议,能轻松地实现网络应用。在前面的步骤中,当进行到“make menuconfig”配置内核时(如图31所示),在“kernel/library/defaults Selections”选项中,我们选择的是“Defaults all settings”,这个选项并没有包含网络协议及网络驱动。如果要包含对网络的支持,应该选择第二项“Customize Kernel Settings”,自定义设置内核。以下是详细步骤。
Step1:
重新配置内核,首先要进入uClinux-dist目录,再make menuconfig
ubuntu@ubuntu-desktop:~$ cd ucLinux/uClinux-dist/
ubuntu@ubuntu-desktop:~/ucLinux/uClinux-dist$ make menuconfig
弹出如图52所示的配置窗口。

(图 52)

lcytms 发表于 2017-3-19 23:46:33

Step2:
上下键选中 中第二行,“Kernel/Library/Defaults Selection” 回车进入,用空格选中第四行选项“Customize Kernel Settings” ,如图 53 所示。

(图 53)

lcytms 发表于 2017-3-19 23:48:09

按 TAB 键切换光标到“Exit” ,回车退出,回到图 52 所示的界面,再次按TAB 键,选择 “Exit” ,回车,退出,提示是否保存设置,按“Y”保存。如图 54 所示。

(图 54)

lcytms 发表于 2017-3-19 23:49:05

弹出 “Linux Kernel Configuration” 配置窗口。如图 55 所示。 “Networking” 和 “Device Driver”两项。

(图 55)
页: 1 2 3 4 [5] 6
查看完整版本: ucLinux在SOPC上的移植(DE2开发板)