好吧,我对ARM处理器的编程有点困惑。一连串的问题时间:
此外,可以使用诸如Arduino之类的东西来创建即席 JTAG接口(如果这确实是为ARM设备编程所需的话)。。。?
我已经为测试代码设置了QEMU,但我不知道如何将代码实际应用到物理领域。
我基本上是问: JTAG是ARM世界的设备程序员吗?我能用Arduino (Arduino wiggler Clone o.o)戏弄一个吗?如果JTAG不是,什么是,我可以欺骗它吗?
哦..。我可能需要更好地解释JTAG到底是如何工作的。
现在要了解一些背景信息:
我有一个老的掌上设备(LifeDrive),我相信它有XScale PXA270处理器。似乎不再有任何积极的社区发展为它,而且我没有什么用处了,所以我只是想玩/乱它。基本上,这可能是一个很好的方式来玩什么基本上是大量的传感器,和其他杂项输入和输出,也习惯了手臂组装。
请尽管告诉我是否采用了错误的方法,但至少可以提供其他方法(尽管我非常愿意专门处理LifeDrive,如果我只是想玩嵌入式编程,我会在Arduino上这样做)。
几乎现在一切都是黑暗中的一幕。我有点厌倦了无处可去,所以我发了这个帖子。
发布于 2011-01-18 00:56:14
这是很多问题!以下是几个答案:
如何将编译好的二进制文件放入ARM处理器?
这取决于若干因素。
JTAG是否是正常的方法(我认为这是我的研究表明的.)?
大多数(也许所有)基于ARM的设备都包括一个JTAG接口来连接到片上调试( FPGA上的软核可能除外)。这通常可以用于对片上或外部闪存进行编程,或者直接加载到RAM中.JTAG接口也是片上调试和跟踪功能的接口.有些设备有额外的调试/编程接口,例如臂部 SWD。
这是唯一的方法吗?
在某些情况下。一些基于ARM的微控制器包括一个片上引导程序ROM,它可以支持串行、USB或其他编程芯片上闪存的方式。有时,这样的工具非常简单,只用于加载和运行从RAM执行并执行实际flash编程的辅助引导加载程序。
如果它是一种有效的方法,那么您将如何使用它呢?
通过使用适当的主机软件。JTAG是一个非常简单的接口,它没有定义任何特定的功能,只是数据传输的一种方式。通常情况下,编程软件需要知道它正在与哪个设备通信,如果闪存不是芯片上的,它需要知道闪存设备及其地址。开发工具链通常包括对设备编程的支持,特别是对具有片上内存的设备的支持。如果您使用的是GNU工具链,则可以使用OpenOCD对设备进行编程,并与GNU调试器进行接口。
如果不是,那我该怎么做呢?
如果您的目标是一个胶辊,那么它很可能包括一个引导加载器,它已经允许通过USB、串行或以太网进行软件更新。
此外,可以使用诸如Arduino之类的东西来创建临时的JTAG接口(如果这确实是为ARM设备编程所需的话)。。。?
也许,正如我所说的,JTAG本身实现起来非常简单,问题在于使它与您将要使用的任何主机软件兼容(或者使软件与它兼容)。最简单的"摇动器“JTAG适配器是使用PC并行口I/O实现的--不是特别快,而是功能强大。
我基本上是问: JTAG是ARM世界的设备程序员吗?
它最初被定义为边界扫描测试接口,但现在广泛应用于包括片上调试和编程在内的大多数微处理器和微控制器。
我能用Arduino (Arduino wiggler Clone o.o)戏弄一个吗?如果JTAG不是,什么是,我可以欺骗它吗?
这不是“欺骗”的问题,接口可以通过多种方式实现。如何实现它主要影响界面的速度。16兆赫可以实现,但一个更简单的并行口摆动器可能维持不超过500千赫。它是一个同步接口,因此可变时钟速率不是一个问题。
哦..。我可能需要更好地解释JTAG到底是如何工作的。
我确信,我不能比维基百科的http://en.wikipedia.org/wiki/JTAG中的解释做得更好。但是要在目标设备上实现,您应该参考零件的参考手册/数据表。
我有一个旧的掌上设备(LifeDrive),我相信它有XScale PXA270处理器。
“相信”可能是不够的,你需要知道。JTAG别针甚至暴露在板上吗?在消费产品上,通常省略一个实际的JTAG连接器。即使有一个,它也可能是一个专有的连接器和引脚(JTAG本身既没有定义,也有几个是为ARM定义的,但是您在开发板上可能发现的东西可能不会包含在最终的消费产品中。
基本上,这可能是一个很好的方式来玩什么基本上是大量的传感器,和其他杂项的输入和输出,也习惯了武装汇编语言。
它可能是最好得到一个现成的开发板暴露I/O引脚和接口。在消费产品上,只有目标应用程序所需的引脚才可能被公开,即使这些引脚连接到BGA设备,也可能无法访问。此外,XScale处于ARM设备的复杂端(大致介于ARM9和ARM11之间),如果您不熟悉这类设备和诸如PLL时钟控制、SDRAM控制和定时以及MMU配置之类的东西,您可能想看一些更简单的东西。不仅如此,由于Flash和RAM都是离芯片的,您将需要内存和其他外部设备的地址映射的详细信息,以及必要的SDRAM定时细节。作为一种消费设备,除了逆向工程之外,这些细节是无法获得的。
尽管如此,关于前面关于引导加载器的评论,Palm为设备提供了用户可安装的ROM更新,因此它必须有一个引导加载器。但是,您仍然需要图像文件格式和数据传输协议的详细信息。这些信息不太可能发表,而且可能很难进行逆向工程。
如果我只是想玩嵌入式编程,我会在我的Arduino上这样做。)
有很多低成本的ARM开发板可用。例如,试试奥利梅克斯:他们甚至有一个低成本的"Wiggler“克隆JTAG适配器。
发布于 2011-01-17 01:12:01
我不能具体帮助你,但我是用手臂工作的。它使用ARM编译器和链接器,并使用专门为设备设计的调试器进行测试,然后将代码闪烁到媒体上,使设备能够本地运行。
因此,您需要一种将信息闪现到Palm可以运行的媒体上的方法,或者需要一个软件仿真器进行测试。我希望我对Palm有更多的了解,但我更多的是在游戏开发方面:)听起来JTAG可能是某种x86仿真器,所以我可能会从那里开始。
https://stackoverflow.com/questions/4709179
复制相似问题