40.Linux嵌入式开发
文章平均质量分 56
李先静
Only those who attempt the absurd can achieve the impossible.
展开
-
Gdb等几则笔记
<!-- @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } --> Gdb等几则笔记 转载时请注明出处和作者联系方式 作者联系方式:李先静 一、gdb几种常见使用方式及编译方法: 1.在本机调试本机原创 2007-09-01 17:14:00 · 3530 阅读 · 0 评论 -
欢迎大家加入broncho社区与broncho共同发展
Broncho是构建在linux 2.6 之上,采用GTK+作为GUI的智能手机平台。它是一个开放的手机开发平台,我们殷切期望开发人员和第三方软件厂商加入broncho社区,与broncho共同发展: 为了答谢对broncho社区有突出贡献的朋友,我们在量产之后会有部分手机和相关开发工具赠送。 对想在broncho上开发第三方面软件的朋友,我们在量产之后以硬件成本价出售手机原创 2008-05-07 21:10:00 · 7299 阅读 · 12 评论 -
DBUS与多线程
转载时请注明出处和作者联系方式作者联系方式:李先静 毫无疑问,DBUS是支持多线程的,否则它的使用会受到很多限制。但大多数人并不知道使用时要做些特殊处理才行,我们就是因为开始不知道,结果出现了好几个难查的BUG,浪费了不少时间。把几个主要问题写到这里,供有类似情况的朋友参考吧:一定要调用dbus_g_thread_init。我们开始以为调用了g_thread_init就万事大吉了,结果没原创 2008-05-12 21:49:00 · 4712 阅读 · 0 评论 -
compile linux 2.6 module
compile linux 2.6 modulewrite a simple moudle: quark.c#include #include #include #include int __init quark_init(void){ return 0;}void __exit quark_exit(void){}module_init(quark_init);module_exit(qu原创 2008-09-07 11:57:00 · 1807 阅读 · 0 评论 -
多线程调用DBUS服务注意事项
多线调用DBUS服务注意事项转载时请注明出处和作者联系方式作者联系方式:李先静 1.多线程初始化,特别不要忘记调用dbus_g_thread_init。g_type_init();g_thread_init(NULL);dbus_g_thread_init();2.确保不同线程使用不同的DBusConnection。DBUS提供了函数dbus_bus_get_private用于获取独立的DBusC原创 2008-09-26 21:38:00 · 6774 阅读 · 2 评论 -
yaffs2 image逆向工具
转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 这两天在分析yaffs2文件系统,花了几天时间把yaffs2的代码通读了几遍,基本脉络差不多搞清楚了。在网上找到一些资料,对我的阅读有很大帮助,不过它们介绍得不太完整。接下来有时间的话,我会写一个yaffs2源代码分析的系列。一方面进一步加深对yaffs2的理原创 2008-11-05 07:25:00 · 9774 阅读 · 2 评论 -
用NETLINK实现磁盘满通知
转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 手机内置FLASH容量有限,在磁盘空间不足的情况下,应该提醒用户进行磁盘清理。这个处理在哪里做比较好呢?每次写入数据时由调用者检测显然是不合理的,因为处理的太多了,何况修改SQLITE等第三方程序也是不明智的,那样会给升级版本带来麻烦。比较好的办法是在文件系统原创 2008-11-07 07:36:00 · 3884 阅读 · 0 评论 -
reparent指定进程到当前进程
转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 今天遇到一个问题,需要监视某个应用程序的退出事件,并得到它的退出码。waitpid只能监视子进程,对其它进程没有效果,怎么才能reparent一个进程呢?我在内核里找了半天也没有找到相应的系统调用,后来想到调试器都可以,那一定有办法。调试器是用ptrace实现原创 2009-01-08 07:28:00 · 3159 阅读 · 0 评论 -
KJava虚拟机hack笔记-编译
转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 KJava虚拟机有两个版本,一个针对智能手机等设备的phoneme_advanced,另一个是针对传统手机(feature phone)等设备的的phoneme_feature。去年我花过一点时间研究phoneme_advanced,在基于DirectFB的实原创 2008-11-18 22:24:00 · 3692 阅读 · 0 评论 -
KJava虚拟机hack笔记-基于GTK的移植
转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 CLDC只依赖于硬件平台和操作系统,不依赖于GUI,在移植到GTK+上时不需要做任何修改。MIDP则与GUI密切相关,在移植到GTK+上时主要修改这部分内容。因为MIDP没有基于GTK+的实现,不是简单的编译一下就行的,而是要动手写上万行的代码。这里面我们从总体介绍一下移植Phonem原创 2008-11-26 07:26:00 · 3420 阅读 · 0 评论 -
Linux手机运行级别
Linux手机运行级别转载时请注明出处和作者联系方式作者联系方式:李先静 Linux PC上的运行级别:# Default runlevel. The runlevels used by RHS are:# 0 - halt (Do NOT set initdefault to this)# 1 - Single user mode# 2 - Multiuser, without原创 2008-04-27 21:14:00 · 4128 阅读 · 1 评论 -
broncho linux手机平台software stack
原创 2008-04-25 20:24:00 · 3428 阅读 · 2 评论 -
用systemtap研究内核
用systemtap研究内核 转载时请注明出处和作者联系方式:http://blog.csdn.net/absurd作者联系方式:李先静 更新时间:2007-6-6 前几天写了一篇关于kprobes的BLOG,kprobes是个好东西,不过要编写C代码,要编译内核模块,稍嫌有些麻烦。今天我们介绍一个基于kprobes实现的工具systemtap,systemtap是一个内核原创 2007-06-07 21:37:00 · 9811 阅读 · 1 评论 -
今天参加了marvell的培训与研讨会
今天参加了marvell的培训与研讨会 转载时请注明出处和作者联系方式:http://blog.csdn.net/absurd作者联系方式:李先静 更新时间:2007-6-6 今天参加了marvell的培训与研讨会,所讲内容都是比较浅显的,作为入门课程倒是挺不错的。上午的没有参加,下午的主要内容有: 1. PXA3xx的特性介绍以及和上一代PXA27原创 2007-06-06 21:30:00 · 7775 阅读 · 6 评论 -
LinuxMobile GPRS上网配置
LinuxMobile GPRS上网配置 转载时请注明出处和作者联系方式:http://blog.csdn.net/absurd作者联系方式:Li XianJing 更新时间:2007-6-4 Linux手机用GPRS上网的原理很简单,AP与BP之间用串口连接,在串口上建立多路复用协议,在GPRS通道上建立PPP协议就可以了。这与用传统的Modem上网配置参与不多,这几天整原创 2007-06-04 21:17:00 · 4709 阅读 · 1 评论 -
让LinuxMobile 支持MIDI
让LinuxMobile 支持MIDI 转载时请注明出处和作者联系方式:http://blog.csdn.net/absurd作者联系方式:李先静 更新时间:2007-6-5 MIDI的好处在于它占空间小,一般只有几十K甚至几K大小,手机的空间有限,用MIDI作铃音是一种好的选择。其实说白了MIDI就是一种查表算法,它本身并不包含声音数据,而是通过波表去查找实际的声音数据。原创 2007-06-05 22:05:00 · 4393 阅读 · 0 评论 -
用gdbserver调试共享库(改进版)
用gdbserver调试共享库(改进版)转载时请注明出处和作者联系方式作者联系方式:李先静 我在<嵌入式linux调试:用gdbserver调试共享库>一文中介绍了用gdbserver调试共享库的方法,虽然可行,但是由于计算偏移量很麻烦,除了在非常必要的情况下,我们都很少使用它。昨天我们讨论了一下,看能不能修改gdbserver/gdb来实现自动计算。理论上这是可行的,不过修改gdbserve原创 2007-09-20 20:39:00 · 7701 阅读 · 3 评论 -
蓝牙协议读书笔记
蓝牙协议读书笔记转载时请注明出处和作者联系方式作者联系方式:李先静 昨天翻了一下Multimedia.Wireless.Networks.Technologies.Standards.and.QoS,看了其中的bluetooth一章,虽然还有很多细节没有搞明白,不过基本框架还是清楚了,这里做个笔记吧。拓扑结构: Point-to-Point: 两个设备直接通信,其中一个设备充当m原创 2007-10-28 09:52:00 · 5371 阅读 · 1 评论 -
linux蓝牙驱动代码阅读笔记
linux蓝牙驱动代码阅读笔记转载时请注明出处和作者联系方式作者联系方式:李先静 昨天看了一下介绍蓝牙协议文档,今天索性对照看了看kernel里的代码(bluez),这里记点笔记,还是继承了老毛病,只关注整体流程而忽略细节,先了解个大概,等真正需要时再仔细分析。net/hci_core.cHCI在主机端的驱动主要是为上层提供一个统一的接口,让上层协议不依赖于具体硬件的实现。HCI在硬件中的固件原创 2007-10-28 20:14:00 · 13401 阅读 · 2 评论 -
broncho Linux手机平台网站上线(http://www.broncho.cn)
broncho Linux手机平台网站上线(http://www.broncho.cn)转载时请注明出处和作者联系方式作者联系方式:李先静 broncho Linux手机平台是构建在linux 2.6 之上,采用GTK+/DirectFB作为GUI的手机平台。经过两年多时间的努力,已经实现基本功能,进入产品化阶段,目前正进行硬件联调,整合第三方 软件等工作。broncho Linux手机平原创 2008-04-09 20:29:00 · 6137 阅读 · 5 评论 -
KJAVA虚拟机Hack笔记-实现MIDP的SLAVE事件模型
转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 MIDP有两种事件模型,一种称为MASTER模型,在这种模型中,以虚拟机为主GUI为从,事件的主循环在虚拟机中实现。另外一种称为SLAVE,在这种模型中,以GUI为主虚拟机为从,主循环在GUI中实现,目前只有QTE使用这种方式。我想GTK+和QTE的事件处理很原创 2008-11-27 07:51:00 · 2349 阅读 · 0 评论 -
KJAVA虚拟机Hack笔记-实现immutableimage
转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 immutable image在这里的意思是说不能在上面进行绘制操作的图片,比如画直线和填充矩形等等。immutable image实际上就是图片在内存里面的表示,有点像VC中的Bitmap,用GTK+中实现的话,当然首选GdkPixbuf了。里面最重要的函数要数原创 2008-12-02 07:54:00 · 2298 阅读 · 0 评论 -
KJAVA虚拟机Hack笔记-实现mutable image
转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 mutableimage在这里的意思是说可以在上面进行绘制操作的图片,它有点像VC中的DC,可以在上面贴图或者画直线填充矩形等等。在GTK+中实现的话,自然就用GdkPixmap了,GdkPixmap从GdkDrawable继承过来的,提供了各种常用的绘图操作原创 2008-12-04 07:56:00 · 2341 阅读 · 0 评论 -
加快Android单模块编译
加快Android单模块编译转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 习惯了automake之后,再用Android的编译系统,就是感觉不爽。编译一个小模块也等上几分钟,有次实在受不了,看了一下它的实现,发现它对任何一次编译都要查找所有的Android.mk:subdir_makefiles=$原创 2009-10-11 18:34:00 · 5222 阅读 · 0 评论 -
让adb logcat打印内核调试信息
让adb logcat打印内核调试信息Wednesday, October 14th, 2009 | Author: admin | ? Edit ?转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 在默认情况下,adb logcat只能显示应用程序的调试信息,我把logcat.cpp修改了一下,让原创 2009-10-14 22:20:00 · 4717 阅读 · 4 评论 -
DA9034驱动程序阅读笔记(1)
DA9034驱动程序阅读笔记(1)转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 DA9034是一个集成了电源管理、音频设备、触摸屏控制器和能用A/D|D/A转换的多功能芯片。最近读了一下相关驱动程序,这里记些笔记,不成体系,作为备忘而已。有兴趣的朋友可以一起讨论。在Broncho A1中DA9034原创 2009-10-22 22:06:00 · 3492 阅读 · 0 评论 -
DA9034驱动程序阅读笔记(2)
转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 DA9034是一个集成了电源管理、音频设备、触摸屏控制器和能用A/D|D/A转换的多功能芯片。最近读了一下相关驱动程序,这里记些笔记,不成体系,作为备忘而已。有兴趣的朋友可以一起讨论。DA9034支持四类LED驱动:LCD背光、键盘背光、FLASH_LED和PC原创 2009-10-27 16:05:00 · 2875 阅读 · 0 评论 -
DA9034驱动程序阅读笔记(3)
转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 DA9034是一个集成了电源管理、音频设备、触摸屏控制器和能用A/D|D/A转换的多功能芯片。最近读了一下相关驱动程序,这里记些笔记,不成体系,作为备忘而已。有兴趣的朋友可以一起讨论。DA9034有两个输入设备,一个开关机键和触摸屏。开关机键设备是一个p原创 2009-10-30 11:02:00 · 2495 阅读 · 0 评论 -
DA9034驱动程序阅读笔记(6)
转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 DA9034是一个集成了电源管理、音频设备、触摸屏控制器和能用A/D|D/A转换的多功能芯片。最近读了一下相关驱动程序,这里记些笔记,不成体系,作为备忘而已。有兴趣的朋友可以一起讨论。电源驱动主要是为用户空间提供一些接口,让用户空间可以查询相应的状态,比如是否在原创 2009-11-11 10:09:00 · 4561 阅读 · 0 评论 -
DA9034驱动程序阅读笔记(4)
转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 DA9034是一个集成了电源管理、音频设备、触摸屏控制器和能用A/D|D/A转换的多功能芯片。最近读了一下相关驱动程序,这里记些笔记,不成体系,作为备忘而已。有兴趣的朋友可以一起讨论。DA9034的耳机插拔检测和线控开关检测的原理比较简单,因为不同状态电压不一原创 2009-11-01 19:38:00 · 7750 阅读 · 4 评论 -
Android中的MessageQueue,Handler,Looper和Thread
转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 前几天和一位同事讨论Android中Handler和Thread,其中一个问题是:创建Handler时会不会创建Thread?我对JAVA编程不熟,但直觉告诉我不会:我认为Handler只是用来辅助实现异步操作的东西。当时我拿了GTK+中的idle来做对比,se原创 2009-11-09 09:00:00 · 6063 阅读 · 2 评论 -
DA9034驱动程序阅读笔记(5)
转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 DA9034是一个集成了电源管理、音频设备、触摸屏控制器和能用A/D|D/A转换的多功能芯片。最近读了一下相关驱动程序,这里记些笔记,不成体系,作为备忘而已。有兴趣的朋友可以一起讨论。充电驱动程序原理如下:注册中断事件PMIC_EVENT_CHARGER | P原创 2009-11-09 08:58:00 · 2170 阅读 · 0 评论 -
broncho a1 hack指南-准备硬件
转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 很多朋友买BronchoA1就是冲着它的开放性来的,A1不但开放基本内核源代码,提供开发用的数据线,而且开放以前开发的Broncho LinuxPlatform手机平台。无论是对Just for f原创 2009-12-25 09:45:00 · 2795 阅读 · 3 评论 -
虚拟鼠标驱动程序
转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 前段时间写一个程序,要向系统中注入mouse事件,我又不想信赖于具体的GUI,就写一个虚拟mouse设备驱动程序,感觉挺好用的,不过后来发现 linux其实有一个uinput驱动程序实现了类似的功能。幸好后来才发现uinput这玩意儿,否则就没有机会去写了,有时真是原创 2009-09-15 10:56:00 · 7110 阅读 · 1 评论 -
虚拟键盘驱动程序
虚拟键盘驱动程序Saturday, September 12th, 2009 | Author: admin转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 前段时间写一个程序,要向系统中注入按键事件,我又不想信赖于具体的GUI,就写一个虚拟键盘设备驱动程序,感觉挺好用的,不过后来发现linux其实有一个u原创 2009-09-13 22:54:00 · 8881 阅读 · 8 评论 -
KJAVA虚拟机Hack笔记-用GTK+实现绘图操作
转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 绘图操作是在mutableimage上进行的,也就是画在GdkPixmap上的,由于GdkPixmap没有画圆和椭圆的函数,我选择用cairo来实现。大部分函数的实现很直观,调用cairo相应的函数就行了,gxpport_draw_arc比较麻烦一点,因为原创 2008-12-09 07:24:00 · 2609 阅读 · 0 评论 -
i++循环与i--循环的执行效率
转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 昨天同事问了我一个问题,有两个循环语句:for(i = n; i > 0; i–){…}for(i = 0; i {…}为什么前者比后者快?我当时的解释是:i–操作本身会影响CPSR(当前程序状态寄存器),CPSR常见的标志有N(原创 2009-02-27 07:47:00 · 6203 阅读 · 1 评论 -
用bfd显示ARM共享库的依赖关系
转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 PC上可以用ldd显示共享库的依赖关系,但它不能显示交叉编译出来的共享库。要显示交叉编译的共享库,通常做的法是在目标板上用/lib/ld-linux.so.2–list来显示。那有点有麻烦,由于通常我们并不关心所依赖共享库的加载地址,所以自己写了小程序来实原创 2008-12-24 07:31:00 · 3842 阅读 · 0 评论 -
Android IPC机制详解
Android IPC机制详解 转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 o IBinder接口IBinder接口是对跨进程的对象的抽象。普通对象在当前进程可以访问,如果希望对象能被其它进程访问,那就必须实现IBinder接口。IBinder接口可以指向本地对象,也可以指向远程对象,调用者不需要关心指向原创 2009-05-14 21:29:00 · 14536 阅读 · 6 评论 -
Embedded Linux From Scratch
Embedded Linux From Scratch 转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 Cross Compile:Environment variablesbusyboxtslibzlibpngjpeg原创 2009-07-26 12:18:00 · 4259 阅读 · 0 评论