嵌入式Linux开发中的文件I/O是什么?
嵌入式linux开发中的文件I/O就是对外设进行文件抽象,也就是认为一切外部设备都是文件,所有对外设的访问都通过文件方式。多任务就是用一个CPU执行多个任务,这个任务叫做进程或线程。 I/O输入/输出(Input/Output),分为IO设备和IO接口两个部分。 在POSIX兼容的系统上,例如Linux系统,I/O操作可以有多种方式,比如DIO(Direct I/O),AIO(Asynchronous I/O 异步I/O),Memory-Mapped I/O(内存映设I/O)等,不同的I/O方式有不同的方式和性能,在不同的应用中可以按情况选择不同的I/O方式。 输入输出I/O流可以看成对字节或者包装后的字节的读取就是拿出来放进去双路切换;实现联动控制系统的弱电线路与被控设备的强电线路之间的转接、隔离,以防止强电窜入系统,保障系统的安全;
dtb是什么文件?怎么打开?
dtb是可以减少linux内核版本的数量的文件。
同一份linux 内核代码可以在多个板卡上运行,每个板卡可以使用自己的dtb文件。
1,在linux内核启动过程中会解析dtb文件,根据dtb文件中设备列表进行加注各个外设的驱动模块。
2,PC机在启动时会自动扫描外设,而在嵌入式中,linux内核启动过程中只是解析dtb文件,从而加载对应的模块。
3,编译linux内核时必须选择某外设模块,并且dtb中包括该外设的信息。在linux内核启动过程中才能自动加载该模块。dtb文件中外设列表,和在linux内核中使能各个外设驱动模块(设置*或M)有什么关系? 是否可以这么理解,要想一份linux kernel可以运行在多块板卡上,必须在linux kernel配置中包括所有这些板卡的driver 模块,这样在linux启动过程中才能根据dtb 中的列表进行加载模块。因为PC机基本就是暗指X86,这样X86架构上外设都是基于PCI或者PCIE总线,这类总线可以在启动的时候,动态扫描。嵌入式里面,ARM和PowerPC, SOC 主要的设备控制器都是基于soc总线,其不像pci/pcie总线可以动态的扫描。所以需要dtb。
modem与onu的区别?
modem指调制解调器,是计算机联网中的一个非常重要的设备。调制解调器是Linux最简单的外设类型之一。
而onu指光网络单元,它一般分为有源光网络单元和无源光网络单元。ONU具有两点作用:对OLT发送的广播进行选择性接收,若需要接收该数据要对OLT进行接收响应;对用户的需要发送的以太网数据进行收集和缓存,按照被分配的发送窗口向OLT端发送该缓存数据。