共2条
1/1 1 跳转至页
Real-time embedded systems and Communications 2
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
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 | |
【FRDM-MCXN947评测】核间通信MUTEX被打赏50分 |