这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » Real-time embedded systems and Communica

共1条 1/1 1 跳转至

Real-time embedded systems and Communications 2

菜鸟
2003-10-21 22:34:08     打赏
Real-time embedded systems and Communications written by xiaohua.zhang@163.com for EDW Date:2003/10/18 开发实时和嵌入式系统所需的一些基本知识 1 编译器相关 (1)Compiler (2)Linker (3)Symbols (4)Makefile 这几个定义我一时没有去查确定的定义,所以不在这里误导朋友们。 这些概念和用法在GNU里面介绍的最为详细,不清楚的朋友可以查阅相关的书籍。我个人的经验是:有时间去看看编译原理是非常有帮助的,如果你对LINUX、UNIX或者BSD熟悉的话也非常有帮助。 VC++的环境里面一样有定义这些内容的要求,如果你从网络上下在一些Source Code,你一般都会看到有Makefile,里面有很多关于他们的定义,如果你了解这些内容的话,你可以快速了解整个代码的编译规则,可以知道自己阅读代码或者改写。 2 文件格式 Object File Format: (1)common object file format (COFF) (2)executable and linking format (ELF) 目前最广泛使用的是ELF的文件,有兴趣的朋友可以从网络上轻易的查出ELF的具体格式!这两种文件都是在RAM中执行的。 还有我们的产品最终文件一般是Binary或者Hex文件。这些都是开发人员非常熟悉的了,典型的Intel BIN和Motorola的Hex。这两种文件是从ROM执行的。 嵌入式系统的开发环境 嵌入式系统的开发环境是开发过程中的第一步。搭建一个健壮的开发环境对以后的开发有着至关重要的中用! 由于大部分的嵌入式开发都是一个Cross Development Enviroment,而且随着一些调试开发技术的成熟,开发环境已经有一个大致的框架,这个框架基本上适用于各种CPU。 下面介绍一下这个基本的开发环境。 |-------------| |-------------| | TARGET | | HOST | | | | | | CPU | | WINDOWS | | | | (LINUX) | | ROM | | | | | | IDE | | RAM | | | |-------------| |-------------| | | | RS232 | | | | | |----------------------------------| | | | | | | | | Ethernet | | | |------------------------------------------| | | | | JTAG/BDM | |-------------------------------------------------- | 首先介绍一下JTAG(Joint Test Action Group)的调试方法。 JTAG(IEEE 1149.1)是一种非常普及的调试接口,我们现在最流行的ARM内核CPU就具备这种接口,JTAG调试器也非常多。在CPU内部有一个叫做Embedded ICE的模块,提供给用户可以使用户取得CPU控制权,但是这个逻辑和时序关系并不是所有的CPU的一模一样的。具体的细节要从CPU生产者那里取得,所以现在的JTAG调试器的售价比较贵!但是使用JTAG调试器,可以直接控制CPU,可以在其他的外围设备和资源都没有的情况下让CPU工作!开发者常常利用这一特点来检查CPU的状态和其外围资源的工作情况!如果JTAG都不能控制CPU,那么有很大的可能是CPU已经Down了。同样也可以通过JTAG来调试软件,这个需要你的Host上的IDE能够识别JTAG的信息! 很多的JTAG调试器都具备硬件调试功能,但是具备软件的调试功能都需要特殊软件的配合!而且这种软件也许是针对一种特殊的IDE,也就是针对一种特殊的编译工具。比如WindRiver就有自己的JTAG工具。 BDM(background debug mode)是Motorola的特殊的调试接口。 下面我们介绍一些通过通信接口调试的方法。很多的朋友都知道Bootloader,其实Bootloader不仅可以下载程序,而且一样具有调试功能。我们可以在Bootloader中实现很多的功能,比如可以显示系统的状态等等!但是这种调试的级别要比JTAG/BDM要低一些,也就是距离CPU更远。 我只介绍一些典型的功能:程序下载。 我们可以在Bootloader中实现Xmodem来通过串口下载程序,也可以实现TFTP通过网络下载程序。这两种方法都不难,有兴趣的朋友可以试试。 我会在以后把Xmodem的程序贴出来,让大家参考。网络也有很多实现的代码!



关键词: Real-time     embedded     system    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]