a254373829
码龄16年
关注
提问 私信
  • 博客:291,495
    291,495
    总访问量
  • 86
    原创
  • 464,539
    排名
  • 20
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2009-03-10
查看详细资料
个人成就
  • 获得10次点赞
  • 内容获得11次评论
  • 获得36次收藏
创作历程
  • 7篇
    2014年
  • 35篇
    2013年
  • 59篇
    2012年
  • 5篇
    2011年
成就勋章
TA的专栏
  • linux
    52篇
  • android
    16篇
  • 其它
    4篇
  • 微机基础知识
    2篇
  • linux device driver
    4篇
  • linux shell
    3篇
  • linux_app_program
    3篇
  • 工具相关
    5篇
  • 每周工作总结
    2篇
  • Android app
    1篇
  • 汇编
    1篇
  • LFS
    3篇
  • usb
    1篇
  • 开发环境
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

ubuntu 设置代理

https://wiki.archlinux.org/index.php/proxy_settings#Proxy_settings_on_GNOME3
原创
发布博客 2014.04.24 ·
973 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

usb协议总结

http://fangjian0518.blog.163.com/blog/static/5591965620116283232431/一 枚举过程:◆ 用户将一个USB设备插入USB端口,主机为端口供电,设备此时处于上电状态。◆主机检测设备。◆集线器使用中断通道将事件报告给主机。◆主机发送Get_Port_Status(读端口状态)请求,以获取更多的设备信息。◆集
转载
发布博客 2014.04.18 ·
993 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

linux ftrace

在设置完function这个tracer后, 得echo > set_event这个问
原创
发布博客 2014.04.18 ·
760 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Assert && De-assert

http://blog.sina.com.cn/s/blog_4b7bd3380100gokz.html读E文经常会碰到一些关键术语,今天看了Assert和deassert,把它们的含义转载出来,供大家查阅。       1、Assert(Asserting、Asserted),De-assert(Deassert、deasserting、deasserted)      asse
转载
发布博客 2014.04.10 ·
1644 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

linux pfn, page, physical/virtual address

从页框号page结构体(定义在include/linux/mm_types.h文件里)pfn_to_page(pfn);page_to_pfn(page);页框号物理地址得到页框号:physical_addr >> PAGE_SHIFT   #asm/page_types.h物理地址: pfn page结构体 虚拟地址page_address(page)如果是线性映射
原创
发布博客 2014.03.31 ·
2907 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

linux模块引用一个外部符号

当驱动被编译成一个模块时,引用外部符号(函数或者变量)时,这个外部符号得先通过EXPORT_SYMBOL给导出来才行,否则编译时会找不到该符号得定义。
原创
发布博客 2014.03.31 ·
1020 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

访问硬件寄存器的位域值

一般在驱动程序中,经常需要读硬件寄存器的值,然后在检查其中某些字段的值,通常的做法是设置一些位掩码,然后与一下就可以了,今天看驱动代码,发现还有如下的方法,觉得还不错。union A {   struct {         u64   part1:2;         u64   part2:2;         u64   part3:60;  } part;
原创
发布博客 2014.02.14 ·
796 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

快速排序

http://blog.sina.com.cn/s/blog_70441c8e0100pxuh.htmlvoid quicksort(int a[], int low, int high){int i = low;int j = high;int temp = a[i];  //比较基准值,  如果基准值是a[j]. 那下面的两个循环应该调换位置。      
转载
发布博客 2013.12.19 ·
587 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

迭代总线上的所有device/driver

drives/base/bus.cbus_for_each_dev;bus_for_each_drv;bus_find_device;获取设备名字:include/linux/device.hdev_name(struct device *dev);
原创
发布博客 2013.12.12 ·
633 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Debug Android and Linux suspend and resume

[转]http://blog.chinaunix.net/uid-12461657-id-3153698.html积攒了一些关于调试Android和Linux下面的suspend 和 resume的经验, 在这里和大家分享一下。希望可以有些帮助, (下面没有写Android专用的, 就是Linux通用的)。1. no_console_suspend  在kernel启动参数里面
转载
发布博客 2013.12.12 ·
911 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

logcat -b kernel 没输出

1 看/dev/log/kernel文件节点是否存在2 查看/proc/consoles看logk0有没有enabled起来, 没有的话在cmdline加上console=logk0.
原创
发布博客 2013.12.09 ·
4861 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

android socket通信不成功

尼玛原来socket通信都好好的, 后面在应用加了一个横屏的代码,死活是通信不了,折腾了三天才搞清楚原因,其实一开始就应该怀疑是新加入的代码引起的,可是。。。onCreate() {....if(getRequestedOrientation()!=ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){     setRequestedOri
原创
发布博客 2013.09.24 ·
4689 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

linux socket

socket是用于网络中不同计算机进程通信的机制,也可以用于同一台机器的进程间通信,此时叫做本地socket,  不同计算机的进程间通信叫做网络socket.   socket通信的双方是位于两个进程中的socket对象。linux server端socket通信模型int server_sockfd, client_sockfd;int server_len, client_len;
原创
发布博客 2013.09.24 ·
816 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

linux container_of(ptr, type, member)

container_of宏的作用是根据指向一个结构体某个成员的指针得到这个结构体的基址。@include/linux/kernel.h#define container_of(ptr, type, member) ({ \const typeof( (type *)0->member) * __mptr = (ptr); \(type *)( (char *)__mptr
原创
发布博客 2013.09.06 ·
1239 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

android ashmem 匿名共享内存

1. ashmem是基于linux里的shmem实现的,而shmem又是基于tmpfs伪文件系统。2. ashmem驱动实现了/dev/ashmem设备文件的open/read/llseek/mmap/ioctl等文件操作,但没有实现write文件操作,由于本质还是文件内存映射(内存指得是进程的虚拟内存,文件则是属于tmpfs,这里和基于磁盘的文件系统的内存映射还是有所不同的,这难道是匿名一词
原创
发布博客 2013.09.02 ·
1275 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

linux 监控驱动suspend/resume的执行

当pm核心去调用驱动的suspend/resume的回调函数时,它会设置一个定时器来监视回调函数的执行,如果回调长时间没有执行完毕的话, 定时器函数会调用BUG()让系统挂掉重启,所以在写pm相关的回调函数时,要确保不能长时间阻塞,否则后果你是知道的, 可以看下dpm_wd_handler这个函数/* kernel/drivers/base/power/main.c **/static vo
原创
发布博客 2013.08.28 ·
7090 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

android 睡眠和唤醒过程

睡眠过程:入口:用户空间的代码通过向/sys/power/state文件节点写入特定的字符串(on/mem)来请求系统进入特定的状态, 过程:1) 向/sys/power/state文件写入时会调用到state_store函数:state() { #ifdef CONFIG_EARLYSUSPEND request_suspend_state(s
原创
发布博客 2013.08.19 ·
4436 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

linux 软中断和tasklet

1. 软中断是什么 ? 软中断是一种延时机制,代码执行的优先级比进程要高,比硬中断要低。相比于硬件中断,软中段是在开中断的环境中执行的(长时间关中断对系统的), 代码也是执行在中断/线程上下文的,也是不能睡眠的,虽然每个cpu都有一个对应的ksoftirqd/n线程来执行软中断,但是do_softirq这个函数也还会在中断退出时调用到,因此不能睡眠(中断上下文不能睡眠的原因是由于调度系统是以进
原创
发布博客 2013.08.19 ·
2275 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

LFS<0603-2>

gcc pass-1for file in \$(find gcc/config -name linux64.h -o -name linux.h -o -name sysv4.h)  /*  在gcc/config目录下寻找linux64.h/linux.h/sysv4.h头文件, -o 是或的意思 */docp -uv $file{,.orig}    /* 复制找到的文件
原创
发布博客 2013.06.03 ·
999 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LFS<0531-1>

chmod a+wt $LFS/sources    /* 使sources目录的权限设置为可写和sticky, sticky属性确保只有文件的owner的才有权限删除该文件,如果文件可写的话,其他用户可以写入数据,但不能删除, 对root用户来说是无效的,因为root是超人 */wget -i wget-list -P $LFS/sources  /* -i 选项指定下载列表,  -
原创
发布博客 2013.05.31 ·
712 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多