1.当前在嵌入式系统开发中有哪些常用的源码bootloader
2.ubootåsuperviviä»ä¹åºå«
3.我想学习arm 但还未碰过 高手能不能给我指教一下 谢谢了 能不能给我推荐一款开发板
4.å¦ä¹ åµå
¥å¼å¼åè¦å¦ä¹ åªäºç¥è¯ï¼
当前在嵌入式系统开发中有哪些常用的bootloader
常见bootloader介绍
1.U-BOOT介绍
uboot是一个庞大的公开源码的软件。他支持一些系列的源码arm体系,包含常见的源码外设的驱动,是源码一个功能强大的板极支持包。其代码可以从/developer)
vivi是源码韩国mizi 公司开发的bootloader, 适用于ARM9处理器。 Vivi有两种工作模式:启动加载模式和下载模式。源码内核源码包 路径启动加载模式可以在一段时间后(这个时间可更改)自行启动linux内核,源码这时vivi的源码默认模式。在下载模式下,源码vivi为用户提供一个命令行接口,源码通过接口可以使用vivi提供的源码一些命令,如下:
命令
功能
Load
把二进制文件载入Flash或RAM
Part
操作MTD分区信息。源码显示、源码增加、源码删除、源码复位、保存MTD分区
Param
设置参数
Boot
启动系统
Flash
管理Flash,如删除Flash的数据
vivi代码分析
vivi的代码包括arch,init,lib,drivers和include等几个目录,共多条文件。
Vivi主要包括下面几个目录:
arch:此目录包括了所有vivi支持的目标板的子目录,例如s3c目录。
drivers:其中包括了引导内核需要的设备的驱动程序(MTD和串口)。MTD目录下分map、nand和nor三个目录。
init:这个目录只有main.c和version.c两个文件。和普通的C程序一样,vivi将从main函数开始执行。
lib:一些平台公共的接口代码,比如time.c里的udelay()和mdelay()。
include:头文件的公共目录,其中的s3c.h定义了这块处理器的一些寄存器。Platform/smdk.h定义了与开发板相关的资源配置参数,我们往往只需要修改这个文件就可以配置目标板的参数,如波特率、引导参数、物理内存映射等。
ubootåsuperviviä»ä¹åºå«
ä¹ç®æ¯ä¸ç§å®éªå§ãminiæ两ç§å¯å¨æ¹å¼ï¼ä¸ç§æ¯Norå¯å¨ï¼ä¸ç§æ¯Nandå¯å¨ãæ 论æ¯åªä¸ç§å¯å¨æ¹å¼é½éè¦BootLoaderï¼è¿é说çBootLoaderå°±æ¯SuperviviåUbootäºï¼å ³äºBootloaderéè¦æ§ï¼ç½ä¸æå¾å¤èµæï¼æå°±ä¸åéå¤äºãPSï¼Superviviæ¯è¾éååå¦è 使ç¨ï¼Ubootåæ¯æ´å çµæ´»ï¼æä¾TFTPãNFSã串å£çä¸è½½æ¹å¼ã
SUPERVIVIæ¯ååå¨VIVIåºç¡ä¸å¢å æ°åè½èæçï¼ æ主è¦ä¹ææ¯ç¨çæ¯å¢å äºUSBåè½ï¼ ååå¼åæ¿ç声ææ¯ä¸æä¾SUPER VIVIçæºä»£ç ï¼ ä½æä¾BINæ件ã
我想学习arm 但还未碰过 高手能不能给我指教一下 谢谢了 能不能给我推荐一款开发板
1.抓住开发ARM
这几个月来我一直都爬在的问题,自己都有一点笑自己了,用了4个月的时间,来巩固的原理和程序,还好我自己算是走过来了,自己笨,身边的高才生又看不上的原理,他们都比较“牛”,趣树源码说过时了,你问那个做什么?我比较郁闷!过时吗?我有一点怀疑?
他们不愿意说有他们自己的理由,没有人强求,靠自己好了。
我自己个人的观点:是一个基础,而且还很重要,这是再我看了ARM之后感觉到的。它可以加速你的ARM学习速度,真得!不相信你试一试好了。
凡是要求一个速度、效率,不要做一些无用功,抓紧身边的每一个一分钟,人是活的,东西(知识、书)是死得,想要做的事情因此就简单了。
2.我在网上看到了一篇很不错的ARM文章,粘贴过来,为了和像我一样在很少有人帮助的情况下,自学ARM 的难兄难弟们。
“ARM怎么入门”。我不是高手,仍然是菜鸟。
但是回想起自己当时的迷茫,特意写了这篇东西,当作给和我一样的兄弟姐妹的帮助吧。问这个问题的人多半不是已经工作的工程师,而是和我一样是学生,所以这篇笔记就把看家当成我一样的菜鸟,高手勿怪。
首先声明:本人还没有找工作,事实上处于研究生刚毕业,还没开始找工作的空闲时间,B0只是兴趣所在,打发时间。
所有看法完全是自己的感受,不代表任何他人。错了的观点各位帮我纠正。再次补充:很多朋友看了上面的话就问我为什么研究生毕业了还不找工作:)说是打发时间,其实是因为研究生的时候带了一个项目,申请提前毕业以后项目还有块尾巴,答应导师把项目做完再走:)就这么简单。男人总点负点责,呵呵
以下问题常被问到,安装源码编译我就想到哪说到哪吧。
一 首先说说ARM的发展
可以用一片大好来形容,翻开各个公司的网站,招聘里面嵌入式占据了大半工程师职位。
广义的嵌入式无非几种:传统的什么、AVR、PIC称做嵌入式微控制器;ARM是嵌入式微处理器;DSP;FPGA。
客观的讲,工作需求量上DSP的需求比ARM要多,而ARM和FPGA差不多。
DSP因为数字处理与通信领域的空前发展而火暴,小到MP3 射象头,大到我们军品里的控制器,应用面很广。
FPGA的兄弟一般做ANSIC(特殊芯片设计,好象是这么翻译的)。而ARM单纯说来并不比一个单片机强多少,但是它的独特就在于不断下降的价格和提升的性能。这完全依靠于ARM公司的战略,厉害!!很佩服他们的战略眼光!!
值得注意的是:在找工作中,企业(著名的,小的不算)对单纯的ARM硬件开发工程师并不比单片机重视,很少有大企业的职位里写“从事过ARM开发优先”。写的多的是什么?“嵌入式LINUX”到这相信大家看出来了吧,需要的是硬件中的软件。
二 ARM是硬件还是软件
很难说,ARM是硬件,LINUX是软件。ARM的硬件多半已经模块化了,像我这样把板子改成这样的就算动的多的了,这同样是ARM公司的战略,再次佩服。
实际中的LINUX的开发工作更多,更耗时。从这方面说ARM应该算是软件了。
在找工作中更是这样,举个例子,联想里和ARM最接近的是“BIOS工程师”是软件,MOTO里接近的是嵌入式LINUX工程师是软件。而其他很多公司把嵌入式产品开发归为硬件。所以,不要讨论这个,图灵课堂源码好好玩转自己的板子才是关键。实在不爽你就把自己叫“嵌入式开发工程师”
三 要不要买开发板 买哪家
我的答案是“在你个人的学习方法”,但是如果看家是需要看这骗笔记的水平,个人推荐还是买现成的。
1 买
买板子可以把注意力集中在软件开发上,软件开发(尤其是驱动)可以不必担心自己硬件上的问题,我就是以便调试一边写驱动和程序,每次写驱动前就要先确认硬件没问题。另外,买板子更省钱和时间,我自己做的板子,原理图PCB花了2周以上!制版又天,回来以后焊接B0 个脚!那叫一个麻烦 ~~花了多少钱呢?2层板,制版费就块!当然 我把接口都外引了,还做了个X的LCD背板,板子比较大。总体下来 元件+LCD屏+PCB =XX块!够的了。
再有就是买的资料相对来说比较全,但是不要指望有技术支持!都是骗人的,卖你之后就不会理你。
2 做
自己做可以更了解底层硬件,可以按照自己的要求加东西,比如我就加了GPS模块、 GPRS模块 、SD卡模块,扩了个IIC的个键子的键盘、把LCD接口按照买的LCD改装了,可以用FPC线直接连接。做的很爽的。玩一把吗。
当然,你可以有策略的做,比如像我一样,把RAM和ROM,网络都保持和某现成的板子一样,这样他们的资料你就可以拿过来直接用,给自己留个退路。其他的如SD了 什么的自己做。都达到了~~就是费钱,费时间。
再有就是网店源码推荐给做的朋友几点建议:尽量拿到现成的板子,尽量多搜集其他板子的全套资料,一定要拿到一张没问题的原理图。
网上流传的原理图多数是龚俊年画的,再这里对龚俊表达一下我的敬意!!牛人!
但是那个图有个小BUG,我指的是版的,后来的没这问题了。那地址线和地址有问题。还有人仿照他的PDF图画的SCH,更是漏洞百出!谴责!顺便谴责把龚俊板子偷卖的人。
3 买哪家
个人感觉分3类吧
1)首先是ZLG的,资料非常的全,感觉他是真正想教你怎么开发ARM,而不是像有的公司自己技术都没做好就做个板子出来卖钱。但是最大的不利就是价格太贵!而且主要是PHILIP的,货源比较麻烦~~可能有人说XX系列的不贵啊,那是总线不外扩的,只能跑UCOS,不能跑UCLINUX。但是说是话,XX系列才是ARM7的价格性能结合点。ARM7最适合做工业控制,ARM普及,销量都是怎么来的?都是ARM7来的,而B0是典型的商业片子。但是,这里如果你看中的是为工作做准备,还是选能跑UCLINUX的吧。
但是仍然作为第一个推荐,因为菜鸟时期,合适的资料太重要了!!在这里被ZLG的务实精神感动!你看人家那代码写的。
2)感觉立宇泰的B0不错
硬件没别的,就是资料比较全的说,不像有些家,原理图直接拿人家的,还错的~~
3)找个最便宜的
好象最便宜的有卖的吧?也是没别的,就是即省了钱 还省时间搜集资料,至于资料全不全,别计较了~~硬件肯定好使就行吧。
四 要不要有 AVR等单片机基础
有更好,但没有也无所谓。
两个月以前,我只是看别人做,耳濡目染~~,本科学过单片机,从来没做过。我们这的技术主干做AVR和,我就跟他们调过C语言程序。你看出来了?我是个不折不扣的菜鸟吧?
但是做这个之前我特意找了ZLG的两本书,看了里面的例子和原理图,这很重要。例程里有汇编有C,都看懂了就OK,不用自己现写
五 开发都需要学习哪些软件
总结起来最主要的有以下几个吧
1 ADS调试用
确切的说是ADS+AXD。ADS里包含AXD。原来都用SDT后来ARM公司停止对SDT支持了,改支持ADS了,还是用ADS吧。
有的人的程序发布的仍然是SDT版本的,但基本都可以找到相应ADS的,新人在这里不要发蒙。ADS是编译器,AXD是调试器。便宜成AXF以后再在ARM的RAM里调试。
2 PLASHPGM
FLASH烧写的软件。AXD在RAM里调试,掉电就没有了,方便程序修改。调试好的程序再下到FLASH里,上电直接运行。
同类的软件还有很多,什么FLUTED了、FLSHP了都是,但FLASHPGM最好,要是有人还问FLASH不支持BIN格式文件的问题就要看我写的PLASHPGM使用了。
3 BANYANT调试代理(不知道名对不,起这么个难记的,我一般都叫它“半羊”因为知道它那几天刚吃了烤羊)
调试代理就是用它帮你使用更简单的JTAG(便宜啊)来实现原本1K才卖的JTAG仿真器的大部分功能。JTAG调试原理看我另一篇笔记。简单的就可以把他理解为你自己做的JTAG的驱动就行了。
调试代理还有很多种,什么H-JTAG了、ARM7了(不知道具体叫什么,就记得可执行文件叫ARM7.EXE)都是,BANYANT比较好。
需要注意的是,没种调试代理安装方法虽然都简单 但都不一样,需要看说明。而且AXD调试之前都要运行。省钱了,就别怕麻烦了。
4 ARM-ELF-TOOLS工具链
里面是UCLINUX开发用的工具比如ARM-ELF-GCC只类的。工具链就是把很多工具打包在一起发布的方便你开发的东西。具体安装方法看我另一篇笔记。
另外如果你开发LINUX就要用ARM-LINUX-TOOLS,不一样,不通用。
5 U-BOOT
大名鼎鼎的BOOTLOADER生成工具,同类的好象还有VIVI(名字很暧昧~~)
生成的BOOTLOADER烧到FLASH里,然后就可以用BOOTLOADER下载 烧写其他了
有了BOOTLOADER才能下UCLINUX。BOOTLOADER就像电脑上的BIOS。当然UCOS的不用这个,用什么我不知道:)
最新版本是1.1.4 具体使用方法看我另一篇笔记吧。
6 UCLINUX包
UCLINUX的源码包,不用多说了吧?建议大家用现成的先体会一下,然后再自己编译,裁剪。因为单独UCLINUX的编辑技术上比较简单,但涉及的方面还是比较广的。
7 VMWARE
老牌的虚拟机软件,在一个机器上虚拟出一个机器装LINUX(PC上用的),省得你来回开关机了。记得装VMWARE-TOOLS,安装方法在我另一篇笔记里。
六 有哪些书推荐
主要推荐ZLG的三本书,有这3本再加网络就不用别的书了,其中主要推荐前2本,3是介绍体系结构的,也不错
1 ARM嵌入式LINUX系统构建与驱动开发,北航版
驱动写的很详细,前期开发介绍也很好
2 ARM 嵌入式系统实验教程(二),北航版
有ZLG的原理图,实验程序和注释,了解人家是怎么开发的。
3 ARM嵌入式系统基础教程
最重要的是体系结构,汇编部分介绍,看看吧,增加理论素质。
4 B0数据手册
写在这里是强调它的重要。
不推荐ZLG早期出的红色皮的ARM什么体系结构~只类的
写的太多,看烦了。
其他的书没了几本,没看见好的,大家有看过的推荐吧。
七 选UCOS?UCLINUX?LINUX?VXWORKS?还是当单片机用
1 搞开发,工程设计,用UCOS,小巧,多进程,简单,体现了ARM7的精髓。
2 LINUX 正根的嵌入式系统,LINUX消费与通信领域用的比较多,但缺点是必须ARM9才能跑,ARM9的板子自己做就不行了,6层板太贵。买开发板1K达底吧。但是还是推荐选ARM9+LINUX
3 UCLINUX 算投机嵌入式系统:)ARM7上可以跑,由有LINUX近亲,学好好可以比较方便的转向LINUX,像我一样的穷鬼用吧,呵呵
4 VXWORKS
学好后可以找到高薪工作,但工作机会本身并不比LINUX好找。
5 当单片机用
不推荐,虽然我景仰的ZLG一直号召这么干。因为对于学习来说多进程的系统设计才是ARM7的玩头,至少你也要整个UCOS啊:)
有朋友问我先学这个当基础不行吗?那当然可以~~但我当时就用了1周搞定,就是我先的ADS在RAM中调试的笔记。后来我清空FLASH用的小段程序还是当时写的LED闪烁程序呢。另外1周里其中还因为自己过于菜,没把OM设置好导致晶阵不阵
哈哈。这个是必须做的,但一带而过。目标放的远一点。
八 学习要用多长时间
我从菜鸟到现在两个多月,中间被打扰数次。仍然搞定了PCB设计与制版,RAM调试,FLASH下载,UBOOT移植和下载UCLINUX(没剪裁,用现成的),LCD驱动。
再次坦诚的说:我确实比较菜,说这些不是让大家羡慕,只是告诉你们“你们应该比这个更好”
我相信良好的态度+合适的方法+及时的总结=成绩
九 ARM都玩什么
就几点
1 硬件设计
2 系统移植
3 驱动开发
4 应用开发
没了。其中推荐把注意力放在后两个上,3有难度,4比较灵活,最重要的是都是找工作的砝码。
十 我用的什么板子
很多人问我这个问题,我特意写过一个的。再说一次吧。
我是自己做的,RAM、ROM、等比较麻烦而当时的自己不理解的都按照龚俊的做的。保持其他不便的情况下做了如下改动。
1 加了串口通信的GPS模块、 GPRS模块
一个UART0,一个UART1,当与要用超级终端时用跳线切换。
2 SD卡,和触摸屏
同时挂在SPI总线上,因为SPI只能挂一个设备,同时还做了I/O模拟的准备,把两个设备又通过跳线挂在4个IO上。
3 扩了个IIC的个键子的键盘
用的ZLG的,不占用CPU,最大支持个键子,只上了个,其他留接口。
4 把LCD接口按照买的LCD改装了,可以用FPC线直接连接。
所以改动虽然多,但真正很移植了,初期调试有关的并没动,就是为了现在不那么菜的时候做准备:)
十一 开发流程
这里是我的开发流程
1 设计原理图(含WIGGLER的JTAG访真器)
2 设计PCB(含WIGGLER的JTAG访真器)
3 制版
4 焊接电压,确定电压没问题
5 焊接B0+JTAG电路+WIGGLER的JTAG访真器+周边电路,用BANYANT+仿真器连接,BANYANT提示错误,但可以显示B0编号,好象是0X0F0F0F0F只类的,说明B0没问题
6 焊接晶体+RAM+ROM+周边电路,用BANYANT+仿真器连接,可以显示正确的B0了
7 用BANYANT+仿真器连接,开AXD,在命令行窗口操作RAM,看可不可以修改,可以的话(用内存窗口看RAM地址)RAM就没问题
可以用这个命令“setmem 0xc,0xffffffff,”
我的RAM挂在BANK6上 所以地址是0XC,你要是改了就也得改。
8 用我写的《自己写了个C工程模板又写了个使用说明 》里的方法调试程序吧,写个简单的,我当时写个LED闪烁的。看好使不。
9 把程序按照《FLASH烧写总结 》里的烧到FLASH里,测试一下
按照《UBOOT 移植操作》移植UBOOT
按照《UCLINUX下载简单说明》下个UCLINUX
看看驱动开发的方法,自己写个驱动看看
还有很多事东西着你玩 呵呵
十二 关于JTAG访真器
JTAG访真器现在用的多是简板的,一个那种,用的没什么不好。
按照并口定义不同分几种,建议选WIFFLER定义的,因为支持的软件多。这个网上多的是,不多说了。
值得提的是有的JTAG访真器原理图上有跳线用来使能复位信号,这个一般不跳上。就是不用复位信号,因为JTAG协议里本身也可以控制B0复位。
当然,板子上的复位信号跳线也不用跳。
十三 哪个公司的ARM
这个是问题比较简单。
1 ARM7主要就几个公司的
三星,PHILIP,ATMEL的
ATMEL的有比较便宜的ATSAM7S 和ATSAM7S 专为8位应用产品量身定做,价格很便宜好象《3刀吧。和PHILIP的XX差不多,资料太少,项目中选还不错。
其他两家上面说了的不多说了吧
2 ARM9
这个玩和的多吧,现在还比较火啊 可以考虑买个了
但是就比较便宜了,作为学习来说反到和不错,推荐整一个:)
其实ARM9用的最多的领域应该是消费电子,比如手机PDA,而这上面用的多的应该是INTEL的和TI的吧。
但是INTEL的TI的入门材料少,价格高,自己看情况定吧。
å¦ä¹ åµå ¥å¼å¼åè¦å¦ä¹ åªäºç¥è¯ï¼
åµå ¥å¼Linuxæä½ç³»ç»å¦ä¹ è§å
ARM+LINUX路线ï¼ä¸»æ»åµå ¥å¼Linuxæä½ç³»ç»åå ¶ä¸åºç¨è½¯ä»¶å¼åç®æ ï¼
ï¼1ï¼ ææ¡ä¸»æµåµå ¥å¼å¾®å¤çå¨çç»æä¸åçï¼åæ¥å®ä¸ºarm9ï¼
ï¼2ï¼ å¿ é¡»ææ¡ä¸ä¸ªåµå ¥å¼æä½ç³»ç» ï¼åæ¥å®ä¸ºuclinuxælinux,çæ¬å¾ å®ï¼
ï¼3ï¼ å¿ é¡»çæåµå ¥å¼è½¯ä»¶å¼åæµç¨å¹¶è³å°åä¸ä¸ªåµå ¥å¼è½¯ä»¶é¡¹ç®ã
ä»äºåµå ¥å¼è½¯ä»¶å¼åç好å¤æ¯ï¼
ï¼1ï¼ç®åå½å å¤è¿æ¹é¢ç人é½å¾ç¨ç¼ºãè¿ä¸é¢åå ¥é¨é¨æ§è¾é«ï¼æ以éä¸ä¸IT人åå¾é¾åå ¥è¿ä¸é¢åï¼å¦ä¸æ¹é¢ï¼æ¯å 为è¿ä¸é¢åè¾æ°ï¼ç®ååå±å¤ªå¿«ï¼å¤§å¤æ°äººæ æ¡ä»¶æ¥è§¦ã
ï¼2ï¼ä¸ä¼ä¸è®¡ç®çåºç¨è½¯ä»¶ä¸åï¼åµå ¥å¼é¢å人æçå·¥ä½å¼ºåº¦é常ä½ä¸äºï¼ä½æ¶å ¥ä¸ä½ï¼ã
ï¼3ï¼åªå¤©è¥æ³åä¸ï¼æèªå·²ç产åï¼åµå ¥å¼ä¸ååºç¨è½¯ä»¶é£æ ·å®¹æ被ççã硬件设计ä¸è¬é½æ¯è¯·å ¶å®å ¬å¸ç»è®¢åï¼è¿å«âè´´çâï¼OEMï¼ï¼é½æ¯éç¨ç硬件ï¼æ们åªç®¡è®¾è®¡è½¯ä»¶å°±åæèªå·±ç产åäºã
ï¼4ï¼å ´è¶£æå¨ï¼è¿æ¯æ主è¦çã
ä»äºåµå ¥å¼è½¯ä»¶å¼åç缺ç¹æ¯ï¼
ï¼1ï¼å ¥é¨èµ·ç¹è¾é«ï¼æç¨å°çææ¯å¾å¾é½æä¸å®é¾åº¦ï¼è¥è½¯ç¡¬ä»¶åºç¡ä¸å¥½ï¼ç¹å«æ¯æä½ç³»ç»çº§è½¯ä»¶ååºä¸æ·±ï¼åå¯è½ä¸éäºæ¤è¡ã
ï¼2ï¼è¿æ¹é¢çä¼ä¸æ°éè¦è¿å°äºä¼ä¸è®¡ç®ç±»ä¼ä¸ã
ï¼3ï¼æå°æ°å ¬å¸ç»å¸¸è¦ç¡å£«ä»¥ä¸ç人æåµå ¥å¼ï¼ä¸»è¦æ¯åºäºåµå ¥å¼çé¾åº¦ãä½å¤§å¤æ°å ¬å¸ä¹å¹¶æ æ¤è¦æ±ï¼åªè¦æç»éªå³å¯ã
ï¼4ï¼å¹³å°ä¾æ强ï¼æ¢å¹³å°æ¯è¾è¾è¦ã
å ´è¶£çç±æ¥ï¼
1ãæåè§å¿µä¸åï¼ä¸è度æ¤çï¼å°±æ¯æçæåã
2ãå欢æèï¼ææé»è¾æç»´ã
3ãå欢C
Cæ¯ä¸ç§è½åæ¥æç»´æéçè¯è¨ãå ³äºCçç²¾ç¥çä¸äºæ¹é¢å¯ä»¥è¢«æ¦è¿°æçå¥å¦ä¸ï¼
ç¸ä¿¡ç¨åºåã
ä¸è¦é»æ¢ç¨åºååé£äºéè¦å»åçã
ä¿æè¯è¨çå°ç²¾å¹²ã
ä¸ç§æ¹æ³åä¸ä¸ªæä½ã
使å¾å®è¿è¡çå¤å¿«ï¼å°½ç®¡å®å¹¶ä¸è½ä¿è¯å°æ¯å¯ç§»æ¤çã
4ãå欢åºå±å¼åï¼è®¨åvbç±»å¼åå·¥å ·ï¼å¹¶ä¸æ¯è¯´vbä¸å¥½ï¼ã
5ãåå±åæ¯å¥½ï¼éååä¸ï¼ä¸æ³èªå·±è¦æ»äºçæ¶åè¿æ¯ä¸ä¸ªå·¥ç¨å¸ã
æ¹æ³æ¥éª¤ï¼
1ãåºç¡ç¥è¯ï¼
ç®çï¼è½çæ硬件工ä½åçï¼ä½éç¹å¨åµå ¥å¼è½¯ä»¶ï¼ç¹å«æ¯æä½ç³»ç»çº§è½¯ä»¶ï¼é£å°æ¯æçä¼å¿ã
ç§ç®ï¼æ°åçµè·¯ã计ç®æºç»æåçãåµå ¥å¼å¾®å¤çå¨ç»æã
æ±ç¼è¯è¨ãC/C++ãç¼è¯åçã离æ£æ°å¦ã
æ°æ®ç»æåç®æ³ãæä½ç³»ç»ã软件工ç¨ãç½ç»ãæ°æ®åºã
æ¹æ³ï¼è½ç§ç®ä¼å¤ï¼ä½é½æ¯è¾ç®åçåºç¡ï¼ä¸å¤§é¨åå·²ææ¡ãä¸ä¸å®å ¨å¦ï¼å¯æ ¹æ®éè¦éä¿®ã
主æ»ä¹¦ç±ï¼the c++ programming languageï¼ä¸ç´æ²¡æ¶é´è¯»ï¼ãæ°æ®ç»æ-C2ã
2ãå¦ä¹ linuxï¼
ç®çï¼æ·±å ¥ææ¡linuxç³»ç»ã
æ¹æ³ï¼ä½¿ç¨linuxâãlinxuç³»ç»ç¼ç¨å¼åâã驱å¨å¼åååælinuxå æ ¸ãå çæ·±ï¼é£ä¸»è®²åçãçå éåï¼çæ æ¯åæï¼å¯¹ç §æ·±çï¼ä¸¤æ¬äº¤åï¼æ·±æ¯çº²ï¼æ æ¯ç®ãåæåæ¯0.çï¼éåå¦ä¹ ãæåæ·±å ¥ä»£ç ã
主æ»ä¹¦ç±ï¼linuxå æ ¸å®å ¨åæãunixç¯å¢é«çº§ç¼ç¨ãæ·±å ¥ç解linuxå æ ¸ãæ æ¯åæåæºä»£ã
3ãå¦ä¹ åµå ¥å¼linuxï¼
ç®çï¼ææ¡åµå ¥å¼å¤çå¨å ¶åç³»ç»ã
æ¹æ³ï¼ï¼1ï¼åµå ¥å¼å¾®å¤çå¨ç»æä¸åºç¨ï¼ç´æ¥armåçåæ±ç¼å³å¯ï¼ä¸è¦éå¤xã
ï¼2ï¼åµå ¥å¼æä½ç³»ç»ç±»ï¼ucOS/IIç®åï¼å¼æºï¼å¯ä¾å ¥é¨ãèåæ·±å ¥ç 究uClinuxã
ï¼3ï¼å¿ é¡»æåå¼åæ¿ï¼arm9以ä¸ï¼ï¼ææ¡ä»¶å¯åå å¹è®ï¼è¿æ¥å¿«ï¼è½è®¤è¯äºæåï¼ã
主æ»ä¹¦ç±ï¼æ¯å¾·æçãåµå ¥å¼ç³»ç»ãåå ¶ä»arm9æåä¸armæ±ç¼æ令çã
4ãæ·±å ¥å¦ä¹ ï¼
Aãæ°åå¾åå缩ææ¯ï¼ä¸»è¦æ¯åºææ¡MPEGãmp3çç¼è§£ç ç®æ³åææ¯ã
Bãéä¿¡åè®®åç¼ç¨ææ¯ï¼TCP/IPåè®®ã.ï¼Bluetoothï¼GPRSãGSMãCDMAçã
-8- : åå¤
...* 2楼
Cãç½ç»ä¸ä¿¡æ¯å®å ¨ææ¯ï¼å¦å å¯ææ¯ï¼æ°åè¯ä¹¦CAçã
DãDSPææ¯ï¼Digital Signal Processï¼DSPå¤çå¨éè¿ç¡¬ä»¶å®ç°æ°åä¿¡å·å¤çç®æ³ã
说æï¼å¤ªå¤ç»èæªè¯´æï¼å¯æ ¹æ®å®é æ åµè°æ´ãéç¹å¨äº1ã3ï¼ä¸å¿ å®å ¨æç §é¡ºåºä½ã对äºå¦ä¹ c++ï¼çç±æ¯c++ä¸åªæ¯ä¸ç§è¯è¨ï¼ä¸ç§å·¥å ·ï¼å¥¹è¿æ¯ä¸ç§èºæ¯ï¼ä¸ç§æåï¼ä¸ç§å²å¦ç念ãä½ä¸æ¯æ¿æ¥ç«èå¾ä¸è¥¿ã对äºlinuxå æ ¸ï¼å¦ä¹ ç¼ç¨ï¼è¯»ä¸äºä¼ç§ä»£ç ä¹æ¯æå¿ è¦çã
注æï¼ è¦å¦ä¼ä¸¾ä¸åå¤ï¼æ强大çåºç¡ï¼å¾å¤ä¸è¥¿ç®åççå°±è½ä¼ãæ³æ为åæ ¼çç¨åºåï¼åææ¯å¿ é¡»çç»è³å°ä¸ç§ç¼ç¨è¯è¨ï¼å¹¶å ·æè¯å¥½çé»è¾æç»´ãä¸å®è¦ç论ç»åå®è·µã
ä¸è¦ä¸å³é»ç ææ¯ï¼è½ç¶æ¤åºæ¶é´æ¯å¾é¾åå°çï¼ä½è¿æ¯è¦çç¹ä½å°å»å®åå ¶ä»çç±å¥½ï¼æ¯å¦å®å®ï¼ç´ æãæºæ¢°ã管çï¼å¿çå¦ã游æãç§å¹»çµå½±ãè¿æä¸äºä¸æ¿æåä½å¿ é¡»è¦åçï¼
ææ¯æ¯éè¿ç¼ç¨ç¼ç¨å¨ç¼ç¨ç¼åºæ¥çãæ°¸è¿ä¸è¦æ¢¦æ³ä¸æ¥ç»å¤©ï¼ä¸è¦åæµ®èºç人ï¼ä¸è¦è§å¾è·¯é漫ä¸ãèæ¯è¦ç¼ç¨ç¼ç¨å¨ç¼ç¨ï¼å®äºå¨ç¼ç¨ï¼å¨ç¼ç¨ï¼çæºä¼æ¥äºå¨åä¸ï¼ä¸è¦ç¸ä¿¡æå¥è¿¹åçï¼ç²ç®åä¸å¾é¾æåï¼å³ä¾¿æåäºåå±ç©ºé´ä¹ä¸ä¸å®å¾å¤§ï¼ã
åµå ¥å¼ä¹¦ç±æ¨è
Linuxåºç¡
1ããLinuxä¸Unix Shell ç¼ç¨æåã
Cè¯è¨åºç¡
1ããC Primer Plusï¼5th Editionããç¾ãStephen Prataç
2ããThe C Programming Language, 2nd Editionããç¾ãBrian W. Kernighan David M. Rithieï¼K & Rï¼ç
3ããAdvanced Programming in the UNIX Environmentï¼2nd Editionãï¼APUEï¼
4ããåµå ¥å¼Linuxåºç¨ç¨åºå¼å详解ã
Linuxå æ ¸
1ããæ·±å ¥ç解Linuxå æ ¸ãï¼ç¬¬ä¸çï¼
2ããLinuxå æ ¸æºä»£ç æ æ¯åæãæ¯å¾·æ è¡å¸æè
ç åæ¹å
1ããUNIX Network Programmingãï¼UNPï¼
2ããTCP/IP详解ã
3ããLinuxå æ ¸ç¼ç¨ã
4ããLinux设å¤é©±å¨å¼åãï¼LDDï¼
5ããLinuxé«çº§ç¨åºè®¾è®¡ã æ¨å®å¾·è
硬件åºç¡
1ããARMä½ç³»ç»æä¸ç¼ç¨ãææ¥é·ç
2ãS3C Datasheet
è±è¯åºç¡
1ãã计ç®æºä¸éä¿¡ä¸ä¸è±è¯ã
ç³»ç»æç¨
1ããåµå ¥å¼ç³»ç»ââä½ç³»ç»æãç¼ç¨ä¸è®¾è®¡ã
2ããåµå ¥å¼ç³»ç»ââéç¨å ¬å¼æºä»£ç åStrongARM/Xscaleå¤çå¨ãæ¯å¾·æ è¡å¸æç
3ããBuilding Embedded Linux Systemsã
4ããåµå ¥å¼ARMç³»ç»åçä¸å®ä¾å¼åã æ¨å®å¾·è
ç论åºç¡
1ããç®æ³å¯¼è®ºã
2ããæ°æ®ç»æï¼Cè¯è¨çï¼ã
3ãã计ç®æºç»ç»ä¸ä½ç³»ç»æ?æ§è½åæã
4ããæ·±å ¥ç解计ç®æºç³»ç»ããç¾ãRandal E. Bryant David O''Hallaronç
5ããæä½ç³»ç»ï¼ç²¾é«ä¸è®¾è®¡åçã
6ããç¼è¯åçã
7ããæ°æ®éä¿¡ä¸è®¡ç®æºç½ç»ã
8ããæ°æ®å缩åçä¸åºç¨ã
Cè¯è¨ä¹¦ç±æ¨è
1. The C programming language ãCç¨åºè®¾è®¡è¯è¨ã
2. Pointers on C ãCåæéã
3. C traps and pitfalls ãCé·é±ä¸ç¼ºé·ã
4. Expert C Lanuage ãä¸å®¶Cç¼ç¨ã
5. Writing Clean Code -----Microsoft Techiniques for Developing Bug-free C Programs
ãç¼ç¨ç²¾ç²¹--Microsoft ç¼åä¼è´¨æ éCç¨åºç§è¯ã
6. Programming Embedded Systems in C and C++ ãåµå ¥å¼ç³»ç»ç¼ç¨ã
7.ãCè¯è¨åµå ¥å¼ç³»ç»ç¼ç¨ä¿®ç¼ã
8.ãé«è´¨éC++/Cç¼ç¨æåãæé
å°½å¯è½å¤çç¼ç ï¼è¦å¦å¥½Cï¼ä¸è½åªæ³¨éCæ¬èº«ãç®æ³ï¼æ¶ææ¹å¼çé½å¾éè¦ã
è¿éå¾å¤ä¹¦å ¶å®æ¯æ¨èèå·²ï¼ä¸å¿ 太å¨æï¼å ³é®è¿æ¯åºç¡ï¼ææ¯éä¸ä¹éï¼ï¼ï¼