嵌入式系统制作

来源:互联网 发布:网络教学学费 编辑:程序博客网 时间:2024/06/02 23:30
arm体系嵌入式系统制作重点分为三个部分
1.u-boot制作
2.kernel制作
3.cramfs制作
首先
boot 位于nand的0-40000区间
kernel位于nand的40000-40 0000区间
rootfs_cramfs位于40 0000-800 0000区间
rootfs_ubifs位于800 0000-1000 0000区间
-----------------------------u-boot制作---------------------------------------------------
    boot负责在运行操作系统之前进行初始化,处理器初始化,启动设备初始化,然后将kernel,从储存的位置读取到运行位置,然后运行kernel
    1. cd /opt/real6410   
    2. ls /mnt/hgfs/ESD1203/Real6410开发板最新发布光盘/linux/linux-source/s3c-u-boot-1.1.6-Real6410.tar.gz2
    3.tar xjvf  /mnt/hgfs/ESD1203/Real6410开发板最新发布光盘/linux/linux-source/s3c-u-boot-1.1.6-Real6410.tar.gz2
    4.cd s3c-u-boot-1.1.6-Real6410       #进入解压之后得到的u-boot源代码
    5. ./make_nand_image                      制作直接可写入nand的映像
    6. ./make_mmc_image                       将镜像写入sd卡,从而启动初始化操作
    1.nand flash,逻辑地址0x0000 00000 ,物理地址0x2000 0000--0x2800 0000
    2.arm上电后产生一个复位异常,在内存的0x0000 0000位置
    3.nand flash将4k的内容拷到0x0c00 0000
    4.0x0c00 0000-》0x0000 0000进行映射
    uboot有4k的汇编阶段 接下来是C启动阶段
        思考:u-boot下有哪些文件夹,分别有什么作用?
-----------------------------kernel制作---------------------------------------------------
    1,cd /opt/real6410
2,ls /mnt/hgfs/ESD1203/Real6410开发板最最新发布光盘/linux/linux-source/s3c-linux-2.6.28.6-Real6410.tar.bz2
3,tar xjvf /mnt/hgfs/ESD1203/Real6410开发板最最新发布光盘/linux/linux-source/s3c-linux-2.6.28.6-Real6410.tar.bz2
4,cd s3c-linux-2.6.28-Real6410
5,make  menuconfig
6,make
7,make clean
8,make mrproper
-----------------------------rootfs_cramfs-----------------------------------------------
        rootfs与存储分区
1,有存储空间(一个flash的分区)      # rootfs_cramfs位于400 0000-800 0000
2,有一些文件系统的数据(文件系统类型的格式)        #
3,linux里面使用,(mount  -t 文件系统类型   分区设备节点   挂载的目录)
4,cd /opt/real6410
5,tar xjvf  /mnt/hgfs/ESD1203/Real6410开发板最最新发布光盘/linux/linux-source/root_mkfs.tar.bz2
6,mv root_mkfsrootfs_cramfs         #得到目标文件系通过
7,cd  rootfs_cramfs                             #进入该目录
8,执行命令                                            
mknod  dev/console  c 5 1            #在dev下创建/console    供挂载
mknod dev/null c 1 3                    #在dev下创建null节点
cd ..                                                            
mkcramfs   rootfs_cramfs   rootfs.cramfs        #制作成写入nandflash的文件系统
9,cd /opt/real6410                                                #
10,mkdir  rootfs_ubifs                                                #创建ubitfs文件系统
11,cd rootfs_ubifs                            
12,ls /mnt/hgfs/ESD1203/Real6410开发板最最新发布光盘/linux/linux-image/qtopia.tar.gz    
13,tar xzvf  /mnt/hgfs/ESD1203/Real6410开发板最最新发布光盘/linux/linux-image/qtopia.tar.gz
14,tar czvf  qtopia.tar.gz  *                            #压缩所有文件得到ubifs文件系统

      ¥¥¥¥¥¥自己制作的crammfs
    1,cd /opt/real6410 
2,ls /mnt/hgfs/ESD1203/setup/linux/busybox-1.20.1.tar.bz2             #解压缩gnu工具包
3,tar xjvf /mnt/hgfs/ESD1203/setup/linux/busybox-1.20.1.tar.bz2     #||||||||||
4,cd busybox-1.20.1/                                                                        #进入菜单选项
5,make menuconfig                                                                          #\\\||||\  然后make
6,cd ../rootfs_me                                                                              #进入rootfs_me 
7,mkdir   etc dev proc sys lib var tmp opt mnt                                  #创建文件夹
8,cd dev                                                                                           #进入dev设置节点
mknod  console  c 5 1
mknod  null  c 1 3
9,cd ../lib                                                                                          #复制所需要的库
cp -rf /opt/real6410/arm-2008q3/arm-none-linux-gnueabi/libc/armv4t/lib/* ./cd busybox-1.20.1/
10,cd ../etc                                                                                       #复制配置文件
cp -rf /opt/real6410/busybox-1.20.1/examples/bootfloppy/etc/*  ./
11,cp   /opt/real6410/rootfs_ubifs/etc/init.d/rcS ./init.d/rcS                #复制初始化文件
12,cp   /opt/real6410/rootfs_ubifs/etc/init.d/ififconfig-eth0  ./init.d/ifconfig-eth0     #复制依赖的文件
13,cp   /opt/real6410/rootfs_ubifs/etc/eth0-setting  ./                        #依赖        
    cp   /opt/real6410/rootfs_ubifs/etc/mdev.conf  ./                            #依赖
14,vi    ./init.d/rcS
删除最后
/bin/qtopia &                    #修改初始化的脚本
echo ""
echo "Starting Qtopia, please waiting..."
添加自己的
echo "ESD1203  make rootfs..."
echo "enter rootfs..."
echo "no app running..."
15,cd ..
16,mkcramfs   rootfs_me   rootfs.cramfsme            #使用工具打包,完成cram制作,

原创粉丝点击