自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (8)
  • 收藏
  • 关注

原创 从零开始之驱动开发、linux驱动(七十一、电容触摸屏驱动)

一、电容式触摸屏检测原理基本原理是利用充电时间检测电容大小,从而通过检测出电容值的变化来获知触摸信号。电容屏的最上层是玻璃(不会像电阻屏那样形变),核心层部分也是由ITO材料构成的,这些导电材料在屏幕里构成了人眼看不见的静电网,静电网由多行X轴电极和多列Y轴电极构成,两个电极之间会形成电容。触摸屏工作时,X轴电极发出AC交流信号,而交流信号能穿过电容,即通过Y轴能感应出该信号,当交流电穿越时电...

2019-05-08 22:58:28 7553 6

原创 从零开始之应用发开、linux应用(三、应用调试之打印错误)

使用gdb调试,可以发现一些我们理解错误的逻辑问题,一般情况下我都是使用gdb进行调试的。但有时我们的应用程序很大,我们不知道哪里出的问题,即gdb调试不知道在哪里打断点(当然也可以单步或者自己定几个断点),这个时候就需要有别的方法来找到出错的大概位置。假设我们在程序中,对为初始化的指针赋值。或者对已经释放的内存进行了使用,很容易导致段错误。这里我以一个简单的例子为例来说明。...

2019-05-06 21:19:40 1555

原创 从零开始之应用发开、linux应用(二、应用调试之gdb)

Linux中包含一个很强大的调试工具GDB(GNU Debuger),可以用它来调试C和C++程序。什么是GDB?GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。与Window下的IDE不同,GDB是纯命令行执行的,并没有图形界面方法。问题:既然windows下有对用户友好的图形界面的调试工具了。那么为什么我们还需要回到命令行的模式呢?如果我们是在UNIX平台...

2019-05-05 22:01:54 1944

原创 从零开始之应用发开、linux应用(一、应用调试之strace)

strace是个功能强大的Linux调试分析诊断工具,可用于跟踪程序执行时进程系统调用(system call)和所接收的信号,尤其是针对源码不可读或源码无法再编译的程序。 在Linux系统中,用户程序运行在一个沙箱(sandbox)里,用户进程不能直接访问计算机硬件设备。当进程需要访问硬件设备(如读取磁盘文件或接收网络数据等)时,必须由用户态模式切换至内核态模式,通过系统调用访问...

2019-05-02 22:15:26 2056

原创 从零开始之驱动开发、linux驱动(七十、4.19内核nfs挂载只读问题的延伸)

之前移植的3.16.57版本的内核,使用2018年7月的busybox自己构建的这个根文件系统。使用3.16.57版本的内核用nfs挂载,这个根文件系统是一个可读可写的内核。但后面为了学习设备树,移植了4.19版本的内核,发现文件系统成了只读的文件系统。开始是怀疑我pc上了nfs服务器那里设置的有问题,后面用3.16.57版本内核验证了发现是ok的。那么只能怀疑4....

2019-05-02 21:32:35 1130

原创 从零开始之驱动发开、linux驱动(六十九、内核调试篇--内核卡死分析)

内核卡死有很多种可能,驱动程序因为逻辑问题,出现死循环 共享资源出现死锁 系统跑飞等一般情况下,系统跑飞内核会打印Oops信息。有了Oops信息,我们就可以通过上一节的方法来推断出出错位置。而死锁或者驱动程序死循环并不会打印Oops信息。这个时候需要我们自己打印出来,出错位置的寄存器( r0 ~ r15等)信息来反推出出错位置。因为这个时候卡住的位置基本已经是...

2019-05-01 19:43:50 1486

原创 从零开始之驱动发开、linux驱动(六十八、内核调试篇--Oops解析)

什么是Oops?从语言学的角度说,Oops应该是一个拟声词。当出了点小事故,或者做了比较尴尬的事之后,你可以说"Oops",翻译成中国话就叫做“哎呦”。“哎呦,对不起,对不起,我真不是故意打碎您的杯子的”。看,Oops就是这个意思。在Linux内核开发中的Oops是什么呢?其实,它和上面的解释也没什么本质的差别,只不过说话的主角变成了Linux。当某些比较致命的问题出现时,我们的Linux...

2019-05-01 15:42:15 1620

原创 从零开始之驱动发开、linux驱动(六十七、内核调试篇--printk使用)

printk的使用我们在内核,驱动调试的时候使用的非常多比如前面在调试usb驱动的时候#include <linux/init.h>#include <linux/usb/input.h>#include <linux/hid.h>static int usb_simple_probe(struct usb_interface *intf,...

2019-05-01 12:25:16 2650

USB_HID的两篇官方文档

Device Class Definition for Human interface Devices和 HID Usage Tables两篇官方文章,保存起来,已被更换电脑后用

2019-01-10

read-copy-update

linux锁机制的经典文档,read - copy - update。来自linux社区。

2018-09-25

输入子系统编程模板

尴尬,我自己的某个博客要用。这个东西我不想设置分数的,结果不能为0分。

2018-07-29

51单片机移植的ucosii嵌入式操作系统

对ucosii中不必要的内容进行了裁剪。因为51单片机的idata很小,这份代码用了51单片内部的idata作为当前运行任务的任务栈,其它没被运行的任务的栈则被放置在内存较大的xdata区。但因为51单片机的汇编语句少,简单,可以作为其他处理器移植ucosii的模版和参考,同时也是学习51单片机递增以及高级应用的实例。

2018-07-22

基于51单片机移植的ucosii的代码

对ucosii中不必要的内容进行了裁剪。这份代码用了51单片内部的idata作为任务栈,因为51单片机的idata很小,所以这份代码可以运行的任务数量比较少。但因为51单片机的汇编语句少,简单,可以作为其他处理器移植ucosii的模版和参考。

2018-07-22

基于51单片机写的一个多任务切换的简易OS

里面代码是本人亲自手写的一个基于51单片机的多任务切换代码,核心代码只有不到200行,可以从代码层面方便单片机开发者了解任务切换的原理和使用,里面没有使用任何复杂的算法。

2018-07-22

linux0.11源代码

里面包含有linux0.11版本的原版代码和 赵炯博士对里面所有代码的注释。

2018-07-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除