系统移植 CPMS 最相近的系统,修修改改 使之能够运行新的板子上
驱动开发 开发硬件的驱动,让操作系统能够使用该硬件
低端嵌入式 遥控器 温湿度传感器 智能小车 — 单任务 无应用 裸数据存储
高端嵌入式 路由器 手机 平板 机器人 行车记录仪 监控摄像头 — 多任务 应用 文件
c lib就是对系统调用syscall的封装.
usr app ->c lib ->syscall - > os - > drv - >hardware
- OS发展史
60-70年代,市面上有几百款操作系统.
贝尔实验室: 有个工程师对 一套软件[文件系统软件]进行 修改, 增加了很多操作系统的功能. unix
B语言 ->C语言
unix - > 重写unix ->免费,收费,有版权
linus unix-> miniX -> linux linus’s minix
| 系统 | 收费 | 领域 | 安全性 | 实时性 |
|---|---|---|---|---|
| linux | 免费 开源 | 服务器领域-90% 嵌入式领域 -90% | 安全性:高 | 实时操作系统 |
| windows | 收费 闭源 | PC领域,个人电脑-90% | 安全性:差 | 非实时操作系统, 等空闲了再去做 |
| freeRTOS | 免费 | 单片机 | ||
| VxWorks | 收费 $1 | 军事领域 卫星 火星探测器 | 很安全 | 硬实时操作系统/RTOS,在制定的时间内,一定完成 |
嵌入式环境搭建
1)交叉编译工具的安装
代码要跑在 ARM板子上. gcc-x86 arm: arm-none-xxx-gcc
交叉环境: PC —串口/网口----开发板
串口: 速度慢 整个开发过程都用到
网口: 速度快 系统起来之后使用
2)tftp工具的使用
tftp: tftp, tiny[极小的] file transport protcal
ftp: 50KB
tftp: 1KB
适合在嵌入式上使用的ftp服务
3)nfs的使用
fs:file system
nfs: net file system
文件系统在远程的网上,你在电脑上就像访问本地文件一样访问.
1.安装服务器 sudo apt-get install nfs-kernel-server
2.服务器提供一个共享目录: /home/lsf/src/rootfs
修改服务器配置文件: sudo vi /etc/exports
重启服务器 sudo service nfs-kernel-server restart
3.客户端映射/连接/挂载 服务器 共享目录
三大件移植
PC: bios/UEFI -> windows -> 文件系统 [磁盘 ,里面有很多开机程序]
安卓: recovery -> android ->文件系统
嵌入式: u-boot -> linux ->文件系统
启动
bootloader --> OS --> 文件系统 --> 启动cpu 加载OS
每个磁盘都需要一份文件系统软件,来管理磁盘空间. 在格式化的时候安装的.
系统移植 让系统在一个新的板子上跑起来 就可以了.
系统:操作系统
移植:
嫁接,植物上的概念 一个物种的枝子接在另一个物种上.
移植,动物上的概念 对双方要求 相似度很高!!!
一个新的板子,如何寻找一个系统过来呢??? 移植
要找一个相似的 工作起来的板子. 如何认为两个板子相似呢>>>>: CPU一致, RAM最好相似 FLASH最好相同
系统移植的工作量: 由两个板子相似度决定的.
参考板从哪里来???:
从cpu原厂来, 每个cpu厂商在生产一款cpu的同时,会提供 一个 demo板,包括源码 文档 电路图 …