- 博客(30)
- 资源 (1)
- 收藏
- 关注
转载 【转载】分享一些写技术博客的心得感悟
前言写文章是一个短期收益少,长期收益很大的一件事情,人们总是高估短期收益,低估长期收益。往往是很多人坚持不下来,特别是写文章的初期,刚写完文章没有人阅读会有一种挫败感,影响了后期创作。从某种意义上说,博客是我最好的学习笔记和个人名片。在IT行业内,技术博客是了解一个开发者最好的方式之一,特别是当你没有一张足够分量的文凭或者一段出彩的工作经历时,你就应该沉下心来好好打磨自己技术,打造自己的博...
2019-03-14 18:33:47
1109
2
原创 工具分享:使用python脚本自动将旧Excel数据更新到新表,提高效率
数据更新太快,数据同步困难,本文使用脚本自动使用旧表更新新表,提高工作效率
2019-03-14 12:32:49
5141
原创 动态库使用方法
参考链接:https://www.cnblogs.com/Anker/p/3746802.html 动态库API介绍#include <dlfcn.h> void *dlopen(const char *filename, intflag); char *dlerror(void); void *dlsym(void *handle, const char *symbol); int ...
2018-06-30 13:02:22
1398
原创 结合HelloWrold整理Android Hal层访问原理
HAL需要实现的核心数据结构rootdir/hardware/libhardware/include/hardware/hardware.hstruct hw_module_t;struct hw_module_methods_t;struct hw_device_t; typedef structhw_module_t { uint32_ttag; uint16...
2018-06-30 12:59:38
272
原创 Android添加HelloWorldService实践
参考链接http://blog.csdn.net/myarrow/article/details/7175204 Android硬件抽象层(HAL)概要介绍和学习计划http://blog.csdn.net/luoshengyang/article/details/6567257 一. 在Android内核源代码工程中编写硬件驱动程序。 二. 在Android系统中增加C可执行程序来访...
2018-06-30 12:58:28
1007
原创 mtk平台 mt_usb设备以及otg初始过程
注册mt_usb驱动kernel-3.18/drivers/misc/mediatek/usb20/mt6735/usb20.cstatic int __init usb20_init(void){ ...... platform_driver_register(&mt_usb_driver); //注册mt_usb驱动 retu...
2018-03-02 16:16:48
8686
1
原创 C语言中利用#define和#undef定义初始化数组,实现不同的初始化效果
Linux 2.6.22的u盘代码实现中有如下代码第一种宏定义#ifndef CONFIG_USB_LIBUSUAL#define UNUSUAL_DEV(id_vendor, id_product, bcdDeviceMin, bcdDeviceMax, \ vendorName, productName,useProtocol, useTransport, \
2017-07-06 15:53:21
4069
翻译 usb基础知识资料
https://wenku.baidu.com/view/015bf2b4bceb19e8b8f6bac5.htmlhttp://blog.sina.com.cn/s/blog_8bbf650701013mub.htmlusb主机控制器:设备管理,ehci_hcd,uhci_hcdhub:hub发起设备的初始化,rootHub(与主机控制器集成)
2017-07-03 17:38:03
383
原创 Linux进程管理与调度
Linux下的进程管理进程与线程概念进程:可执行代码、数据、地址空间、信号,打开的文件进程描述符与task_struct循环队列task_struct的分配、存储与查找进程状态与状态修改进程间的关系(进程家族树)进程创建与写时拷贝(fork)进程创建过程创建内核栈、thread_info、task_struct,此
2017-05-24 16:05:49
505
原创 Android电源管理框架
管理策略:通过锁和定时器来切换系统的状态,使系统的功耗降至最低层次结构:App、Framework、HAL和kernel层l 应用层:这里所谓的应用层主要是指应用程序和其他使用电源管理的Service,包括但不限于以下Services: PowerManagerService、BatteryService、LightService等。l 框架层:在Android
2017-05-03 17:26:24
6118
1
转载 Linux 源码目录结构
转载地址:http://www.cnblogs.com/youngerchina/p/5624501.html内核源码目录结构浏览内核代码之前,有必要知道内核源码的整体分布情况,按照惯例,内核代码安装在/usr/src/linux目录下,该目录下的每一个子目录都代表了一个特定的内核功能性子集,下面针对2.6.23版本进行简单描述。(1)Documentation。这个目
2017-04-30 18:00:31
520
原创 vim 编辑器常用命令总结
vim编辑器常用命令总结vim 编辑器功能强大,命令多,平时为方便使用,总结了以下几个命令,平时查看编辑代码文本,掌握这几个命令,可以提高文本编辑速度分屏控制同时打开两个文件,且用垂直分屏显示:vim -O f1.txt f2.txt同时打开两个文件,且用水平分屏显示:vim -o f1.txt f2.txt在已经打开文件的情况下,打开领一个文件,同时水平分
2017-04-28 19:48:14
369
原创 Android手机充电IC设备树配置
OTG功能设备树配置&pio { usb_default: default { /*默认配置可以什么都不写,但必须配置*/ }; gpio9_mode3_iddig: iddig_irq_init { pins_cmd_dat { pins = ; /*中断pin脚的模式*/ slew-rate = ; /*0:输入,1:输出*/ bia
2017-02-09 19:50:53
1865
翻译 Android的休眠唤醒机制wake_lock机制
wakel_lock:Android的一种休眠唤醒机制 使用场景:在LCD或TP关闭的时候,依然需要运行的关键代码,如电量统计、charger探测、音乐播放等,即使在休眠状态下也是需要正常运行的 主要思想:只要系统中存在有效锁,就阻止AP(可认为是ARM处理器)进入休眠状态,即不让处理器挂起,只有系统中所有锁都被释放之后系统才进入休眠状态 分类:suspend休眠锁、Idl
2017-02-07 19:54:56
806
原创 mtk fule gauge算法过程
void BAT_thread(viod){ static int battery_meter_initilized = KAL_FALSE; if(battery_meter_initilized == KAL_FALSE) { battery_meter_init(); battery_meter_initilized = KAL_TURE; } mt_battery_
2017-01-21 16:05:30
1546
原创 网上优秀博客
魅族内核团队:http://kernel.meizu.com/tags.html#Thermal-ref宋宝华:http://blog.csdn.net/21cnbao/article/details/8457546蜗窝科技:http://www.wowotech.net/
2017-01-20 20:31:35
292
原创 1030-platform总线体现C语言的面相对象设计方法
http://blog.csdn.net/wyz649296016/article/details/52180099
2016-10-30 19:41:46
388
原创 1030-power path功能了解
参考资料http://www.elecfans.com/dianyuan/312574.htmlhttp://www.61ic.com/Technology/Power/200801/18067.html 锂离子充电电路电池存储电能时候有温升,说明充电器本身是有功率消耗电池馈送型 只有电池可以给系统供电 问题:电池的电压低于系统所需电压时候(低于3.4V或电池过放时
2016-10-30 16:56:27
2763
原创 数据结构链表总结一
数据结构链表总结一 最近一直在学数据结构,刚开始学习的,觉得链表还是比较难的,今天自己写的代码贴上来分析一下#include #include #include #include "list.h"struct List{ data_t data; //typedef int data_t; struct List *pNex
2016-01-01 22:22:31
288
原创 回调函数与函数指针
回调函数与函数指针用途1、许多窗口就是通过回调函数来实现的,不同的按钮执行不同的函数2、菜单处理3、消息或事件机制也可以看作是一种回调机制 函数回调的实现方式一般由函数指针实现,将函数的地址作为参数传递给调用他的函数,当函数执行到主调函数时,通过函数指针(即地址)找到被调用的函数,实现被调函数的功能,用函数回调的方式配合void *可以增加代码的通用性,只要函数
2015-12-27 11:55:44
419
转载 C/C++堆和栈的区别
堆和栈的区别 1. 管理方式不同 栈,由编译器自动管理,无需程序员手工控制;堆:产生和释放由程序员控制。 2. 空间大小不同 栈的空间有限;堆内存可以达到4G,。 3. 能否产生碎片不同 栈不会产生碎片,因为栈是种先进后出的队列。堆则容易产生碎片,多次的new/delete 会造成内存的不连续,从而造成大量的碎片。 4.
2015-09-20 17:04:03
259
原创 C语言中sizeof和strlen的区别与联系
C语言中sizeof和strlen的区别与联系 在学习C语言的时候发现经常将sizeof和strlen弄混淆,今天有遇到这个问题,所以查了一些资料,将他们总结在下面,虽然不是很全,但已经可以通过他们之间的比较来区开分了 strlen:一般用来统计字符串中字符的个数 sizeof:一般统计对象所占的单元(字节)的个数,一般来说,般以8位二进制作为
2015-09-08 23:39:26
3931
转载 函数指针及函数指针数组的妙用
笔者在开发某软件过程中遇到这样一个问题,前级模块传给我二进制数据,输入参数为 char* buffer和 int length,buffer是数据的首地址,length表示这批数据的长度。数据的特点是:长度不定,类型不定,由第一个字节(buffer[0])标识该数据的类型,共有256(28 )种可能性。我的任务是必须对每一种可能出现的数据类型都要作处理,并且我的模块包含若干个函数,在每个函数里面都
2015-09-04 10:59:32
268
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人