??xml version="1.0" encoding="utf-8" standalone="yes"?> 【正文?/p>
ARM+LINUX路线Q主d入式Linux操作pȝ及其上应用Y件开发目标:(x) Q?Q?掌握L嵌入式微处理器的l构与原理(初步定ؓ(f)arm9Q?/p>
Q?Q?必须掌握一个嵌入式操作pȝ Q初步定为uclinux或linux,版本待定Q?/p>
Q?Q?必须熟?zhn)嵌入式Y件开发流Eƈ臛_做一个嵌入式软g目?/p>
从事嵌入式Y件开发的好处是:(x) Q?Q目前国内外q方面的人都很稀~。这一领域入门门槛较高Q所以非专业IT人员很难切入q一领域Q另一斚wQ是因ؓ(f)q一领域较新Q目前发展太快,大多Ch无条件接触?/p>
Q?Q与企业计算{应用Y件不同,嵌入式领域h才的工作强度通常低一些(但收入不低)?/p>
Q?Q哪天若惛_业,搞自已的产品Q嵌入式不像应用软g那样Ҏ(gu)被盗版。硬件设计一般都是请其它公司l订做(q叫“贴牌”QOEMQ,都是通用的硬Ӟ我们只管设计软g变成自q产品了?/p>
Q?Q兴所在,q是最主要的?/p>
从事嵌入式Y件开发的~点是:(x) Q?Q?入门L(fng)较高Q所用到的技术往往都有一定难度,若Yg基础不好Q特别是操作pȝUY件功底不深,则可能不适于此行?/p>
Q?Q这斚w的企业数量要q少于企业计类企业?/p>
Q?Q有数公司l常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公怹q无此要求,只要有经验即可?/p>
Q?Q^C托强Q换q_比较辛苦?/p>
兴趣的由来:(x) 1、成功观念不同,不虚度此生,是我的成功?/p>
2、喜Ƣ思考,挑战逻辑思维?/p>
3、喜ƢC C是一U能发挥思维极限的语a。关于C的精的一些方面可以被概述成短句如下:(x) 怿E序员?/p>
不要LE序员做那些需要去做的?/p>
保持语言短小_ֹ?/p>
一U方法做一个操作?/p>
使得它运行的够快Q尽它q不能保证将是可UL的?/p>
4、喜Ƣ底层开发,讨厌vbcd发工Pq不是说vb不好Q?/p>
5、发展前景好Q适合创业Q不惌pM的时候还是一个工E师?/p>
Ҏ(gu)步骤Q?/p>
1、基知识Q?/p>
目的Q能看懂g工作原理Q但重点在嵌入式软gQ特别是操作pȝUYӞ那将是我的优ѝ?/p>
U目Q数字电(sh)路、计机l成原理、嵌入式微处理器l构?/p>
汇编语言、C/C++、编译原理、离散数学?/p>
数据l构和算法、操作系l、Y件工E、网l、数据库?/p>
Ҏ(gu)Q虽U目众多Q但都是较简单的基础Q且大部分已掌握。不一定全学,可根据需要选修?/p>
L书籍Qthe c++ programming languageQ一直没旉读)、数据结?C2?/p>
2、学?fn)linuxQ?/p>
目的Q深入掌握linuxpȝ?/p>
Ҏ(gu)Q用linux—〉linxupȝ~程开发—〉驱动开发和分析linux内核。先看深Q那主讲原理。看几遍后,看情景分析,对照qQ两本交叉,深是UԌ情是目。剖析则?.11版,适合学习(fn)。最后深入代码?/p>
L书籍Qlinux内核完全剖析、unix环境高~程、深入理解linux内核、情景分析和源代?/p>
3、学?fn)嵌入式linuxQ?/p>
目的Q掌握嵌入式处理器其及系l?/p>
Ҏ(gu)Q(1Q嵌入式微处理器l构与应用:(x)直接arm原理及汇~即可,不要重复x86?/p>
Q?Q嵌入式操作pȝc:(x)ucOS/II单,开源,可供入门。而后深入研究uClinux?/p>
Q?Q必L块开发板Qarm9以上Q,有条件可参加培训Q进步快Q能认识些朋友)?/p>
L书籍Q毛h的《嵌入式pȝ》及其他arm9手册与arm汇编指o(h){?/p>
4、深入学?fn)?x) A、数字图像压~技术:(x)主要是应掌握MPEG、mp3{编解码法和技术?/p>
B、通信协议及编E技术:(x)TCP/IP协议?02.11QBluetoothQGPRS、GSM、CDMA{?/p>
C、网l与信息安全技术:(x)如加密技术,数字证书CA{?/p>
D、DSP技术:(x)Digital Signal ProcessQDSP处理器通过g实现数字信号处理法?/p>
说明Q太多细节未说明Q可Ҏ(gu)实际情况调整。重点在??Q不必完全按照顺序作。对于学?fn)c++Q理由是c++不只是一U语aQ一U工P?
q是一U艺术,一U文化,一U哲学理c但不是拿来炫耀得东ѝ对于linux内核Q学?fn)编E,M些优U代码也是有必要的?/p>
注意Q 要学?x)D一反多Q有强大的基Q很多东西简单看看就能会(x)。想成ؓ(f)合格的程序员Q前提是必须熟练臛_一U编E语aQƈh良好的逻辑思维。一定要理论l合实践?/p>
不要一味钻研技术,虽然挤出旉是很隑ց到的Q但q是要留点余地去完善其他的爱好,比如宇宙Q素描、机械、管理,心理学、游戏、科qȝ(sh)影。还有一些不愿意做但必须要做的! 技术是通过~程~程在编E编出来的。永q不要梦想一步登天,不要做Qw的人,不要觉得路途O上。而是要编E编E在~程Q完了在~程Q在~程Q等Z(x)来了在创业(不要怿有奇q发生,盲目创业很难成功Q即便成功了发展I间也不一定很大)?/p>
嵌入式书c推?/p>
Linux基础 1、《Linux与Unix Shell ~程指南?/p>
C语言基础 1、《C Primer PlusQ?th Edition》【美】Stephen Prata着 2、《The C Programming Language, 2nd Edition》【美】B(ti)rian W. Kernighan David M. RithieQK & RQ着 3、《Advanced Programming in the UNIX EnvironmentQ?nd Edition》(APUEQ?/p>
4、《嵌入式Linux应用E序开发详解?/p>
Linux内核 1、《深入理解Linux内核》(W三版) 2、《Linux内核源代码情景分析》毛h 胡希明着 研发方向 1、《UNIX Network Programming》(UNPQ?/p>
2、《TCP/IP详解?/p>
3、《Linux内核~程?/p>
4、《Linux讑֤驱动开发》(LDDQ?/p>
g基础 1、《ARM体系l构与编E》杜春雷着 2、S3C2410 Datasheet p基础 1、《计机与通信专业p?/p>
pȝ教程 1、《嵌入式pȝ――体pȝ构、编E与设计?/p>
2、《嵌入式pȝ――采用公开源代码和StrongARM/Xscale处理器》毛h 胡希明着 3、《Building Embedded Linux Systems?/p>
理论基础 1、《算法导论?/p>
2、《数据结构(C语言版)?/p>
3、《计机l织与体pȝ?性能分析?/p>
4、《深入理解计机pȝ》【美】Randal E. Bryant David O”Hallaron着 5、《操作系l:(x)_N与设计原理?/p>
6、《编译原理?/p>
7、《数据通信与计机|络?/p>
8、《数据压~原理与应用?/p>
C语言书籍推荐 1. The C programming language 《EE序设计语言?/p>
2. Pointers on C 《E和指针?/p>
3. C traps and pitfalls 《E陷阱与缺陗?/p>
4. Expert C Lanuage 《专ӞE~程?/p>
5. Writing Clean Code ?#8211;Microsoft Techiniques for Developing Bug-free C Programs 《编E精_?#8211;Microsoft ~写优质无错Q程序秘诀?/p>
6. Programming Embedded Systems in C and C++ 《嵌入式pȝ~程?/p>
7.《C语言嵌入式系l编E修点{?/p>
8.《高质量C++/C~程指南》林?/p>
可能多的编码,要学好CQ不能只注重C本n。算法,架构方式{都很重要?/p>
sudo mkdir fallback
cd fallback
sudo cp /usr/share/fonts/truetype/arphic/uming.ttc /usr/lib/jvm/java-1.5.0-sun-1.5.0.15/jre/lib/fonts/fallback
sudo mkfontdir
sudo mkfontscale
]]>
值得庆幸的是QUnix提供了全屏幕的Vi~辑器,q我们的工作轻松不。不DOS用户抱怨Vi~辑器不象DOS下的~辑器如edit那么好用Q这? 因ؓ(f)Vi考虑到各U用L(fng)需要,没有使用某些通用的编辑键Q在各个不同的终端机上他们的定义是不同的Q在某些l端Z甚至没有q些键)。而是采用状态切? 的方法,但这只是?fn)惯的问题,一旦你熟练的用上了vi你就?x)觉得它其实也很好用。虽? Vi采用了状态切换的Ҏ(gu)Q但?sh)脑的硬件及操作pȝ多种多样Q某些电(sh)脑的键盘上没有特定的几个功能键!那麽不就有某些功能不能用了?q个问题? Unix pȝ上也一P几乎各大?sh)脑厂商都有自己的Unix pȝQ?vi 的操作方法也?x)随之有点出入。这里我们采?PC 的键盘来说明 vi 的操作,但在具体的环境中q要参考相应的资料Q这一Ҏ(gu)值得注意的?
二、Vi入门
Q一Q、进入vi
在系l提C字W???)下敲入vi Q档案名UͼQvi 可以自动帮你载入所要编辑的文g或是开启一个新文gQ如果该文g不存在或~少文g名)。进?vi 后萤q左方会(x)出现波浪W号Q凡是列首有该符号就代表此列目前是空的?
(二)、两U模?
如上所qͼvi存在两种模式Q指令模式和输入模式。在指o(h)模式下输入的按键做为指令来处理Q如输入aQvi卌为是在当前位|插入字W。而在输入 模式下,vi则把输入的按键当作插入的字符来处理。指令模式切换到输入模式只需键入相应的输入命令即可(如a,AQ,而要从输入模式切换到指o(h)模式Q则需 在输入模式下键入ESC键,如果不晓得现在是处於什麽模式,可以多按几次 [ESC]Q系l如发出哔哔声就表示已处于指令模式下了?
付:(x)有指令模式进入输入模式的指o(h)Q?
新增 (append)
a Q从光标所在位|後面开始新增资料,光标後的资料随新增资料向後移动?
AQ?从光标所在列最後面的地方开始新增资料?
插入 (insert)
iQ?从光标所在位|前面开始插入资料,光标後的资料随新增资料向後移动?
I Q从光标所在列的第一个非I白字元前面开始插入资料?
开?(open)
o Q在光标所在列下新增一列ƈq入输入模式?
O: 在光标所在列上方新增一列ƈq入输入模式?
Q三Q、退出vi
在指令模式下键入:q,:q!,:wq?x(注意:PQ就?x)退出vi。其?wq?x是存盘退出,?q是直接退出,如果文g已有新的? 化,vi?x)提CZ保存文g?q命o(h)也会(x)失效Q这时你可以?w命o(h)保存文g后再?q退出,或用:wq?x命o(h)退出,如果你不想保存改变后的文Ӟ? 需要用:q!命o(h)Q这个命令将不保存文件而直接退出vi?
Q四Q、基本编?
配合一般键盘上的功能键Q像是方向键、[Insert] 、[Delete] {等Q现在你应该已经可以利用 vi 来编辑文件了。当?vi q提供其他许许多多功能让文字的处理更为方ѝ?
何谓~辑Q一般认为是文字的新增、修改以及删除,甚至包括文字区块的搬UR复制等{。先q里介绍 vi的如何做删除与修攏V(注意Q在 vi 的原始观念里Q输入跟~辑是两码子事。编辑是在指令模式下操作的,先利用指令移动光标来定位要进行编辑的地方Q然後才下指令做~辑。)
删除与修Ҏ(gu)件的命o(h)Q?
xQ?删除光标所在字W?
dd Q删除光标所在的列?
r Q修改光标所在字元,r 後接著要修正的字W?
RQ?q入取替换状态,新增文字?x)覆盖原先文字,直到?[ESC] 回到指o(h)模式下ؓ(f)止?
sQ?删除光标所在字元,q进入输入模式?
SQ?删除光标所在的列,q进入输入模式?/p>
其实呢,在PC上根本没有这麽麻烦!输入跟编辑都可以在输入模式下完成。例如要删除字元Q直接按[Delete]
不就得了。而插入状态与取代状态可以直接用 [Insert]
切换Q犯不著用什麽指令模式的~辑指o(h)。不q就如前面所提到的,q些指o(h)几乎是每台终端机都能用,而不是仅仅在 PC 上?br />
在指令模式下Ud光标的基本指令是 h, j, k, l 。想来各位现在也应该能猜到只要直接用 PC 的方向键可以了Q而且无论在指令模式或输入模式下都可以。多Ҏ(gu)不是?br />
当然 PC 键盘也有不之处。有个很好用的指?u 可以恢复被删除的文字Q?U 指o(h)则可以恢复光标所在列的所有改变。这与某些电(sh)脑上?[Undo] 按键功能相同?br />
三、附Ӟ(x)vi详细指o(h)?br />
Q一Q、基本编辑指令:(x)
新增 (append)
a Q从光标所在位|後面开始新增资料,光标後的资料随新增资料向後移动?
AQ?从光标所在列最後面的地方开始新增资料?
插入 (insert)
iQ?从光标所在位|前面开始插入资料,光标後的资料随新增资料向後移动?
I Q从光标所在列的第一个非I白字元前面开始插入资料?
开?(open)
o Q在光标所在列下新增一列ƈq入输入模式?
O: 在光标所在列上方新增一列ƈq入输入模式?
xQ?删除光标所在字W?
dd Q删除光标所在的列?
r Q修改光标所在字元,r 後接著要修正的字W?
RQ?q入取替换状态,新增文字?x)覆盖原先文字,直到?[ESC] 回到指o(h)模式下ؓ(f)止?
sQ?删除光标所在字元,q进入输入模式?
SQ?删除光标所在的列,q进入输入模式?
Q二Q、光标移动指令:(x)
由於许多~辑工作是藉由光标来定位Q所?vi 提供许多Ud光标的方式,q个我们?br />
几张表来说明Q这些当然是指o(h)模式下的指o(h)Q:(x)
指o(h)K?K说?K�K�K� 功能?
0 Ud到光标所在列的最前面 [Home]K?br />
$ K?Ud到光标所在列的最後面 [End]
[CTRL][d] 向下半页 K?[PageDown]
[CTRL][f] 向下一?
[CTRL][u] 向上半页K?
[CTRL][b] 向上一?[PageUp]
指o(h) 说明
H Ud到视H的W一?br />
M Ud到视H的中间?br />
L Ud到视H的最後列
b UdC个字的第一个字?br />
w U~细鲎值牡谝桓鲎帜?nbsp; K�
e UdC个字的最後一个字?br />
^ Ud到光标所在列的第一个非I白字元
指o(h) 说明 K�K?br />
n- 减号UdC一列的W一个非I白字元前面加上数字可以指定UdC?n ?
n+ 加号UdC一列的W一个非I白字元前面加上数字可以指定UdC?n ?br />
nG 直接用数?n 加上大写 G Ud到第 n ?br />
指o(h) 说明
fx
往右移动到 x 字元?
Fx 往左移动到 x 字元?K?br />
tx 往右移动到 x 字元前�K�
Tx 往左移动到 x 字元?br />
; 配合 f&t 使用Q重复一ơ�K?br />
,K� 配合 f&t 使用Q反方向重复一?br />
/string 往右移动到?string 的地?br />
?string 往左移动到?string 的地?br />
n K?配合 /&? 使用Q重复一?
N K?配合 /&? 使用Q反方向重复一?
指o(h) 说明 K备?br />
n(
左括L(fng)动到句子的最前面句子是以前面加上数字可以指定往前移?n 个句?! . ? 三种W号来界?br />
n)K?xL(fng)动到下个句子的最前面前面加上数字可以指定往後移?n 个句?! . ? 三种W号来界?br />
n{ K� 左括弧移动到D落的最前面 D落是以D落间的I白列界?br />
n} 前面加上数字可以指定往前移?n 个段落右括弧UdC个段落的最前面前面加上数字可以指定往後移?n 个段?D落是以D落间的I白列界?
Q三Q、更多的~辑指o(h)
q些~辑指o(h)非常有弹性,基本上可以说是由指o(h)与范围所构成。例?dw 怯缮境?nbsp;d 与范?w 所l成Q代表删除一个字 d(elete) w(ord) ?br />
指o(h)列表如下Q?br />
d 删除(delete)
y 复制(yank)
p 攄(put)
c 修改(change)
范围可以是下列几个:(x)
e 光晁谖恢玫C米值淖钺嵋桓鲎?br> w 光标所在位|到下个字的W一个字?br />
b 光标所在位|到上个字的W一个字?br />
$ 光标所在位|到该列的最後一个字?br />
0 光标所在位|到该列的第一个字?br />
) 光标所在位|到下个句子的第一个字?br />
( 光标所在位|到该句子的W一个字?br />
} 光标所在位|到该段落的最後一个字?br />
{ 光标所在位|到该段落的W一个字?br />
说实在的Q组合这些指令来~辑文g有一点点艺术气息。不怎麽P它们提供更多~辑文字的能力。值得注意的一Ҏ(gu)删除与复刉?x)将指定范围的内?gu)到暂存区里,然後可以用指o(h) p 贴到其它地方去,q是 vi 用来处理区段拯与搬Uȝ办法?br />
某些 vi 版本Q例?Linux 所用的 elvis
可以大幅化这一坨指令。如果稍微观察一下这些编辑指令就?x)发现问题其实是定范围的方式有点杂,实际上只有四个指令Ş了。指?v 非常好用Q只要按?
v 键,光标所在的位置׃(x)反白Q然後就可以Ud光标来设定范_(d)接著再直接下指o(h)q行~辑卛_。对於整列操作, vi
另外提供了更方便的编辑指令。前面曾l提到过删除整列文字的指?dd 是其中一个;cc 可以修改整列文字Q?yy 则是复制整列文字Q指?D
则可以删除光标到该列l束为止所有的文字?br />
Q四Q、文件操作指?br />
文g操作指o(h)多以 : 开_(d)q跟~辑指o(h)有点区别?br />
:q l束~辑(quit)
:q! 不存档而要攑ּ~辑q的文g?br />
:w 保存文g(write)其後可加所要存档的档名?br />
:wq 卛_档後d?br />
zz 功能?:wq 相同?br />
:x ?wq相同
sudo apt-get install python-mutagenq入 mp3 所在的文g夹下
mid3iconv -e GBK *.mp3?ok ?br />
find . -iname "*.mp3" -execdir mid3iconv -e gbk {} ";