Chinaunix首页 | 论坛 | 博客
  • 博客访问: 187523
  • 博文数量: 54
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2018
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-31 23:14
文章存档

2014年(2)

2013年(52)

分类: 嵌入式

2013-07-23 20:35:05

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) |
给主人留下些什么吧!~~