嵌入式的设备驱动层
来源:互联网 发布:淘宝联盟不能自推自买 编辑:程序博客网 时间:2024/04/28 08:33
一.嵌入式的软件分类按照软件使用的资源以及所要承担的任务可以分成三种:系统软件。应用软件。支撑软件
其中系统软件主要是系统硬件设备的驱动程序,嵌入式操作系统,还有各种中间件
支撑软件是辅助开发的工具软件,一般是用于软件开发的阶段。
二.嵌入式的设备驱动层是在硬件和操作系统中间的一层,他直接对系统的硬件进行管理和控制,并为上层提供驱动支持。
在嵌入式系统中这一层也叫做BSP层(板间支持包),它一般是针对某个特定的单板来设计的。所以在实际的开发过程中,通常是可以找到一个与自己硬件系统对应的一个演示版的BSP,在此基础上进行修改和完善。
BSP主要是包括Bootloader(引导加载程序)和设备驱动程序两方面的内容。
三.文件系统。包括根文件系统和建立于Flash内存设备之上文件系统。通常用ramdisk来作为rootfs。
问题
项目的根文件系统是挂载在哪里:
# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/hda2 16216016 5667* 9724600 37% / 根
/dev/hda1 101089 9321 8*9 10% /boot
none 63028 0 63028 0% /dev/shm
根文件系统是用什么文件?2.roofs这块内存区域是有bootload还是是由内核划分出来?
3.根文件系统系统位于那个存储介质上?
6内核启动和加载根文件系统的顺序关系,内核是在什么时候挂载根文件系统并开始访问根文件系统下的文件
4
5在Linux文件系统中,EXT2文件系统、虚拟文件系统、/proc文件系统是三个具有代表性的文件系统。
关于第三个问题,你可以看看
kernel_source/usr/*
init/initramfs.c
在初始化的时候内核会加载由usr/gen_init_cpio
生成的类似于ram disk的文件系统
ramdisk一个作用就是用来解决boot过程中mount根文件系统的“先有鸡还是先有蛋”的问题的。
一般来说,根文件系统在形形色色的存储设备上,不同的设备又要不同的硬件厂商的驱动,比如intel的南桥自然需要intel的ide/sata驱动,VIA的南桥需要VIA的ide/sata驱动,根文件系统也有不同的文件系统的可能,比如ubuntu发行版可能一般用ext3,suse可能就不是了,不同的文件系统也需要不同的文件系统模块;假如把所有驱动/模块都编译进内核,那自然没问题,但是这样就违背了“内核”的精神或本质,所以一般来说驱动/模块都驻留在根文件系统本身上/lib/modules/xxx,那么“鸡蛋”问题就来了,现在要mount根文件系统却需要根文件系统上的模块文件,怎么办?于是,就想出ramdisk,内核总是能安装ramdisk的,然后把所有可能需要的驱动/模块都放在ramdisk上,首先,让内核将ramdisk当作根文件系统来安装,然后再用这个根文件系统上的驱动来安装真正的根文件系统,就将这个矛盾问题解决了
- 嵌入式的设备驱动层
- 嵌入式Linux设备驱动的大致流程
- 嵌入式linux设备驱动的一点感悟
- 设备驱动层
- 块设备驱动层
- 嵌入式linux FM25L256的驱动(应用层)程序
- 嵌入式linux字符设备驱动
- 嵌入式linux字符设备驱动
- 嵌入式 字符设备驱动编程
- ARM的嵌入式Linux移植体验之设备驱动
- 嵌入式Linux系统中I2C总线设备的驱动设计
- 嵌入式Linux系统中I2C总线设备的驱动设计
- 嵌入式linux下QT3/Embedded的输入设备驱动接口
- ARM的嵌入式Linux移植体验之设备驱动
- ARM的嵌入式Linux移植体验之设备驱动
- 嵌入式Linux下PCI设备驱动的设计与实现
- 嵌入式Linux设备驱动工作原理的研究
- ARM的嵌入式Linux移植体验之设备驱动
- Android中WebView的意义及用法
- O(N) 求1~N的逆元
- Java学习笔记 —— 17
- 民谣吉他价格的差别
- 所有ajax执行完且页面加载完判断--ajaxStop
- 嵌入式的设备驱动层
- A*算法详解(转)
- UIView拍照及存储/动态gif/调用邮件
- js 全选
- Oracle数据库操作3(OCI方式)
- 爬虫产品开发(2)——产品范围
- 翻译:将您的Flex组件从MXML迁移至ActionScript 3
- Java操作XML文件 dom4j 篇
- 【Openjudge】字符串最大跨距