1.ARM产品开发简介 开发ARM系统产品,少不了必要的仿真手段和调试手段。对硬件进行调试ARM公司提供了非常强大的调试手段,仿真器MULTIL-ICE,调试环境 ADS。FFT-ICE是一款仿真器,他和ARM公司的MULTIL-ICE完全兼容。FFT-ICE可以支持所有ARM公司内核的芯片。这套工具可以实时监控片内的每个单元资源状态情况,开发工程师可以对程序运行状态了如指掌,可以随意设置断点,可以在程序运行时进行参数修改,有了这样的高级调试手段大大缩短了项目研发的时间。
ADS是ARM公司的集成开发环境软件,他的功能非常强大。他的前身是SDT,SDT是ARM公司几年前的开发环境软件,目前SDT早已经不再升级。ADS包括了四个模块分别是:SIMULATOR;C 编译器;实时调试器;应用函数库。 ADS的编译器调试器较SDT都有了非常大的改观, ADS1.2提供完整的WINDOWS界面开发环境。C编译器效率极高,支持c 以及c++,使工程师可以很方便的使用C语言进行开发。提供软件模拟仿真功能,使没有Emulators的学习者也能够熟悉ARM的指令系统。配合FFT -ICE使用,ADS1.2提供强大的实时调试跟踪功能,片内运行情况尽在掌握。ADS1.2需要硬件支持才能发挥强大功能。目前支持的硬件调试器有 Multi-ICE以及兼容Multi-ICE的调试工具如FFT-ICE。而简易下载电缆不能支持ADS1.2
ARM产品项目的开发流程如下 带有操作系统的开发层次: 硬件平台 HW 板极支持软件库 BSP (相当于PC机的BIOS) 操作系统 OS 设备驱动程序 DRIVER 应用程序 PROGRAM 没有操作系统的开发层次: 硬件平台 HW 初始化程序 应用程序 开发分为两种情况,第一种,如果您不需要操作系统也就是把ARM当作单片机使用的方式。另一种是需要操作系统的方式。 单片机开发方式,这种情况比较简单 硬件连接:
全部开发过程从硬件调试到初始化程序和应用程序都需要FFT-ICE在ADS1.2开发环境中进行开发,具体过程随后介绍。 如果需要操作系统情况稍微复杂,硬件平台和BSP两层需要FFT-ICE在ADS1.2开发环境中进行开发。而操作系统,设备驱动程序,应用程序需要在相应的操作系统开发环境中进行开发编译,而不需要调试器支持。也就是说硬件和BSP调试通过后FFT-ICE和ADS1.2就完成了他们的任务。这种情况后面专题会介绍,本节不做介绍。 2.ADS和FFT-ICE的基本开发流程 FFT-ICE和ADS1.2的使用介绍见详细的产品说明书,在此简单介绍: STEP 1:硬件连接,见上图; STEP 2:启动Multi-ice的应用程序从Windows的程序菜单中启动Multi-ice的服务程序,菜单中服务程序自动监测到目标板上的arm芯片是arm7tdmi或者其他内核的处理器。 这一步表明仿真机、目标板、pc机都已经连接成功,可以进入调试状态了。
STEP 3:打开ads1.2的编辑编译环境 STEP 4:在文件中打开一个arm工程文件rtc.mcp STEP 5:详细看工程文件下的文件群,共分为3类文件 文件可以通过project下的add files添加新文件到工程文件中来。 STEP 6:在project菜单下的make可以编译工程文件,形成可调试程序和目标文件。在编译成功之后,在project菜单下执行debug,自动将程序下载到调试器axd中。进入axd后的画面见下图:
在调试器下就可以调试我们的程序了。 3.ADS和FFT-ICE在FFT-RM9200上的开发流程 FFT-RM9200评估板的详细情况在前面已经作了介绍,本节介绍ADS和FFT-ICE在FFT-RM9200上的开发情况,并结合串口对FFT-RM9200进行初始化。 3.1 开发环境设置 ① 参考2,确定和安装FFT-ICE以及ADS,连接和设置FFT-ICE; ② 连接FFT-RM9200上的串口1(调试串口)到计算机的串口,然后打开计算机的超级终端 ,设置串口如下(115200,8,无,1,无):
确定后显示超级终端的接收界面
3.2 系统初始化代码的编译、下载和监控 STEP 1: 确认开发环境设置完毕,目标板加电或者,系统启动,超级终端显示如下的内容
这是RM9200内部的ROM中固化的程序显示 STEP 2: 打开ADS的CodeWarrior编译集成环境,打开basicboot.mcp,进行编译
进行编译,得到下述结果
STEP 3: 打开Multi-ICE程序,进行连接,出现下面的结果
在File菜单下,点击load configure,装入ARM的配置文件AT91RM9200DK.cfg
STEP 4: 打开AXD,设置target configure为Multi-ice,
在File菜单下load image,装入Basic Boot.axf,运行
程序运行到main(),再继续运行主程序,在超级终端下,进行观察
!程序已经正常运行
|