暂时未有相关云产品技术能力~
高级软件开发工程师,擅长Linux/Android驱动,Android系统等开发。
对于需要UI的产品来说,都会接触到各种各样的显示接口。接下来的几篇文章我们来整理一下常用的显示接口。
前面《Linux驱动分析之RTC框架》分析了RTC的基本框架,接下来拿个RTC驱动实例来分析一下。
当Linux内核启动时,它会从RTC中读取时间与日期,作为基准值。然后通过软件来维护系统时间和日期。Linux系统中提供了RTC核心层,对于驱动开发者而言,操作起来就变得很简单了。我们来看看整体框架。
OpenWRT教程
OpenWRT教程
OpenWRT教程
OpenWRT教程
OpenWRT教程
OpenWRT教程
OpenWRT教程
OpenWRT教程
OpenWRT教程
OpenWRT教程
我们买来的路由器在浏览器输入192.168.1.1(有些是其他地址)就能进入一个web的配置界面。OpenWRT也能添加默认的web界面。OpenWRT的web界面是使用LuCI来构造的。(LuCI自行百度)
OpenWRT教程
OpenWRT教程
Linux设备驱动基本概念
sizeof和strlen函数基本在所有公司的嵌入式软件笔试题中都会出现。反正我是遇到了好几次。虽然很多人都会用,但是又很经常会出错,这是因为很多人没有好好的去总结。好了,废话不多说,进入今天的主题。
对于Linux网络编程,有很多坑需要我们去踩。在这个时候,我们才会知道理论知识的重要性。无论是哪种语言,网络编程都可以写成厚厚的一本书。举个例子,比如“当网络断掉,我们调用write去往socket中写入数据,为什么返回正常写入呢?”。所以有空多看看《TCP/IP详解》,《UNIX网络编程》等经典书籍来补充网络知识。
[DTS]设备树实践
[DTS]设备树语法
在Linux3.x之前的内核源码中,存在大量对板级细节信息描述的代码。这些代码充斥在/arch/arm/plat-xxx和/arch/arm/mach-xxx目录。为了解决这个问题而引入设备树。
字符设备驱动基础知识
Linux驱动之I2C控制器驱动
Linux驱动之I2C驱动架构
printf缓冲区刷新问题
前面我们对SPI控制器驱动进行了分析,接下来来分析SPI设备驱动。我们以DS1302驱动作为分析对象。DS1302是一款RTC芯片,估计很多人在学单片机时用到过。RTC芯片算是比较简单的,也方便分析理解。
之前对SPI驱动的整体架构做了介绍,现在来分析具体的驱动程序。之前说过,SPI驱动分为设备驱动和控制器驱动。先来分析控制器驱动。我们以RockChip的控制器来作为分析。
Linux驱动分析之SPI驱动架构
下面的代码分析主要都在注释中,会按照驱动中函数的执行顺序分析。
信号可以理解为软件中断,是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是差不多的。信号是异步的,一个进程不必通过任何操作来等待信号的到达。信号可以直接进行用户空间进程和内核进程之间的交互,内核进程也可以利用它来通知用户空间进程发生了哪些系统事件。
做应用开发的人,经常需要去封装一些接口,或者去实现一些复杂的功能。但是这些功能接口实现不仅费时,而且还不一定能保证稳定性。这也是导致很多人喜欢使用开源库的原因之一。如果满足需求,确实没必要"重复造轮子"。接下来我们推荐一些比较常用的开源库。
之前对Uart驱动的整体架构做了介绍,现在来分析具体的驱动程序。我们以NXP 的 IMX6来进行分析。
UART设备驱动可以使用tty驱动的框架来实现,但是因为串口之间有共性,所以Linux在tty接口上封装了一层(serial core)。后面我们再拿一篇文章来解释tty驱动,tty其实就是各种终端设备,串口其实也是终端设备。
目前C语言被应用得最多的估计就是嵌入式了,在学校学习完C语言,考完等级考试之后,可能就会觉得自己的C语言掌握的还可以了。但这其实只能算入门,像结构体,指针等内容还有很多东西需要去深究,还有GNU的一些补充语法。接下来,我们来探讨一下如何提升!
中断在驱动中是非常常用的,无论是外部的GPIO中断,还是SPI,I2C等发送或接收中断,都是必不可少的。所以今天来看看Linux中的中断处理。
程序崩溃往往是最不好调试的,如果是很容易复现的现象,可能我们还可以比较容易分析出问题所在。但是对于那种需要几天,或者在某种特殊条件下才能触发的现象。我们总不能一直守着,所以这个时候就需要系统帮我们把崩溃的一些信息记录下来,也就是接下来要提到的coredump。
前面我们了解了LCD的基本架构《Linux驱动分析之LCD驱动架构》,接下来我们拿个具体的实例来分析分析。这样可以了解其大概是如何使用和工作的。
在Linux设备中,LCD显示采用了帧缓冲(framebuffer)技术,所以LCD驱动也叫Framebuffer驱动,所以LCD驱动框架就是围绕帧缓冲展开工作。帧缓冲(framebuffer)是Linux系统为显示设备提供的一个接口,它将显示缓冲区抽象出来,屏蔽图像硬件的底层差异,允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。对于帧缓冲设备而言,只要在显示缓冲区中与显示点对应的区域写入颜色值,对应的颜色会自动在屏幕上显示。帧缓冲为标准字符设备, 主设备号为29,对应于/dev/fbn。
最近有一些朋友问现在该不该学习鸿蒙系统,如果不学是不是会落伍了啊?今天跟大家说说我的看法!
前面两篇《CMake实战(一)》,《CMake实战(二)》,主要是介绍单目录和多目录的编译,接下来看一下自定义编译选项和交叉编译。
CMake和Autotools一样,都是项目构建工具。可以简单理解为,帮助我们生成Makefile,方便编译。
经过前面两篇《BLE基础知识(一)》《BLE基础知识(二)》之后,我们对BLE有了基本的了解。我们平时用到比较多的GATT了。接着上篇来继续看看!!
上一篇《BLE基础知识(一)》聊到GAP,接下来继续来聊聊ATT, GATT等内容,这些在BLE中应用还是比较多的。
前面通过《蓝牙基础知识(一)》和《蓝牙基础知识(二)》两篇,我们了解了一些蓝牙的基本概念。之前说过蓝牙分为BR/EDR和BLE,接下来,我们先来看看BLE的内容。
接着上一篇《蓝牙基础知识(一)》,我们继续看看蓝牙的更多的内容。
最近刚好一直在研究蓝牙相关的内容,所以想来和大家一起分享。首先我们依然以基础概念开始,因为一头扎进代码,只会让你不知所措!
现在的USB Type-C已经被广泛使用,移动设备基本都是使用Type-C。它主要是用于快充和作为音频接口。最近欧盟还要求电子设备统一使用Type-C接口,来防止浪费。接下来我们来简单了解这个接口。
很多初入职场的小伙伴都会纠结于是选择驱动开发,还是应用开发。今天我们就来聊聊,希望能给初入职场的你带来一点点的帮助。这里所说的主要是带操作系统(Linux或Android)的开发,因为像单片机,我们比较少区分驱动开发和应用开发。
SPI(Serial Peripheral Interface)是 Motorola 公司推出的一种同步串行接口技术,是一种高速的,全双工,同步的通信总线。