- 博客(28)
- 资源 (4)
- 收藏
- 关注
转载 Linux中断(interrupt)子系统之一:中断系统基本原理
这个中断系列文章主要针对移动设备中的Linux进行讨论,文中的例子基本都是基于ARM这一体系架构,其他架构的原理其实也差不多,区别只是其中的硬件抽象层。内核版本基于3.3。虽然内核的版本不断地提升,不过自从上一次变更到当前的通用中断子系统后,大的框架性的东西并没有太大的改变。 /****************************************************
2013-05-08 16:16:30 226
转载 Linux内核实践之工作队列
http://blog.csdn.net/bullbat/article/details/7410563 工作队列(work queue)是另外一种将工作推后执行的形式,它和tasklet有所不同。工作队列可以把工作推后,交由一个内核线程去执行,也就是说,这个下半部分可以在进程上下文中执行。这样,通过工作队列执行的代码能占尽进程上下文的所有优势。最重要的就是工作队列允许被重新调
2013-04-16 17:10:55 304
转载 dbus example
我们继续学习D-Bus,参考http://dbus.freedesktop.org/doc/dbus/libdbus-tutorial.html ,相关的API接口reference参考http://dbus.freedesktop.org/doc/dbus/api/html/modules.html 。从底层,即libdbus学习如何发送Method以及如何等待应答,在上上次学习中,
2010-05-19 19:15:00 1219
转载 D-Bus学习(六):Method的收发小例子
我们继续学习D-Bus,参考http://dbus.freedesktop.org/doc/dbus/libdbus-tutorial.html ,相关的API接口reference参考http://dbus.freedesktop.org/doc/dbus/api/html/modules.html 。从底层,即libdbus学习如何发送Method以及如何等待应答,在上上次学习中,给出了同
2010-05-18 16:19:00 496
原创 D-Bus学习(五):Signal的收发小例子
我们继续学习D-Bus,参考http://dbus.freedesktop.org/doc/dbus/libdbus-tutorial.html ,从底层,即libdbus学习如何发送signal,以及如何监听signal。signal在D-Bus的Daemon中广播,为了提高效率,只发送给向daemon注册要求该singal的对象。 这个图我画了很久,我希望
2010-05-18 15:18:00 415
原创 D-Bus学习(四):基础小例子(同步和异步)
从Tutorial中学习基本概念后,进入实战阶段,通过学习,我们给出连个小例子,同步例子和异步例子。类型和GType的映射 在D-Bus编程中,基础类型和GType的映射表格如下。在后面的程序小例子中我们会看到具体如何对应。D-Bus basic typeGTypeFree functionNotesBYTEG_TYPE_BOO
2010-05-18 14:29:00 418
原创 D-Bus学习(三):消息
消息通过D-Bus在进程间传递。有四类消息:一、Method call消息:将触发对象的一个method 二、Method return消息:触发的方法返回的结果 三、Error消息:触发的方法返回一个异常 四、Signal消息:通知,可以看作为事件消息。 一个消息有消息头header,里面有field,有一个消息体body,里面有参数arguments。消息头包含消息
2010-05-18 14:12:00 387
原创 D-Bus学习(二):基本概念
原生对象和对象路径 所有使用D-BUS的应用程序都包含一些对象, 当经由一个D-BUS连接收到一条消息时,该消息是被发往一个对象而不是整个应用程序。在开发中程序框架定义着这样的对象,例如JAVA,GObject,QObject等等,在D-Bus中成为native object。 对于底层的D-Bus协议,即libdbus API,并不理会这些native ob
2010-05-18 11:37:00 427
原创 D-Bus学习(一):总体介绍
D-Bus的方式在移动手机操作系统中非常重要,包括Maemo,Moblin等以Linux为基础的操作系统。估计Andriod也大量使用。D-Bus的相关学习资料见:http://www.freedesktop.org/wiki/Software/dbus ,在网上也有大量的学习资料,在http://blog.chinaunix.net/u3/111961/ 中有不少的中文资料,收集了很多网络资
2010-05-18 11:11:00 355
转载 浅析GLib
GLib是GTK+和GNOME工程的基础底层核心程序库,是一个综合用途的实用的轻量级的C程序库,它提供C语言的常用的数据结构的定义、相关的处理函数,有趣而实用的宏,可移植的封装和一些运行时机能,如事件循环、线程、动态调用、对象系统等的API。它能够在类UNIX的操作系统平台(如LINUX, HP-UNIX等),WINDOWS,OS2和BeOS等操作系统台上运行。GLib需要一个支持线程的
2010-05-08 11:15:00 302
转载 GObject对象系统 (3)
信号的定义和应用 在GObject系统中,信号是一种定制对象行为的手段,同时也是一种多种用途的通知机制。初学者可能是在GTK+中首先接触到信号这一概念的,事实上在普通的字符界面编程中也可以正常应用,这可能是很多初学者未曾想到的。一个对象可以没有信号,也可以有多个信号。当有一或多个信号时,信号的名称定义是必不可少的,此时C语言的枚举类型的功能就凸显出来了,用LAST_SIGNAL
2010-05-08 10:17:00 452
转载 GObject对象系统 (2)
对象的实现下面的代码实现了上面的Boy对象的定义: /* boy.c */#include "boy.h"enum { BOY_BORN, LAST_SIGNAL };static gint boy_signals[LAST_SIGNAL] = { 0 };static void boy_cry (void);static void boy_b
2010-05-05 11:38:00 470
转载 GObject对象系统 (1)
简单的说,GObject对象系统是一个建立在GLIB基础上的,用C语言完成的,具有跨平台特色的、灵活的、可扩展的、非常容易映射到其它语言的面向对象的框架。如果你是一个C语言的执着的追随者,你没有理由不研究一下它。 前言大多数现代的计算机语言都带有自己的类型和对象系统,并附带算法结构。正象GLib提供的基本类型和算法结构(如链表、哈希表等)一样,GObject的对象
2010-05-05 09:40:00 352
转载 使用C语言进行面向对象的开发--GObject入门[5]
接上文 这一部分简要介绍下类的析构,或者成为终结。 还是多说几句,也算是对前文的补充 1.生成一个类是由父到子,析构的时候自然与之相对是由子到父。 2.GObject的内存管理并没有采用垃圾回收的方式【JAVA就采用此方式】,而是采用了引用计数的方式。 具体垃圾回收是怎么回事儿,本人还不清楚,所以就不提了。引用计数还了解一些, 但也不是此处的重点【哎,又写了点废
2010-05-05 09:04:00 521
转载 使用C语言进行面向对象的开发--GObject入门[4]
Part 4 接上文.前面定义了几个结构,我们可以把那些东西放在一个jc_boy.h文件中,下面开始介绍如何去实现这个BOY类,也就是要放在jc_boy.c中的部分。对于GObject而言,有了实例结构,有了类结构,自然要有如何初始化的函数,毕竟这是C语言吗,没有那么方便的事儿。相应的,对应于jc_boy,要定义jc_boy_init和jc_boy_class_init两个
2010-05-05 08:32:00 399
原创 使用C语言进行面向对象的开发--GObject入门[3]
Part 3 终于要谈正题了,如何使用GObject去构建一个所谓的“对象”呢?其实是一件简单但却痛苦的事情。 在罗列代码之前,还是要啰嗦两句。GObject中每个类要定义两个结构体,假设你要定义的类型为People,那么你要定义两个结构分别名为People和PeopleClass,估计刚接触的人会有些晕,一般的C++啊,JAVA什么的都是直接一个cla
2010-05-04 20:04:00 529
原创 使用C语言进行面向对象的开发--GObject入门[2]
PART 2.在正式开始GObject的学习之前,还要简单提一下大名鼎鼎的建立在GObject系统之上的桌面图形库Gtk,先来个最简单的程序看看。#include int main( int argc, char *argv[]){GtkWidget *window; gtk_init(&argc, &argv); window = gtk_windo
2010-05-04 19:57:00 398
转载 使用C语言进行面向对象的开发--GObject入门[1]
C语言是简单的,因为它本身并没有什么特别的内容,标准C并没有提供多少函数(其实一般用不到的提供了很多),也没有提供面向对象的机制,但也正因此使得要用C编写“美丽”的程序变得复杂起来。复杂的原因其实很简单,一切的一切都要我们自己去实现。最近这段时间集中攻了下GObject,虽然只是会了些皮毛,但还是要寥寥写上几句,省着以后忘记了,又要从头整,毕竟GObject的学习是件令人头
2010-05-04 19:42:00 376
原创 图片和配置文件的RPM包的打包过程,如何提交SRC RPM包中内容到SVN
theme-devel.tar.gz包中没有需要编译的东西,只是需要安装的一些图片和文件,如何打成RPM包 1.在/usr/src/rpmbuild/SOURCES/目录中建好文件目录的层次结构,再压缩成tar.gz文件, 2.进入/usr/src/rpmbuild/SPECS目录,创建spec文件, %prep部分 解压缩,进入源代码目录 %build部
2010-04-30 10:17:00 524
转载 SQL语句left join/right join/inner join 的用法比较
假设有A,B两个表。 表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a20050113 4 a20050114 5 a20050115 表B记录如下: bID bName 1 2006032401 2 2006032402 3 2006032403 4
2010-04-28 10:36:00 146
原创 SPEC文件
SPEC文件spec文件是整个RPM包建立过程的中心,它的作用就如同编译程序时的Makefile文件。spec文件包含建立一个RPM包必需的信息,包括哪些文件是包的一部分以及它们安装在哪个目录下。这个文件一般分为如下的几节:(1) Preamle(序言)序 言包含用户请求包的信息时所显示的内容。它可以包含包的功能描述、包的软件版本、版权信息和所属的包组等。Summary 是一行关于该软
2010-04-27 19:18:00 705
原创 sqlite3中修改表名
在mysql 中修改表名的SQL语句 在使用mysql时,经常遇到表名不符合规范或标准,但是表里已经有大量的数据了,如何保留数据,只更改表名呢? 可以通过建一个相同的表结构的表,把原来的数据导入到新表中,但是这样视乎很麻烦。 能否简单使用一个SQL语句就搞定呢?当然可以,mysql5.0下我们使用这样的SQL语句就可以了。
2009-09-10 16:19:00 1536
原创 CLUTTER 笔记
1. clutter group的大小是由 他包含的所有actor的大小和位置(这里的位置指的是actor在组内的位置) 决定的,不可以用clutter_actor_set_position( )设定。 2.但是group可以设定位置,他包含的actor设定的position是相对于这个组的位置。 3.其他操作如旋转,缩放。。。。应用到组内的所有actor.
2009-07-29 09:55:00 194
原创 linux下GTK+开发多语言程序
开发多语言软件是一件非常困难的事,各个国家的字符集的编码方式、货币符号、日期格式、数字格式、文字表现都各不相同,glibc提供了大量的函数处理这些事情,不再聱述了。这里要做的是,用一个简单的实例说明一下GetText的用法,GetText是一系列的工具和库函数,帮助程序员和翻译人员开发多语言软件的。 GetText并不是一个神秘的东西,若非要在Win32
2009-07-29 08:59:00 634
原创 Clutter 学习总结
本文是作者学习 Clutter 的一个总结,介绍了 Clutter 在应用程序中的角色、基本对象、动画相关的对象以及创建动画的步骤等。 简介初识 Clutter,觉得它很像是 Macromedia Flash,ClutterTimeline 就像是flash 里的时间
2009-07-27 16:51:00 330
原创 计算一个数组中元素个数的方法
ClutterKnot knot [2] ;结构体数组,2个元素sizeof( knot ) =====>整个数组占用的字节数sizeof( ClutterKnot ) =====>一个数组元素(结构体)占用的字节数sizeof( knot ) / sizeof ( ClutterKnot ) =====>数组所含的元素个数(结构体个数)
2009-07-27 15:58:00 928
Foundations.of.Qt.Development
2010-06-11
Apress_Pro_Linux_Embedded_Systems
2010-03-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人