在nios II中移植linux系统Word下载.docx
《在nios II中移植linux系统Word下载.docx》由会员分享,可在线阅读,更多相关《在nios II中移植linux系统Word下载.docx(12页珍藏版)》请在冰点文库上搜索。
这里你可以进行一下测试。
看看你的交叉编译环境是否已经建成,也可以略过不做。
方法:
nios2-linux-uclibc-gcc
–v
Reading
specs
from
/opt/nios2/lib/gcc/nios2-linux-uclibc/3.4.6/specs
Configured
with:
/root/buildroot/toolchain_build_nios2/gcc-3.4.6/configure
--prefix=/opt/nios2
--build=i386-pc-linux-gnu
--host=i386-pc-linux-gnu
--target=nios2-linux-uclibc
--enable-languages=c
--enable-shared
--disable-__cxa_atexit
--enable-target-optspace
--with-gnu-ld
--disable-nls
--enable-threads
--disable-multilib
--enable-cxx-flags=-static
Thread
model:
posix
gcc
version
3.4.6
二:
编译uclinux内核
1、把uclinux-dist20060803放进/usr/local/src,解压缩。
[root@localhost
-zxvf
uClinux-dist-20070130.tar.tar
如果你是在linux系统下(意思是指不是虚拟机),硬盘够大的话,就不应该有问题出现。
解压缩之后,一般应该接近1.9G大小。
2、给uclinux打补丁
把μClinuxkernelpatchforNiosII:
uClinux-dist-20070130-nios2-02.7z到/usr/local/src/uClinux-dist。
安裝μClinuxkernelpatchforNiosII
cd
uClinux-dist
uClinux-dist]#
gunzip
-c
uClinux-dist-20070130-nios2-02.diff.gz
|
patch
-p0
出现以下的结果就表明,补丁打成功。
patching
file
vendors/Altera/nios2nommu/config.arch
vendors/Altera/nios2nommu/config.linux-2.6.x
lib/libpng/Makefile
linux-2.6.x/include/asm-nios2nommu/ide.h
linux-2.6.x/include/linux/elf-em.h
linux-2.6.x/usr/Makefile
linux-2.6.x/arch/nios2nommu/kernel/vmlinux.lds.S
linux-2.6.x/arch/nios2nommu/drivers/Kconfig
linux-2.6.x/arch/nios2nommu/drivers/altcf.c
linux-2.6.x/arch/nios2nommu/drivers/pci/Kconfig
linux-2.6.x/arch/nios2nommu/drivers/pci/pci-auto.c
linux-2.6.x/arch/nios2nommu/drivers/pci/pci.c
linux-2.6.x/arch/nios2nommu/drivers/pci/Makefile
linux-2.6.x/arch/nios2nommu/drivers/spi.c
linux-2.6.x/arch/nios2nommu/drivers/Makefile
linux-2.6.x/drivers/mtd/maps/altera.c
linux-2.6.x/drivers/mtd/maps/Kconfig
linux-2.6.x/drivers/net/Kconfig
linux-2.6.x/drivers/net/Makefile
linux-2.6.x/drivers/net/dm9ks.c
linux-2.6.x/drivers/net/open_eth.c
linux-2.6.x/drivers/net/dm9000.c
linux-2.6.x/drivers/net/Space.c
linux-2.6.x/drivers/net/smc91x.c
linux-2.6.x/drivers/net/smc911x.c
linux-2.6.x/drivers/net/mtip1000.c
linux-2.6.x/drivers/usb/Kconfig
linux-2.6.x/drivers/usb/host/Kconfig
linux-2.6.x/drivers/usb/host/isp1362-hcd.c
linux-2.6.x/drivers/usb/host/Makefile
linux-2.6.x/drivers/usb/host/isp1362.h
linux-2.6.x/drivers/usb/Makefile
linux-2.6.x/drivers/ide/ide.c
user/microwin/src/fonts/X6x13.c
user/microwin/src/demos/nxroach/Makefile
user/microwin/src/demos/nanox/nxterm.c
user/microwin/src/demos/nanox/nterm.c
user/microwin/src/demos/nxkbd/keynum.c
user/microwin/src/demos/nxkbd/keyctrl.c
user/microwin/src/demos/nxkbd/keyshft.c
user/microwin/src/Makefile.rules
user/microwin/src/drivers/kbd_ttyscan.c
user/microwin/src/drivers/scr_fb.c
user/microwin/src/drivers/mou_ser.c
user/ftpd/ftpcmd.c
user/ftpd/Makefile
出现的顺序可能不同,出现类似的画面,就应该没有问题。
三、进行内核配置(基本都是默认配置)
需要注意的是:
里面的每一步,都应该和界面的配置一致。
如果有后面make时,有什么error,最好回来仔细检查一下这些默认配置(这些网上找的)。
make
menuconfig
在Vendor/ProductSelection如下設定
在Kernel/Library/DefaultsSelection如下設定
最後選<
Yes>
存檔
Step6:
將SOPCBuilder設定檔system_0.ptf複製到/usr/local/src
Step7:
根據DE2硬體配置設定makefile
vendor_hwselectSYSPTF=/usr/local/src/system_0.ptf
最後會有選擇動作,分別選擇1(CPU_0),1(cfi_flash_0),2(sdram)。
---
Please
select
which
CPU
you
wish
to
build
kernel
against:
(1)
cpu_0
-
Class:
altera_nios2
Type:
f
Version:
7.071
Selection:
1
a
device
upload
to:
cfi_flash_0
altera_avalon_cfi_flash
Size:
4194304
bytes
execute
from:
sram_0
sram_16bit_512k
524288
(2)
sdram_0
altera_avalon_new_sdram_controller
8388608
(3)
epcs_controller
altera_avalon_epcs_flash_controller
2048
2
最後成功的結果如下所示
Summary
using
PTF:
/usr/local/src/system_0.ptf
CPU:
cpu_0
Device
Program
memory
Settings
written
/usr/local/src/uClinux-dist/linux-2.6.x/arch/nios2nommu/hardware.mk
make[3]:
Leaving
directory
`/usr/local/src/uClinux-dist/linux-2.6.x'
make[2]:
`/usr/local/src/uClinux-dist/vendors/Altera/nios2nommu'
make[1]:
`/usr/local/src/uClinux-dist/vendors'
Step8:
建立romfs資料夾,過程會有錯誤訊息,可忽略。
romfs
Step9:
編譯μClinux核心
make
Step10:
產生image
makelinuximage
最後會在/usr/local/src/uClinux-dist/linux-2.6.x/arch/nios2nommu/boot/下找到zImage
注意:
zImage文件是make时,就已经产生,那个只是一个初步的,没有bootloader的文件,如果你想使你的uClinux在硬件上运行,必须进行makelinuximage这条命令,从而加上bootloader。
四:
将uClinux写入硬件
1、把你的.ptf文件对应的.sof文件和生成的镜像文件zImage一起放在\altera\72\nios2eds\examples下。
2、启动altera的commandshell。
开始->
程序->
altera->
nios2EDS->
mandshell
3、先进行硬件配置(注意必须先在quartus中把.sof文件烧进去)
[SOPC
Builder]$
nios2-configure-sof
DE2_NIOS.sof
执行结果:
Searching
for
SOF
file:
in
.
Info:
*******************************************************************
Running
Quartus
II
Programmer
Command:
quartus_pgm
--no_banner
--mode=jtag
-o
p;
Using
programming
cable
"
USB-Blaster
[USB-0]"
Started
Programmer
operation
at
Mon
Jun
09
03:
01:
45
2008
Configuring
index
1
contains
JTAG
ID
code
0x020B40DD
Configuration
succeeded
--
device(s)
configured
Successfully
performed
operation(s)
Ended
46
was
successful.
0
errors,
warnings
Allocated
54
megabytes
of
during
processing
Processing
ended:
Elapsed
time:
00:
02
4、把zImage下到sdram里面
nios2-download-gzImage
执行的结果:
1,
instance
0x00
Pausing
target
processor:
OK
Initializing
cache
(if
present)
Downloaded
1197KB
14.4s
(83.1KB/s)
Verified
Starting
processor
address
0x00D00000
5、启动uClinux
nios2-terminal
Uncompressing
Linux
Ok,
booting
kernel.
Linux
2.6.19-uc1
(root@localhost.localdomain)
(gcc
3.4.6)
#2
PR
EMPT
Sun
8
23:
28:
30
CST
uClinux/Nios
II
Altera
Nios
support
(C)
2004
Microtronix
Datacom
Ltd.
Built
zonelists.
Total
pages:
2032
Kernel
command
line:
PID
hash
table
entries:
32
(order:
5,
128
bytes)
Dentry
1024
0,
4096
Inode-cache
Memory
available:
5956k/8192k
RAM,
0k/0k
ROM
(1465k
code,
680k
data)
Mount-cache
512
NET:
Registered
protocol
family
16
IP
route
TCP
established
bind
TCP:
Hash
tables
configured
(established
1024)
reno
registered
io
scheduler
noop
deadline
registered
(default)
Serial:
UART
driver
$Revision:
1.3
$
ttyJ0
MMIO
0x806810f0
(irq
=
1)
is
jtag_uart
cubic
17
Freeing
unused
memory:
572k
freed
(0x97a000
0xa08000)
Shell
invoked
run
/etc/rc
hostname
uClinux
mount
-t
proc
/proc
sysfs
/sys
usbfs
none
/proc/bus/usb
mount:
Mounting
on
/proc/bus/usb
failed:
No
such
or
directory
mkdir
/var/tmp
/var/log
/var/run
/var/lock
/var/empty
ifconfig
lo
127.0.0.1
add
-net
127.0.0.0
netmask
255.0.0.0
lo
cat
/etc/motd
Welcome
to
____
_
_
/
__|
||_|
_|
||
\|
|\
\/
|_|
|__|
|/
\
___\____|_||_|_|
|_|\____|\_/\_/
|
|_|
For
further
information
check:
http:
//www.uclinux.org/
Execution
Finished,
Exiting
Sash
shell
(version
1.1.1)
/>
如果你看到上面的结果,表明你的uClinux移植成功了。
但是反映在硬件上的效果不明显,这个要看你的具体的linux应用程序了。