链接:https://pan.baidu.com/s/1-u7GvgM0TLuiy9z7LYQ80Q?pwd=1688
提取码:1688
上午:嵌入式系统概述??
下午:嵌入式系统的搭建
教学内容:
1、什么是嵌入式系统
以应用为中心,以计算机为基础,软硬件可裁剪,适用需求,对性能、要求、成本、体积、功耗等有严格要求。
2、制作boot\kernel\yaffs三个文件的流程:
一、安装交叉编译器
# cd /home/linux_platform2.6.34/
安装以下交叉编译工具:
?2.95.3: 用于编译vivi
4.3.2:? 用于编译u-boot
#mkdir? –p? /usr/local/arm
#tar? zxvf? arm-linux-gcc-2.95.3.tar.gz? –C? /usr/local/arm
#tar? zxvf? arm-linux-gcc-4.3.2.tar.gz?? –C? /usr/local/arm
??? 其中4.3.2需要假加入环境变量(此项工作前面应该已经做过)
??? #vi? ~/.bashrc??????? //对当前所有的起作用
??? #export? PATH=/usr/local/arm/4.3.2/bin:$PATH
??
二、配置编译bootloader-------vivi
? #tar? jxvf? vivi-unsp.tar.bz2
? #cd ??? ?vivi-unsp
? #make? distclean??? //清除所有中间信息
? #cp??? unsp2440.config? .config?? ? //裁剪过程
??????? #make? menuconfig??????
注意:如果显示没有ncurses图库,自己安装ncurses.
进入输入:./configure ;? make;?? make install? ;????
由于采用的是配置好的脚本,因此不用做任何修改,直接保存退出即可
#make
在当前路径下会生成 vivi 的二进制文件。
??? #cp? vivi? /home/linux_platform/image/my_vivi? ???
??? 将生成的vivi镜像拷贝到image目录下,并改名为my_vivi
??
三、配置编译u-boot
#tar? jxvf? u-boot_unsp.tar.bz2
??? #cd? u-boot_unsp
??? #make distclean
??? #make unsp2440_config?? ??? //makefile中的标号 unsp2440_config
#make
在当前目录下会生成一个u-boot.bin的文件
将生成的u-boot镜像拷贝到image目录下,并改名为my_u-boot.bin,
cp u-boot.bin /home/linux_platform/image/my_u-boot.bin
将tools目录下生成的mkimage文件拷贝到/bin目录中,后面用于制作u-boot所需格式的内核
#cp? u-boot_unsp/tools/mkimage? /bin
四、配置编译内核
#tar? jxvf? linux-unsp-2.6.34.tar.bz2
??? #cd ??? ?linux-2.6.34
#make distclean
??? #cp ?unsp_config .config
#make menuconfig
跟vivi类似,由于采用的是配置好的脚本,因此不用做任何修改,直接保存退出即可。
#make zImage
在/arch/arm/boot下会生成zImage文件
在此目录下执行以下命令:
#mkimage? -n?'linux-2.6.34'? -A arm? -O linux? -T kernel? -C none? -a 0x30008000? -e 0x30008000? -d zImage ?uImage
会在当前路径下生成uImage这个文件
#cp? /arch/arm/boot/zImage????? /home/linux_platform/image/my_zImage
#cp? /arch/arm/boot/uImage? /home/linux_platform/image/my_uImage
将生成的zImage镜像拷贝到image下,并改名为my_zImage (vivi启动所需的内核)
将生成的uImage镜像拷贝到image下,并改名为my_uImage (u-boot启动所需的内核)
??
五、根文件系统的制作(cramfs、yaffs)
cramfs格式的文件
cramfs格式的根文件系统为只读文件系统,大小压缩了一倍。cramfs是可逆的文件系统,即我们可以将其压成镜像,也可以将其从镜像中解压出来。
#tar zxvf ?cramfs-1.1.tar.gz??? ? //编译cramfs根文件系统制作工具
? #cd? cramfs-1.1
? #make
会在当前路径下编译得到两个工具:mkcramfs? cramfsck
#cp? mkcramfs? cramfsck? /bin???? //将两个工具拷贝到根目录的/bin下
其中mkcramfs用来生成cramfs格式的根文件系统
cramfsck用来将已生成的根文件系统释放为文件夹
???
?? 2)yaffs格式的文件
??????? yaffs格式的根文件系统是可读可写的文件系统,没有经过压缩,是不可逆的。
??????? #tar? zxvf yaffs2.tar.gz
??????? #cd? yaffs2/utils
??????? #make ????????????????????? ??? //会产生mkyaffsimage
??????? #cp mkyaffsimage /bin? //将生成的工具拷贝到bin目录下
? #tar? jxvf? rootfs_noGUI_34.tar.gz2??????? //解压不带QT库及开源工程的根文件系统
? # mkcramfs ?rootfs_noGUI_34/ ?rootfs_noGUI.cramfs?
//将刚才解压出来的根文件系统制作成cramfs格式的镜像
? #mkyaffsimage ?rootfs_noGUI_34/ ??rootfs_noGUI.yaffs
? #cp? rootfs_noGUI.cramfs? /home/linux_platform/image/
#cp? rootfs_noGUI.yaffs? /home/linux_platform/image/
六、生成带GUI的根文件系统
? #tar ?jxvf ??rootfs_GUI_34.tar.bz2
? # mkcramfs ?rootfs_34/ ?rootfs_GUI.cramfs????
//制作带GUI界面的根文件系统
#mkyaffsimage ?rootfs_34/ ??rootfs_GUI.yaffs
? #cp rootfs_GUI.cramfs? /home/linux_platform/image/
#cp rootfs_GUI.yaffs? /home/linux_platform/image/