YIFEIYANG 易飞扬的博客

4,298 views
30十/090

苗条的C标准库 uClibc

苗条的C标准库「uClibc」

使用C/C++语言编程,一定很熟悉标准的C语言运行库。比如在linux系统上就是glibc(GNU C Library)。虽然 glibc 有很丰富的内容,但是它的尺寸太大了,在嵌入式领域只需要 glibc 的一部分就够了。

那么有没有什么可以替代 glibc 在嵌入式中使用的标准C库呢? 这里介绍其中的一个uClibc。最初,uClibc 是 uClinux 项目的副产品1。它尽量做到了不修改基于 glibc 的程序就可以编译使用。

uClibc 的特征
  • 尺寸小:glibc 至少需要数Mb的容量,而 uClibc 仅仅数百Kb
  • 自定义容易:可定制需要的功能,尽可能减小库大小。
  • 互换性:因为不包括所有 glibc 的函数,所以以往的程序不一定都能编译过。另外各个版本的 uClibc 不一定兼容,更换uClibc 的时候[......]

Read more

3,367 views
20十/090

GTD问答集

GTD问答集

Q. GTD与现在的工作方式有何区别?

A. GTD与以往的时间管理方法不同,是管理个人创意和精力的一种工作技巧。它不仅关注怎样提高工作的效率,更重要的是将「保持头脑清醒,舒畅」放在关键位置。

Q. 将头脑中「关心的事情」记录起来,需要花多长时间?

A. 最少1个小时,尽量在2个小时内完成。最初15分钟也许写不出什么,不要介意继续思考。即使到了30分钟左右仍然写不出什么,还请继续坚持。直到认为「这以上绝对没有什么可写了!」。

GTD的流程图如下图所示:

GTD流程图

Q. 需要牢记GTD系统的流程图吗?

A. 熟练的掌握GTD的流程之前,将其粘贴在写字台旁也许是个不错的方法。但是能将其作为自己的习惯,自然而然的执行是最好了。

Q. 不清楚应该归入那个表格中……。

A. 如果太钻牛角尖了,反而带来了多余的压力。用自己的直觉决定放入那个表格中。重要的是,每次周回顾,[......]

Read more

2,670 views
17十/091

P2P与云计算

P2P与云计算

云计算 P2P

将近10年征战在Web领域的企业们,终于经过Web2.0做到了云计算的领域。参与云计算的企业正如雨后春笋般出现。关于云计算的的介绍,我在上回已经介绍了。这里,我们来看看云计算与P2P(peer-to-peer)。

其实,我觉得云计算技术与P2P的基础构造很相似。他们都是基于分布式计算技术,就是说,都是将任务分配给多个计算机,最终完成它。构造很相似,基于其实现的技术也很类似。基于云计算构造之上提供各种服务形式,而基于P2P的构造之上提供“共有”的结构。

云计算是Web服务的一种发展形势,也应该是Web企业好不容易找到的一种终极的CS服务形式吧。如果将截止到现在的不同的Web服务统一起来,应该就是现在的云计算形式吧。

虽然表面上看提供云计算服务的企业与用户之间的关系是一种CS形式,但不如抽象为 提供云计算的企业与基于云计算上提供服务的企业基于云[......]

Read more

3,484 views
16十/090

BREW中的字符串操作

BREW中的字符串操作

这回介绍一下BREW中字符串的操作方法。另外怎样描画字符,选择字体等也做基本的说明。

首先温习一下C语言中字符串的操作
C语言中字符串是作为数组来操作的。标准C库提供了许多字符串操作的函数,比如以下两个字符串结合的程序:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
char* str1 = "Open ";
char* str2 = "Sesami !";
char* str3;

int len1 = strlen(str1);
int len2 = strlen(str2);

str3 = (char*) malloc(len1 + len2 + 1);
{
    strcpy(str3, str1);
    strcpy(str3 + l[......]

Read more

8,044 views
15十/090

BusyBox的设置与编译

上一回构造交叉编译器(Cross compiler)环境一文中,我介绍了跨平台编译器的制作,这一回利用编译好的编译器,我们来构筑一个完整的BusyBox。

这里以BusyBox 1.11.1(busybox-1.11.1.tar.bz2)为例。将文件解压到“busybox-1.11.1”目录。

1
2
$ tar jxf busybox-1.11.1.tar.bz2
$ cd busybox-1.11.1

BusyBox的设定

想必大家都配置过linux内核吧,linux的内核配置有基于文本的和基于GUI的两种方式。BusyBox也是一样的,具有这两种方式。

如果你使用GUI的Linux环境,用「make gconfig」或者「make xconfig」可以调用图形界面的设定。其中gconfig是基于GTK+的,而xcon[......]

Read more

1,841 views
14十/090

1080i 与 1080p

1080i 与 1080p 的区别

经常在电器店看到 1080i 与 1080p 的字眼,他们有什么区别呢?简单的回答,字母i表示隔行扫描(interlaced scan)。字母P意为逐行扫描(Progressive Scan)。

隔行扫描如下图所示,先扫描单数的垂直画面,再扫描双数的垂直画面。因为是分为两回扫描,所以当碰到高速移动的物体时,物体周围就有晃动现象。

1080i

逐行扫描如下图所示,只需要一次的扫描。也正因为是一次性的扫描,就不会觉得有闪烁的感觉。

1080p

你在选择高清数字设备的时候,设备中会支持HDMI端子或者D端子,规格标中会有1080i, 1080p, 720p等字眼。知道了他们的含义,你就能够容易的做出选择。当然是推荐买对应 1080p 的有HDMI端子或者D端子的高清产品了。

D端子中有D1~D5等5各种类,这其中只有D5支持 1080p ,所以说选择的时候,看清支持[......]

Read more

10,978 views
13十/090

云计算来了

云计算来了

云计算

云计算(cloud computing)来了!而且正以咄咄逼人的气势发展壮大着,不久的将来,你是否也将投入它的怀抱?

什么是云计算

首先引用百度百科中对云计算的定义:

  • 狭义云计算

    狭义云计算是指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的资源(硬件、平台、软件)。 提供资源的网络被称为"云"。"云"中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。这种特性经常被称为像水电一样使用IT基础设施。

  • 广义云计算

    广义云计算是指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的服务。这种服务可以是IT和软件、互联网相关的,也可以是任意其他的服务。

举举离我们身边比较近的例子,Google的Gmail,它就是云计算的一种。我们的gmail邮件利用 I[......]

Read more

3,115 views
12十/091

程序员与GTD

程序员与GTD

GTD

相对于公司的白领而言,可能GTD对于自由职业者更有效。对于我来讲,在工作当中,尤其是自己所属的项目中,基本没有使用GTD。

通常,软件开发按照模块,以WBS(Work Breakdown Structure)来细化项目,各自模块的开发者,基本上只需要负责自己担当的部分,做好时间安排。使用Microsoft Project等类似的项目管理工具来管理开发团队。

像这样明确项目的时间,内容,不需要GTD那样的发散的思维方式。 但是在项目的初期,由于对用户要求的不明确,开发周期不确定,或者当项目因为人员不足,经费不足,开发时间紧迫等状态下时,可以将事务按优先等级划分,利用GTD来整理,应该能有益处的。

对于程序员来讲,利用GTD可以做些什么呢?我认为是不需利用时间表的作业管理。比如,技术学习,调查,资格认证取得,差旅费报销等的手续,身体检查的安排, 朋友[......]

Read more

5,342 views
9十/090

几款GTD工具介绍

几款GTD工具介绍

使用GTD管理您的时间,安排您的生活,能够使您的生活更有效率。 在什么是GTD一文中,我简单地介绍了GTD基本的概念和使 用,但是如何更加有效,合理地使用它,选择一个适合您的GTD工具是首要的。这里,我将介绍几款GTD工具,从中挑选你所喜爱的,感慨开始您的GTD之旅吧。

ThinkingRock


一个基于JavaVM的GTD工具,如果你一安装了jre,下载tr-2.2.1.exe安装即可。如果没有安装jre,下载
tr-2.2.1-with-jre.exe安装。(基于2009年4月发布的版本)

gtd-php

这时一个基于PHP的WEB应用程序。需要配置PHP, MySQL,如果是windows下用,还要安装webserver。这里推荐WAMP。如果嫌这样麻烦,可以先在他们提供的Demo上试试,感觉可以再在本地安装。

以下介绍在windows下[......]

Read more

3,784 views
8十/091

构造交叉编译器(Cross compiler)环境

交叉编译器 Qemu

构造交叉编译器(Cross compiler)环境

现在,手机,PDA,数字电视等许多嵌入式电子设备都是基于Linux来开发。也许你已经在不知不觉中使用了基于嵌入式linux
的产品。工欲善其事必先利其器,要开发基于linux的嵌入式系统,首先要有支持跨平台的编译器。

构筑交叉编译器的时候,基本需要以下几个方面:

  • binutils
  • GNU C 编译器(gcc)
  • 标准C库
  • linux的头文件

很多构建嵌入式linux的书籍上都有这样的介绍,需要一个一个地构筑它们,相对比较麻烦。这里我们使用Buildroot来构建。
下载压缩包后,按一下顺序执行:

1
2
3
$ tar jxf buildroot-20080601.tar.bz2
$ cd buildroot
$ make menuconfig

[......]

Read more

Page 10 of 12« First...«89101112»