
Linux/Android驱动开发
TedSmile
Android、人工智能、深度学习、人脸识别
展开
-
Android 基于sx8652的触摸屏驱动(gpio模拟spi)
由于S5PV210的SPI读数据出现读到的全是0x00,改用gpio模拟spi的方式调试触摸屏驱动,采用sx8652芯片。本驱动调试成功,但尚未考虑休眠唤醒等问题,更新中....../* * SX8652 based touchscreen and sensor driver * * This program is free software; you can redistribute原创 2012-12-13 10:58:03 · 3438 阅读 · 0 评论 -
Unable to handle kernel paging request at virtual address
问题:Unable to handle kernel paging request at virtual address 4020841c pgd = c490c000 [4020841c] *pgd=84451831, *pte=bf05859d, *ppte=00000000 Internal error: Oops: 17 [#1] PREEMPT SMP ARM M原创 2017-05-03 09:48:01 · 975 阅读 · 0 评论 -
android 内部sdcard出错处理errors=remount-ro改为errors=continue
android存储nand flash或者emmc一般会划分一个分区用作内部sdcard,系统启动会挂载该分区,一般挂载到/mnt/sdcard/,可读可写。当该分区出错时,出错处理是errors=remount-ro,也就是重新挂载成只读,这时便无法进行往sdcard写入操作。/dev/block/vold/179:1 /mnt/sdcard vfat rw,dirsync,nosuid,n原创 2017-02-23 10:28:45 · 6144 阅读 · 0 评论 -
Linux字符设备与块设备的区别与比较
Linux中I/O设备分为两类:块设备和字符设备。两种设备本身没有严格限制,但是,基于不同的功能进行了分类。(1) 字符设备:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反,此类设备支持按字节/字符来读写数据。举例来说,调制解调器是典型的字符设备。(2) 块设备:应用程序可以随机访问设备数据,程序可自行确定读取数据的位置。硬盘是典型的块设备,应用程序可以寻址磁盘上转载 2017-02-14 13:25:17 · 665 阅读 · 0 评论 -
A20 Sandisk EMMC更换成Samsung EMMC出现问题解决方法
最近将Sandisk EMMC SDIN7DP2-4G更换成Samsung EMMC KLM8G1WEMB-B031出现以下问题:1、烧写固件成功后,自动进入重烧写,如此循环。2、无法启动。 解决方法:1、emmc_clk加对地电容,加在靠近emmc端,20pf。2、打boot和kernel驱动补丁“update emmc drivers”。原创 2017-02-20 14:17:35 · 4117 阅读 · 7 评论 -
Android 外接USB转串口设备开发笔记(Android与单片机通过usb转串口通信)
本文以使用USB转串口芯片PL2303为例,经测试Android设备与外设通信ok。1、USB转串口驱动drivers/usb/serial/pl2303.cdrivers/usb/serial/pl2303.h驱动加载成功则当插入外设时会生成/dev/ttyUSB*设备节点,若如此节点应考虑驱动问题。2、上层应用,即读写串口,波特率设置等源码下载地址:ht原创 2016-02-22 15:57:03 · 21983 阅读 · 14 评论 -
linux字符驱动之poll机制GPIO状态监测驱动
应用背景:1、A20全志方案;2、Linux系统;3、两个GPIO口,一个用于检测门的状态(门开或门关),一个用于检测开门按钮是否按下;4、生成两个字符设备:/dev/doorstate和/dev/doorstate,生成通过select函数监测;#include #include #include #include #include #i原创 2016-06-22 10:07:38 · 4383 阅读 · 0 评论 -
Android 通过USB查看kernel调试信息
前提:电脑已安装adb并可正常使用。在调试Android驱动时,需要查看kernel调试信息,若你的板子调试串口没接出来的话,以下方式可试:方法一:(该方法查看历史调试信息,非实时)adb shell#dmesg方法二:(该方法可实时查看调试信息)adb shell#cat /proc/kmsg方法三:(该方法将历史调试信息保存到log.tx原创 2016-06-15 16:58:44 · 2368 阅读 · 0 评论 -
Android/Linux USB HID驱动(即USB鼠标USB键盘等驱动)相关文件
1、USB HIDHID:Human Interface Devices的缩写,即人体学输入设备或人体学接入设备。USB HID则为USB人体学输入设备,最典型的是USB鼠标和USB键盘。2、驱动路径和相关文件驱动路径:drivers/hid/usbhid驱动相关文件:usbkbd.c为usb键盘驱动,usbmouse.c为usb鼠标驱动。原创 2016-02-22 11:01:22 · 6870 阅读 · 0 评论 -
Android drivers/switch驱动详解(用于通过GPIO状态检测耳机、HDMI等的插拔状态)
相关文件:/drivers/switch/switch_gpio.c/drivers/switch/switch_class.c节点创建流程:1、在/sys/class/目录下创建“switch”类,创建完成后出现/sys/class/switch,具体实现如下:struct class *switch_class;switch_class原创 2016-01-15 11:27:48 · 7354 阅读 · 0 评论 -
platform_driver, platform_device
struct platform_driver {int (*probe)(struct platform_device *);int (*remove)(struct platform_device *);void (*shutdown)(struct platform_device *);int (*suspend)(struct platform_device *, pm_me原创 2012-07-17 11:31:30 · 687 阅读 · 0 评论 -
regulator_ops
Namestruct regulator_ops — regulator operations. Synopsisstruct regulator_ops { int (* list_voltage) (struct regulator_dev *, unsigned selector); int (* set_voltage) (struct regulator_转载 2012-09-04 17:15:16 · 1057 阅读 · 0 评论 -
用户空间和内核空间文件操作 file_operations
内核空间:struct file_operations {struct module *owner;loff_t (*llseek) (struct file *, loff_t, int);ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);ssize_t (*write) (struct file原创 2017-07-14 14:38:23 · 1617 阅读 · 0 评论