1.硬件+软件(linux)
2.pc -----bios(引导程序)<初始化一些硬件:加载操作系统>-----win/linux..。。------(windows操作系统,文件管理在一个硬盘上,linux os文件管理是分开的)
3.开发板启动的流程:
arm开发板----uboot(引导程序)---------kernel---------文件系统
移植uboot:
uboot已经移植在nand中。
初始化一些硬件
加载内核(传递内核启动参数)
pri 打印环境变量
serverip ----网线与电脑相连----电脑那一段的ip(一致)
ipaddr ----- 开发板自己那端的ip
bootargs -----启动参数----主要为文件系统服务
bootcmd ----启动命令:告诉uboot在哪里去加载内核
setenv serverip 192.168.7.201&&setenv ipaddr 192.168.7.200 &&tftp 20008000 u-boot.bin&&nand erase 0 100000&&nand write 20008000 0 100000
//setenv bootargs root=nfs nfsroot=192.168.2.220:/root/2410/rootfs init=/linuxrc console=ttySAC0,115200 ip=192.168.2.200
// 末尾ip ---ipaddr 是一致的,前面一个ip是virtul mechion
setenv bootcmd tftp 20008000 zImage \; go 20008000
saveenv -----保存环境变量
下载内核之前:开发与电脑一定要ping通-----开发板ping电脑ip
移植kernel:
nand flash :
0x000000000000-0x000000100000 : "bootloader"
0x000000100000-0x000000400000 : "kernel"
0x000000400000-0x000001400000 : "rootfs"
0x000001400000-0x000010000000 : "usrfs"
如何把kernel烧写到nand中:
先把内核下载到内存中:tftp 20008000 zImage
擦除你要使用nand空间:nand erase 100000 300000 ------nand erase 起始地址 宽度
把kernel写到nand中:nand write 20008000 100000 300000 ------- nand write 内存地址 nand起始地址 宽度
setenv bootcmd nand read 20008000 100000 300000 \; go 20008000
boot 启动。
制作文件系统
nfs ---文件系统的挂载方式,作为开发的一种常用手段
setenv bootargs root=nfs nfsroot=192.168.7.220:/root/a8/rootfs init=/linuxrc console=ttySAC0,115200 ip=192.168.7.200
解压:文件系统
rootfs.ok.2013.6.6.bz2
tar -xvf rootfs.ok.2013.6.6.bz2 -----解压完成:多了一个rootfs 目录
ubuntu -----必须开启nfs服务
开启步骤:
1. vim /etc/exports 修改成 /root/a8/rootfs *(rw)
-----/root/a8/rootfs 解压后文件系统的绝对路径 ,由pwd命令获得
2./etc/init.d/portmap restart
3. /etc/init.d/nfs-kernel-server restart
如何使内核成功挂载nfs
视频内容:---
ifconfig
开发板要能ping用ubuntu
文件系统-----用busybox
交叉编译工具:pc 上开发的intel 80386程序 能在arm平台上跑
gcc 1.c ------a.out 在pc ubuntu 上跑
arm-linux-gcc 1.c ----a.out 在arm上跑
tar -xvf arm-linux-gcc-4.4.3.tar.bz2
-------- toolschain
两种方式运用交叉编译工具
1.绝对路径 /root/a8/toolschain/4.4.3/bin/arm-linux-gcc 1.c
2.移植
/root/a8/toolschain/4.4.3/bin添加到/etc/bash.bashrc:
最后一行 export PATH=$PATH:/root/a8/toolschain/4.4.3/bin
保存退出
source /etc/bash.bashrc
检测是否移植成功:
arm-linux-gcc -v
移植成功效果:onfigured with: /opt/FriendlyARM/mini2440/build-toolschain/working/src/gcc-4.4.3/configure --build=i386-build_redhat-linux-gnu --host=i386-build_redhat-linux-gnu --target=arm-none-linux-gnueabi --prefix=/opt/FriendlyARM/toolschain/4.4.3 --with-sysroot=/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi//sys-root --enable-languages=c,c++ --disable-multilib --with-arch=armv4t --with-cpu=arm920t --with-tune=arm920t --with-float=soft --with-pkgversion=ctng-1.6.1 --disable-sjlj-exceptions --enable-__cxa_atexit --with-gmp=/opt/FriendlyARM/toolschain/4.4.3 --with-mpfr=/opt/FriendlyARM/toolschain/4.4.3 --with-ppl=/opt/FriendlyARM/toolschain/4.4.3 --with-cloog=/opt/FriendlyARM/toolschain/4.4.3 --with-mpc=/opt/FriendlyARM/toolschain/4.4.3 --with-local-prefix=/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi//sys-root --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-c99 --enable-long-long --enable-target-optspace
Thread model: posix
gcc version 4.4.3 (ctng-1.6.1)
使用到工具:tftpd32.exe SecureCRT 6.0 VMware Workstation Farsight-10.10-virtulubuntu12.04.rar
arm-linux-gcc-4.4.3.tar.bz2 Notepad_6.1.6.exe
阅读(1048) | 评论(0) | 转发(2) |