这篇文章介绍如何在Vmware虚拟机上安装CentOS8操作系统,第一章节先介绍了CentOS的特点,第二章节介绍 CentOS操作系统下载,虚拟机下载安装,然后开始介绍操作系统的安装过程,配置过程。
说起IIC,搞单片机,嵌入式的那肯定是接触的比较多的。串口、IIC、SPI这3个协议在单片机阶段应该是用比较多的,很多的外设模块,芯片都是串口、IIC、SPI等协议与主控芯片进行通信,完成逻辑开发。 在Linux系统驱动层使用IIC其实本质上与单片机没什么差别的,最终反正是和芯片进行交互通信,本身IIC协议并不难,但是在Linux下为了标准化,加了很多框架导致理解上就觉得复杂,听起来xxx子系统就很神秘高大上,其实这是因为对Linux驱动框架不熟悉,只要把框架流程能梳理清楚,那么整体就变得简单了。
块设备主要为存储设备设计的框架。 在前面章节 里介绍了块设备驱动编写思路,并且利用内存模拟了硬件存储,完成了块设备驱动开发测试。这一篇文章将采用SD卡作为存储硬件,利用SPI协议与SD卡通信,完成块设备驱动开发测试。 SD卡可以更加形象的表示块设备开发过程,明白硬件如何交互,完成数据读写。
在Linux系统上主要有两个时间基准,一个数是系统时间和,一个是RTC 时间。 其中系统时间是系统运行时由定时器(滴答定时器)维护的时间,掉电不保存数据。
块设备驱动块是Linux下3大设备驱动框架之一,块设备主要是针对存储类型的设备设计的驱动,配合文件系统完成数据存储。在应用层的cp、cd、touch、vim、mount等等可以操作文件,可以操作目录的命令都会通过文件系统,通过块设备驱动完成对底层存储设备的访问,实现数据读取或者写入。
这篇文章会详细介绍WIFI驱动从哪里下载,下载下来如何修改进行编译安装测试,并交叉编译对应的WIFI工具,最终完成WIFI的基本使用,完成IP地址动态分配,热点连接,热点扫描、热点信息查看等等。
本篇文章要的做的事情是,移植一款USB WIFI芯片的驱动到嵌入式Linux环境下,让嵌入式开发板能够通过这款USB WIFI实现上网,说白了就是安装无线网卡驱动。
现在很多手机都支持红外线发送了,支持家电控制。红外线协议有很多,当前介绍的是NEC协议(红外线传输协议中的一种),也是常说的遥控器的协议。
linux下设备驱动都有一套标准的结构,字符设备,块设备,网络设备都是自己的一套框架。编写驱动只需要把内核的框架搞清楚,然后照着结构填入参数,注册进内核,在应用层就可以按照标准的形式调用了。 对于网络设备而言,主要目的就是网络数据的收发,编写驱动时将linux网络设备驱动里的接口与实际网卡硬件的操作接口对应上,应用层就可以操作网卡完成网络通信了。底层驱动里编写网卡驱动与单片机一样。
libjpeg是一个完全用C语言编写的库,包含了被广泛使用的JPEG解码、JPEG编码和其他的JPEG功能的实现。这个库由独立JPEG工作组维护。
在设备驱动程序或者内核模块中动态开辟内存,不是用malloc,而是kmalloc ,vmalloc,或者用get_free_pages直接申请页。释放内存用的是kfree,vfree,或free_pages.。
FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,可以非常方便我们开发字体显示相关的程序功能。它支持单色位图、反走样位图的渲染。
DMA(Direct Memory Access,直接内存存取) 是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。
Kmalloc分配的是连续的物理地址空间。如果需要连续的物理页,可以使用此函数,这是内核中内存分配的常用方式,也是大多数情况下应该使用的内存分配方式。
Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。
目前Linux下常用的声卡驱动程序主要有两种:OSS和ALSA。 ALSA和OSS最大的不同之处在于ALSA是由志愿者维护的自由项目,而OSS则是由公司提供的商业产品,因此在对硬件的适应程度上OSS要优于ALSA,它能够支持的声卡种类更多。ALSA虽然不及OSS运用得广泛,但却具有更加友好的编程接口,并且完全兼容于OSS,对应用程序员来讲无疑是一个更佳的选择。
介绍Linux下常用的网络操作命令,介绍Linux下网络框架,以ENC28J60网卡为例编写标准的网络设备驱动,完成网络连接。
块设备是与字符设备并列的概念,这两类设备在 Linux 中驱动的结构有较大差异,总体而言, 块设备驱动比字符设备驱动要复杂得多,在 I/O 操作上表现出极大的不同,缓冲、 I/O 调度、请求队列等都是与块设备驱动相关的概念。
Linux下串口也是一个标准驱动,在/dev下生成TTYxx节点。配置串口信息之后,可以通过标准文件的方式读写串口数据。
USB在个人电脑上往往具有多个接口,可以同时连接几个设备,如果接上一个有四个端口的USB HUB时,就可以再连上四个USB设备,以此类推。这篇文章介绍Linux下光谱仪驱动的编写,介绍USB传输协议。
USB 是连接计算机系统与外部设备的一种串口总线标准,也是一种输入输出接口的技术规范,被广泛地应用于个人电脑和移动设备等信息通讯产品,USB 就是简写,中文叫通用串行总线。我们知道总线是用来通信的,所以USB总线就是一个种通信协议,你的设备支持什么协议就得使用哪一种总线协议与之通信。比如: EEPROM支持IIC协议,那么我们就得使用IIC总线与之通信,而EEPROM设备在制造过程中也必须遵循IIC协议设计。
USB是连接计算机系统与外部设备的一种串口总线标准,也是一种输入输出接口的技术规范,被广泛地应用于个人电脑和移动设备等信息通讯产品,USB就是简写,中文叫通用串行总线。
现在USB设备使用越来越普及,但随着设备的增加,主板I/O档板上提供的2个USB接口明显不够用了。要想同时使用更多USB设备,一种方法是将主板上的USB插针进行扩展,另一种方法是通过USB HUB进行扩展。
Linux下对SPI做了框架封装,有一套标准的SPI子系统框架,这篇文章介绍SPI框架实现方式,完成SPI设备注册。
linux命令中的date和time等命令都是用来设置系统时间的,而hwclock命令是用来设置和读写RTC时间的。这篇文章介绍Linux下RTC驱动编写放,介绍框架、驱动编写安装测试。
每次Linux系统启动后在启动过程中会检测和挂载RTC驱动,在挂载后会自动从RTC芯片中读取时间并设置到系统时间中去。此后如果没有显式的通过命令去控制RTC的读写操作,系统将不会再从RTC中去获取或者同步设置时间。
一般嵌入式产品开发完毕之后都需要将系统代码固化到EMMC进行发布,这篇文章就介绍如何分区、如何制作文件系统,如何固化系统。
在tiny4412提供的内核下,LCD屏的平台设备名字和平台驱动名字不匹配也能驱动屏点亮,这篇文章分析LCD驱动的匹配流程,完成LCD初始化的过程。
在uboot中有一个 bootargs环境变量,这个参数就是传递数据给内核的。对tiny4412提供的内核,可以通过修改 bootargs 实现驱动不同的LCD屏。
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号