Linux内核学习之五--嵌入式Linux系统构建

2019-07-12 17:27发布

嵌入式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文件系统介绍