嵌入式Linux相关
嵌入式Linux产品开发流程
硬件设计
-->Bootloader移植(Uboot/Redboot, Redboot较为复杂,自身即为一个系统)
-->内核移植【最小系统:网络 串口 根文件系统】
-->网络协议栈 驱动程序
-->应用程序开发(QT图形 网络应用)
网络应用程序开发:
a)协议:Http Wap Smpp PPPoe
b)SSL
c)GPRS GSM
-->功能测试 性能测试 系统集成测试 实验局 发布
一、交叉工具链
gcc编译的软件,只能在x86上面运行。需要在arm或mips上运行,需要交叉工具。
交叉开发
宿主机 目标机,两者不是一种体系结构
在宿主机上产生可以在目标机上运行的软件的工具
一套工具称之为交叉工具链
安装(ubuntu10.04):
export $PATH
1)解压工具链:tar xvzf arm-linux-gcc-4.3.2.tar.gz -C /
2)修改/etc/bash.bashrc,添加
exprot PATH=/usr/local/arm/4.3.2/bin:$PATH
3)重新启动
使用工具链,最常用三个命令
1)arm-linux-gcc
arm-linux-gcc hello.c -o hello
arm-linux-gcc -g hello.c -o hello===>反汇编时 汇编语言和C语言同时出现 -g==gdb
2)arm-linux-objdump
arm-linux-objdump -D -S hello (输出到文件则加上>log)
3)arm-linux-readelf
a)arm-linux-readelf -a hello (-a = all)
主要看elf头,可以看到适用体系结构,大小端【程序跑不起来 先检查大小端问题】
b)arm-linux-readelf -d hello (-d dynamic)
查看共享库信息 so文件
如果编译时没有共享库,可以将该库拷贝过来,或是:
编译时用arm-linux-gcc -static hello.c -o hello.o,此时 通过-d 查看elf不会有共享库信息
二、嵌入式Linux内核制作
Bootloader Boot parameters--kernel RootFilesystem
make distclean
make menuconfig ARCH=arm
make uImage ARCH=arm CROSS_COMPILE=arm-linux-
三、根文件系统制作
根:第一个的意思
四、Linux文件系统介绍