- 博客(8)
- 资源 (9)
- 收藏
- 关注
原创 Android8.1系统Led的控制从底层到上层的实现
玩了安卓这么久了,你是否有好奇,它的底层到上层或者上层到底层的标准流程是怎么走的呢?这里通过apk操作一个GPIO控制led的亮灭从而实现从上层到底层的完整调用流程。写得不足之处欢迎有识之士不吝赐教,在此先行谢过,技术无边,欢迎各位大牛来此多多交流。Android Version:v8.0.1Linux Version:V4.4Hardware:mtk67391、在kernel层,编写和添...
2019-03-06 02:52:37 4061 3
原创 linux中LCD之framebuffer设备驱动
帧缓冲设备在Linux中也可以看做是一个完整的子系统,大体由fbmem.c和 xxxfb.c(例如mtk平台的mtkfb.c)组成。向上给应用程序提供完善的设备文件操作接口(即对FrameBuffer设备进行read、write、ioctl等操作),接口在 Linux提供的fbmem.c文件中实现;向下提供了硬件操作的接口,只是这些接口Linux并没有提供实现,因为这要根据具体的LCD控制器硬件进...
2019-03-20 01:40:18 867
原创 Linux内核和用户空间数据交互copy_to_user和copy_from_user
一、Copy_to_user功能:用于将内核空间的数据拷贝到用户空间。函数原型:unsigned long copy_to_user(void __user *to, const void *from, unsigned long n);*to是用户空间的指针,*from是内核空间指针,n表示从内核空间向用户空间拷贝数据的字节数如果数据拷贝成功,则返回零;否则,返回没有拷贝成功的数据字...
2019-03-14 01:09:51 8466
原创 linux内核的自旋锁spin_lock和互斥锁mutex_lock
访问共享资源的代码区域称作临界区。自旋锁(spinlock)和互斥锁(mutex,mutual exclusion的缩写)是保护内核临界区的两种基本机制。我们逐个分析。自旋锁可以确保在同时只有一个线程进入临界区。其他想进入临界区的线程必须不停地原地打转,直到第1个线程释放自旋锁。注意:这里所说的线程不是内核线程,而是执行的线程。自旋锁的基本用法:#include <linux/spin...
2019-03-12 02:26:10 2269
原创 linux中的轮询机制select/poll/epoll特点分析
select机制select本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来的缺点是:1 单个进程可监视的fd数量被限制2 需要维护一个用来存放大量fd的数据结构,这样会使得用户空间和内核空间在传递该结构时复制开销大3 对socket进行扫描时是线性扫描poll机制poll本质上和select没有区别,它将用户传入的数组拷贝到内核空间,然后查询每个fd对应的...
2019-03-11 01:58:42 742
原创 linux驱动之poll/select轮询机制实例分析(结合驱动中断使用)
poll机制是基于等待队列wait_queue的,poll机制是对wait_queue的补充,等待队列会一直等待,直到condition满足条件并且wake_up队列头。 如果不满足,程序会一直阻塞。poll机制让wait_queue有了超时机制,如果阻塞一定时间后会直接返回。当我们实现一个中断方式的按键驱动时,虽然中断式的驱动,效率是蛮高的,但是大家有没有发现,应用程序的死循环里的读函数是一直...
2019-03-10 13:01:35 1962 2
原创 Sizeof与Strlen的区别与联系
1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。2.sizeof是算符,strlen是函数。3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以’’\0’'结尾的。sizeof还可以用函数做参数,比如:short f();printf("%d\n", s...
2019-03-08 02:40:18 157
原创 ubuntu14.04 64bit安装android的NDK开发环境
1、通过wget工具下载bin包:打开终端输入以下命令:$ wget -c http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin因为下载下来的是bin包,所以可以直接移动到需要安装的目录下面。将Android NDK bin包移动到你想要的目录下,如/opt/ndk/2、然后$ chmod a+x a...
2019-03-06 20:37:59 329
arm_adb-master_default.tgz
2021-12-30
fastboot-separated_from_android_4.2-master.zip
2021-06-03
arm平台架构的lsusb应用程序
2021-05-27
深入理解Android系统张元亮.rar
2019-07-15
MT6580平台安卓5.1系统调试加密IC--ATSHA204A
2019-01-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人