arm嵌入式开发培训:常用开发工具及开发流程
现在随着网络的进步,很多的人都开始学习嵌入式,对于初学者来说,嵌入式是一个很复杂的课程,没有一定的基础学习是很困难的。
因此,很多的新手都感觉到迷茫,但是大家不用太担心,一切都会有办法的,你可以在学嵌入式之前好好的掌握一下这些基本知识。如果有想学习arm嵌入式的,大家可以看一看这些常见的基础知识,希望达内教育的老师给的这些资料能帮助到大家:μC/OS-IIμC/OS-II是一种基于优先级的抢占式多任务实时操作系统,包含了实时内核、任务管理、时间管理、任务间通信同步(信号量,邮箱,消息、队列)和内存管理等功能。它可以使各个任务独立工作,互不干涉,很容易实现准时而且无误执行,使实时应用程序的设计和扩展变得容易,使应用程序的设计过程大为减化。
PalmOSPalmOS是Palm公司开发的专用于PDA上的一种操作系统,这是PDA上的霸主,一度普占据了90%的PDA市场的份额。虽然其并不专门针对于手机设计,但是PalmOS的优秀性和对移动设备的支持同样使其能够成为一个优秀的手机操作系统。其最新的版本为PalmOS5.2。目前具有手机功能的PalmPDA如Palm公司的TungstenW。而Handspring公司(目前已被Palm公司收购)的Treo系列则是专门使用PalmOS的手机,如Treo270以及最新的倍受瞩目的。
Treo650PalmOS是一种32位的嵌入式操作系统,用于掌上电脑。此系统是3Com公司的PalmComputing部开发的。(PalmComputing目前已经独立成一家公司。)PalmOS与同步软件HotSync结合可以使掌上电脑与PC机上的信息实现同步,把台式机的功能扩展到了手掌上。目前,基于PalmOS的掌上电脑主要是3Com的系列产品,如PalmIIIx,PalmV,PalmVII,IBMWorkPadc3用的也是PalmOS。Sony等公司也获得了PalmComputing的许可,将开发基于PalmOS的掌上电脑。PalmOS与WindowsCE间的搏斗正在展开。QNXQNX是由一家位于加拿大的QNX软件系统有限公司开发的实时操作系统。
QNX是一个分布式、嵌入式、可规模扩展的实时操作系统。它遵循POSIX.1(程序接口)和POSIX.2(Shell和工具)、部分遵循POSIX.1b(实时扩展)。它最早开发于1980年,到现在已相当成熟。QNX是一个微内核实时操作系统,其核心仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其它OS服务,都实现为协作的用户进程,因此QNX核心非常小巧(QNX4.x大约为12Kb)而且运行速度极快。WindowsCEWindowsCE是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统,它是精简的Windows95,WindowsCE的图形用户界面相当出色。
WindowsCE版本主要有1.0、2.0、3.0、4.0、4.2、5.0和6.0Linux简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intelx86系列CPU的计算机上。这个系统是由世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。Linux的出现,最早开始于一位名叫LinusTorvalds的计算机业余爱好者,当时他是芬兰赫尔辛基大学的学生。他的目的是想设计一个代替Minix(是由一位名叫AndrewTannebaum的计算机教授编写的一个操作系统示教程序)的操作系统,这个操作系统可用于386、486或奔腾处理器的个人计算机上,并且具有Unix操作系统的全部功能,因而开始了Linux雏形的设计。绝大多数基于Linux内核的的操作系统使用了大量的GNU软件,包括了shell程序、工具、程序库、编译器及工具,还有许多其他程序,例如Emacs。
由于嵌入式开发环境的特殊性(交叉编译),我们会用到一些其他的外围工具,这里做简要的说明。并重新介绍一下整个开发环境中,各个工具的使用,及一个简单应用的开发流程。SecureCRT:串口输出显示工具、SSHclientSecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,同时支持Telnet和rlogin协议。这个是最有用的吧,你看到她就会爱上她。并且是可以窗口内多标签,界面和蔼可亲的。DNW:USB下载工具。(配合u-boot使用)DNW是一款USB下载传输工具,把编号的目标板的.bin二进制文件通过开发板的USB线,下载传输到板子上,通常用来传输的是编译好的Linux目标板镜像或者板子上无OS裸奔的程序,这里主要是配合bootloader使用的。需要进行传输时,在串口工具的u-boot输出菜单中选择对应的选项(比如:downloadLinuxkerneltoNandflash),bootloader就会在目标机端(开发板端)准备好USB端口,等待在USB中数据的写入,然后,在PC端打开DNW选择要传输的文件,传输就好。传输过程中以及传输完成后,都会在串口工具窗口(也就是SecureCRT)看到串口输出的信息反馈。DNW有windows版也有Linux版,Linux下的需要自己编译并安装附带的USB驱动模块,而windows下的只用一个DNW.exe就ok了,不需要安装包安装(如果你真的想那么做的话。)。。。。
(ps:应用USB下载即DNW下载时,需要安装USB下载驱动,开发板的光盘中都会有所附带)DNW在引起windows蓝屏后无法运行的问题解决如何解决?另外需要注意:比如TQ2440出厂的U-boot,通过DNW传输时,会出现传输后没反应,然后再次选择传输文件,电脑就蓝屏了(如你所知,这肯定是在windows环境下,)这样,确实很悲剧,并且你会不只一次碰到,如果你的PC足够顽强,应该不会有什么事儿的,也有可能是windows7的兼容问题。言归正传,蓝屏后,重启系统,会出现DNW无法运行的情况,即使你再找个dnw.exe,它还是不甩你,怎么办呢?它肯定是知道了在上次运行时你虐待它了,这是在记仇啊,记仇?它怎么记?软件么,很定时在配置文件中记的,打开C盘,在根目录下有一个dnw.ini,这个就是它的配置文件,直接把它删了,它就会忘记你曾经对她犯下的错,又是这么小气又是这么的通情达理。。。。
U-boot:强大的bootloader为什么把它也作为开发工具来说呢?因为学习刚开始,我们暂且还不去涉及bootloader的移植问题,而它的存在,会方便我们往开发板上烧写程序。有了它,我们可以用NFS下载镜像(程序),我们可以用USB下载镜像(程序),还可以用ftp下载……一劳永逸啊。为了方便开发,就直接把它作为目标板端的常用工具,暂且屏蔽到它的内部细节,这不影响我们做裸奔的接口实验,和Linux内核移植及驱动开发,过早的接触并试着去了解太多名词,会另我们有恐惧感,是时候了解它的内部逻辑时,我们自然会接触到,万法自然。Jlink:仿真器还要涉及一个名词是j-tag,Jlink是一个外部仿真器,jtag是个内部开发调试接口。Jlink是通过jtag接口实现的一个仿真器,可以跟踪调试。目前我们用到它的可能就是来烧写u-boot了。如果用于调试的话,可以配合ADS使用,来编写裸奔程序。至于如何在空板子上烧写u-boot,各个开发板都会有详细说明,我也不费这口舌了,他们写的要比我专业的多。。。。。
好的,下边用一张图片来描述一下工具之间的配合使用。图片只是简述了各个工具在开发过程中扮演的角色