2008年11月23日星期日

西冲海岸线穿越

深圳西冲,因为交通不便、偏离市区等天然原因,成为了深圳市最优美的海岸线。仅仅这一
点,就让俺们心里痒痒太多太多了,于是跟随大家一起到西冲鹅公湾穿越海岸线。

到了地方才知道,西贡此行比想象的艰难太多了。活动选取了西贡->鹅公湾这一非常变态的
路线,海岸边的岩石形状大小各异,沟堑无数,深浅不一。在石头间上串下跳,实在是极其
消耗体力的事情,也有部分人受伤。

从下午一点到达海岸开始,接下来的五个小时都要接受如此费力的考验,同时身负重物,真
是让我苦不堪言;更可惜傍晚涨潮,潮水变凉,没能有机会下水。回来时候也已无力气打字,
只能更新照片来看。(PS:不过海景实在是太美了)

回头一看,我也在几个月内到访过梧桐山,老虎涧,塘朗山,排牙山,大小梅沙,西冲海
岸……至此,我也几乎整完深圳所有的著名户外景点,我想可能需要转换一下目标了。当然下
个目标是啥?还没有想过。不过类似户外的活动,我将会愈少的参与。

以下猛击可查看大图
---- 登山部分 ----



---- 海岸线部分 ----





---- 结束部分 ----


Thx for you time!

2008年11月22日星期六

eCos,高度自制性的嵌入式操作系统

eCos, embedded configuratable os. 这个名字很好的说明了这个操作系统的特性,高度可 配置的嵌入式操作系统。他现在是非常流行的嵌入式操作系统,支持很多嵌入式平台(远远 不只是ARM平台),而且配置简单。他原先是由Cygnus开发,后来归于Red Hat旗下。

安装

你可以按照官方的方来安装eCos,使用脚本来完成整个下载和安装过程很方便,这个过程安 全但是不可靠。其实本质上需要的就是下载两个包,和一套安装方法。

解压后的目录可以放置在任意位置(例如/opt/redboot),然后在此目录下创建以下脚本— (记住设置系统环境变量ECOS_REPOSITORY)

#!/bin/sh
export ECOS_DEST=/opt/redboot
export ECOS_REPOSITORY=$ECOS_DEST/ecos-2.0/packages/
export PATH=$PATH:$ECOS_DEST/gnutools/i386-elf/bin/:$ECOS_DEST/ecos-2.0/tools/bin


rm build -rf
mkdir build
cd build
# ecosconfig new TARGET [template [version]]
# -- create a configuration file: ecos-2.0/packages/ecos.ecc
ecosconfig new pc redboot

# ecosconfig import
# -- import additional config info
ecosconfig import ${ECOS_DEST}/ecos-2.0/packages/hal/i386/pc/v2_0/misc/redboot_FLOPPY.ecm

# ecosconfig tree
# -- create a build tree
ecosconfig tree
make
这样就得到一个裸露的内核redboot.bin,可以制作一个启动软盘,来在虚拟机里测试它。

ecos术语

package

parcket关键字对应一组完成独立功能的代码包,他可以内嵌cdl脚本,来容纳更小的单位, 如cdl_option和cdl_component。 option和component是更小的代码元素,在解析之后将会成为C语言的宏。比如:

cdl_option CYGSEM_REDBOOT_DEFAULT_NO_BOOTP {
user_value 1
};

生成在.h文件,就是 CYGSEM_REDBOOT_DEFAULT_NO_BOOTP 1

target

target指定某种目标架构,关键字下将会定义很多的packet,来设置需要的组建和代码包。

target edb9302 {
alias { "Cirrus Logic EDB9302 evaluation board" ep9302 }
packages { CYGPKG_HAL_ARM
CYGPKG_HAL_ARM_ARM9
CYGPKG_HAL_ARM_ARM9_EP93XX
CYGPKG_DEVS_FLASH_STRATA
CYGPKG_DEVS_FLASH_EDB9301
CYGPKG_DEVS_ETH_ARM_EP93XX
}
description "
The EDB9302 target provides the packages needed to run eCos on the Cirrus Logic
EP9302 based development boards."

set_value CYGHWR_HAL_ARM_EDB93XX_VARIANT "EP9302"
}

此target旨在建立edb9302,他会包含packets中指明的packet,并且设置宏 CYGHWR_HAL_ARM_EDB93XX_VARIANT "EP9302"

template

template是指为某种目的build而建立的相应模板配置,比如选取一些包,配置一些选项等 等。在目录 ecos-2.0/package/templates 下面有一些模板的目录。

文件 ecos.db

ecos-2.0/packages/ecos.db是ecos的选项总表,是维系整个ecos代码的数据库。他定义了 全部的target和target所需要packets。ecosconfig将从中获取信息,构建ecos.ecc,从而 完成代码树的构建。

文件 ecos.ecc

由ecosconfig声称的目标代码的设置文件,他包括了生成目标代码所需的所有选项配置,包 括了template, option,component等等等等。ecos.ecc有可能包含有冲突的部分,你需要 解决这些冲突,然后ecosconfig tree 声称代码树。

解释刚才的redboot.sh脚本

ecosconfig new pc redboot

此命令来创建一个针对target pc的ecc脚本,他将选取redboot作为模板。根据模板和 ecos.db,ecosconfig会向ecos.ecc脚本放置所有可能的组建,选项和包集合。

ecosconfig import ${ECOS_DEST}/ecos-2.0/packages/hal/i386/pc/v2_0/misc/redboot_FLOPPY.ecm

引入ecm设置,表明我们选择的启动媒体是软盘,你也可以选择其他介质。

ecosconfig tree

根据ecos.ecc来生成代码集合,之后make,完成编译安装。

eCos架构

这是一个ecos的系统框图,框图重点突出了Hardware Abstraction Layer在eCos中的重要作 用。如果要领悟这些,还需要参看eCos代码。


这里重点表述了redboot模板的eCos系统架构,redboot相当于是一个bootloader,但是他的 作用远远不只是启动内核那么简单。除了提供网络功能,他还包括了硬件初始化,调试,文 件系统等等功用。是嵌入式中应用非常广泛的bootloader。

有空下次聊聊eCos的源代码架构。

http://en.wikipedia.org/wiki/ecos
http://ecos.sourceware.org/

http://www.ecoscentric.com/ecos/ecospro.shtml

2008年11月17日星期一

脚踏排牙山顶

这次活动去了排牙山,排牙山位于深圳龙岗区的大鹏半岛,这里也是深圳的最东边。大约也
是深圳最后一片未开发的原始森林。这里保持了古森林的特色,大鹏半岛三面环海,景色非
常秀丽,山下是大亚湾,坐落着出名的大亚湾核电站。不过要欣赏美景就要付出代价,排牙
山上没有护栏和石阶,为开发的山路会考验你的脚力,而且排牙山山脉险峻,个别路段陡峭,
给出行带来很大难度。

组织:17爬爬吧
领队:阿文,黄瓜,阿鹏
合作:朗森户外
报名:91人
难度:标准+
地图:点击这里



前面罗嗦了很多,讲的就是此行的意义:能够在艰难的环境中披荆斩棘,会当绝顶,领略到
大鹏美景,这毫无疑问是最有成就感的。排牙山旅途将会经历险要的山路,连绵的山峦,似
乎是在牙齿顶端上下起伏,相信这也是排牙山得名的由来。
猛击图片查看大图



经历山顶的起伏,这一路真是险象环生,有部分人中途退出,也有体力透支情况出现。可以
想象排牙山的难度。如果各位朋友要征服排牙山,那定要足够的体力和意志。多人出行需要
作足准备,从登山鞋到活络油不一而足。



下山段也绝对不轻松,很多地方陡峭而且土质疏松。有朋友在这里摔跤和抽筋。




这次旅程在艰险中度过,除了放弃以外,还有中途退出,体力透支,小腿抽筋等意外情况发
生。在后半段过程因为抄近路的原因,领队选择了一段溯溪线路,这段路途很有难度,而且
在六点半钟情况攀爬岩石,大家着实受了苦头。

最后和同行聊天才得知,这次是一次商业性的组织活动,朗森是东莞的一家专门组织户外互
动的公司,本次活动公召集81人参与报名,预计实际参与人数在75人左右。而领队大约只有
6人,而且分布不足,介于人数过多,在旅途中很少得到周围的援助,毕竟认识的人不多,
而且领队都远远的跑在了前面,所以登山之旅实在有些焦躁。如果下次仍旧有此类活动,我
当考虑参与队伍的规模和组织形式。

最后的图片,容易让人产生遐想:

_

2008年11月16日星期日

正版软件距离我们多远

最近喧闹的微软黑屏事件影响力可谓波涛汹涌,各方都对此事表达自己的观点。其实形式如
何,大家心知肚明。然而无论是为自己使用盗版谋权力的个人用户,还是正版用户的铁杆支
持者,都对国家的软件产业抱有怀疑态度——正版推广,真的很难。

前些天,深圳第一现场也对此事进行了报道,文中表达了自己对微软黑屏事件的看法:

首先是加大正版软件使用力度,维护软件开发人员和发布厂商权益。


另一方面是减少对单向软件的依赖度。且拿Linux的发布版本Ubuntu为例,推介软件用户除
微软产品以外的更多选择(这里的Ubuntu还打印错了……)。


还有一方面,是加大国有软件的扶植力度,培养有竞争力的自身软件产业。这个例子选取了
最近推出的个人免费版本的WPS国产办公软件。


不过在我看来,国家和媒体对软件权益的认知都建立在软件版权的基础之上,这个出生于微
软之手的概念为微软等软件商带来丰厚的利润。大家可以尝试一下GNU系列软件,他立志于
推广自由软件产业,也尝试保护开发者的权益。Linux就是GNU旗下软件,遵循GPL条例。

2008年11月2日星期日

山清水秀塘朗山

这次户外活动选择了塘朗山,塘朗山位于南山北部,是宝安和南山的北部分界线;拥有西丽
水库和梅林水库两个水源,山水秀丽,而且攀爬容易,属于休闲娱乐级别。可谓是居家旅
游,避暑游乐之必选之地……

组织:狼行天涯③(Q群 63191237)
领队:wolf, 小雨
说明:桃源村,螳螂山顶,东部穿越到梅林水库
地图:
http://maps.google.com/maps/ms?ie=UTF&msa=0&msid=102563878911537749872.00045ab3e58dd543dec97

废话不说,启程带你们领略秀丽的山水咯~

这里是桃源村的塘朗山入口。进入正门之后就可以上东边坡路,这条道路开发的非常好!阶
梯让攀爬更加容易。深圳城市这一点让人很是欣慰,梧桐山,大南山等大约所有的景点开发
的非常不错。


桃源村这一段路,难度不高。因为路程短暂,不消一会儿,就可以到达山顶。在这里可以看
到深圳梅林一代的城市景观。早上的雾气和蹩脚的技术,让照片技术打了折扣。


12点后开始东移,沿着塘朗山脉起伏升降,三、四十人的队伍也是够壮观的。我们在一个平
台处开始吃午饭,中途有家伙开始打牌。扑克……平民化的艺术!


梅林段的地势开始恶劣起来……山道变的崎岖,沿着溪流而下,甚至有了溯溪的感觉。大家都
没有任何准备,路途变得缓慢艰难。不少人失身于此。


到达一个小瀑布的时候,路途的艰难程度达到最大,山路陡峭。但这也是后半段景色嘴秀丽
的位置,可谓是RPG的小高潮。好在大家团结一心,没有人受伤。如果各位有打算经历此路
程,一点要有心理准备。


到达山脚,天堑变通途!走起来轻松之极,脚步也轻快多了。短时间之后,立刻看到本次行
动的终点,梅林水库大坝。


这里的景色真是非常美丽,这些天让俺们郁闷的情绪一扫而光。就赖在这里多多拍了几张。


梅林水库的大坝上面,没啥好说的了。


最后是大家的集体照,希望各位读者多多参加户外运动,陶冶情操,多多益善:)


谢谢大家的时间:)