1、 1 / 15实验一 熟悉硬件平台和软件环境实验目的1 熟悉实验板硬件资源2 熟悉 ADS1.2 开发环境,使用 ADS 编译、调试并跟踪一段已有的程序3 熟悉 DNW 工具的使用4 熟悉 ICE 仿真器的安装和使用需要完成的任务1 从 FTP 服务器上下载 SourceCodeInterfaceADC_test 源代码,在 ADS1.2 中建立工程项目并将源代码添加进来,并能编译通过。2 通过 ICE 硬件仿真器调试、运行程序。3 通过 DNW 下载到实验板并运行程序。实验步骤A 部分 阅读实验板的说明文档(即 EA2440a 技术说明书和实验板原理图) ,熟悉实验板的硬件接口及相应配置。B
2、 部分 ADS1.2 初步使用1 选择 “开始所有程序ARM Developer Suite v1.2” 下的“CodeWarrior for ARM Developer Suite”打开集成开发环境,如图所示。2 新建工程及编译、链接选项设置(1)单击 File 菜单,选择 New 菜单项即弹出 New 对话框,如图所示。 2 / 15(2) 选择工程模板为 ARM 可执行映像(ARM Executable Image) ,然后在 Location 项选择工程存放路径,并在 Project name 项输入工程名称,单击“确定”按钮即可建立相应工程,工程文件名后缀为.mcp。(3) 编译选项
3、设置。点击确定按钮后出现工程窗口,在工程窗口中选择 DebugRel Setting 进入编译选项设置对话框。 3 / 15(4)在 Debug Settings 对话框中选择 Target Settings 选项,在 Post-linker 列表框中选择 ARM fromELF,单击右下角的 Apply 按钮使其有效。 4 / 15(5)设置 Target Settings 在 Debug Settings 对话框中选择 ARM Linker 选项,选中Simple 单选按钮,在 Simple image 选项组中设置连接的 Read Only(只读)和 Read-Write(读写)地址。地
4、址 0x30000000 是开发板上 SDRAM 的真实地址,是由系统的硬件决定的。本实验中对系统可读写的内存地址并没有分配,系统将自动分配地址。5 / 15(6)点击 Layout 选项页,在该选项页中的 Place at beginning of image 选项组中设置程序的入口模块。指定在生成的代码中,程序是从 2440init.s 开始运行的。Object/Symbol/项设为 2440init.o,Section 项设为 Init。 (7) 在 Debug Settings 对话框中选择 ARM fromELF 选项,设置 Output format 为Plain binary。也
5、可在此对话框中设置生成的 BIN 文件名。 (8) 最后在 Language Settings 选项中的 5 个子项中将“Architecture or Processor” 栏都6 / 15选择为 ARM920T。图中只列出了 ARM Assembler 子项的设置情况。单击 OK 按钮退出设置对话框。注意:为了以后建立工程的方便,可以将该工程作为工程模板,以后建立工程时就不需要再对工程进行重复设置了。具体方法是在 ADS1.2 安装目录下 Stationery 文件夹中新建一个文件夹,例如可取名“SinoSys-EA2440a Template”,再将上面建立的工程文件(即.mcp的文件)
6、拷贝到这个新建的文件夹中。这样,在每次新建工程时就可以选择名为“SinoSys-EA2440a Template”的工程模板了。 3 编辑源文件 建立新的源文件或者添加已有的源文件皆可选择 File 菜单下的 New,打开 New 对话框。在该对话框中选择 File 选项页,输入文件名称,文件存放路径并把它加入到刚才所建的工程中。点击确定按钮后就进入了所建文件的编辑窗口了。在编辑窗口中读者可以自己编写所7 / 15要实现的程序代码。本实验为了方便,直接将一个示例代码加入到工程中,将SourceCodeInterface 中该实验的示例代码拷贝到刚才所建立的工程目录下。 在工程文件窗口中(本例为
7、 adc.mcp 窗口)点击鼠标右键,选择“Add Files”,打开添加文件对话框,选择到所建立的工程文件目录。点击打开按钮,出现Add Files to Target 对话框,默认选择,点击确定按钮,test1.S文件就被加到工程中了。4 编译工程在工程窗口中按“Make” 按钮,或者直接按F7 快捷键,编译工程。在出现的错误/警告窗口中选择某错误/警告信息,ADS会自动打开相应的源文件并用箭头指向出错的文本行。错误/警告窗口。编译成功后在工程目录下的DebugRel 里会生成xx.bin文件。该文件可以直接下载到实验板上运行。C部分 DNW软件安装和使用嵌入式软件开发完成后,最终通过交叉
8、编译,在目标系统上运行。运行的方式一般包括 ROM 运行和 RAM 运行两种。这就需要使用方便的工具来使用这些功能。 8 / 15在 SinoSys-EA2440a 中,已经通过 JTAG 将一个功能比较完备的 Boot Loader 烧写到Nor-Flash 中。在这段代码里驱动了 SinoSys-EA2440a 的串口和 USB 口,并实现了 USB 读写内存及 Flash 的烧写功能。这就需要我们有一个方便的工具实现串口及 USB 口的操作,而 DNW 工具软件正符合我们的要求。在 PC 上安装 DNW 工具需要先安装驱动程序,本实验主要介绍 DNW 工具驱动的安装及如何使用 DNW 工
9、具配合 Boot Loader 来实现内存读写和 Flash 的烧写功能。总体来说,DNW 就是一个串口加 USB 的终端工具。打开试验箱包装,取出电源线将 SinoSys-EA2440a 实验板 与电源相连。取出 USB 线将 SinoSys-EA2440a 实验板 和 PC 机 USB 口相连,取出串口线将 SinoSys-EA2440a 和 PC 机的串口相连。将 tools 目录 DNW 驱动程序的内容拷贝到用户 PC 机上,然后去除拷贝好的全部文件的只读属性。记住这点很重要,否则 DNW 不能正常工作。将 SinoSys-EA2440a 实验板设置为从 Nor-Flash 启动,打开
10、 EA2440a 电源开关。如果是第一次使用 DNW 工具的话,将会发现 PC 机会有一个 USB 设备被发现,下面开始添加驱动。选择从列表安装,点击下一步。如下图。选择搜索路径,找到DNW 驱动程序所在路径。如下图。点击下一步,找到匹配的驱动程序,如下图。9 / 15点击下一步,出现如下图对话框,选择“仍然继续”。出现如下对话框,说明DNW 的驱动已经安装成功,接下来就可以使用DNW 工具了。10 / 15打开DNW 应用程序,界面如下图。连接串口,选择“Serial Port”菜单下的“Connect”。现在就可以看到在上图所示的界面中对话框的标题栏中 COM 串口和 USB 口都已经连接
11、好。 首先我们掌握使用 DNW 工具下载可执行文件到内存中的方法。由于在 SinoSys-EA2440a 中 RAM 的映射地址是 0x30000000,因此首先设定下载地址为 0x30000000。选择“Configuration”菜单下的“Options”,弹出如下对话框。11 / 15在这个对话框里我们可以设定 COM 端口,串口比特率和 USB 的下载地址。我们可以按照上图所示进行设置。单击 OK 按钮退出。 选择“USB Port”菜单下的“Transmit”,弹出打开文件按钮对话框,在对话框里选择要下载的可执行文件,单击打开按钮就可以把所选择的文件下载到地址为 0x30000000
12、 的内存中去了。如下图所示。 我们再来看一下通过 DNW 的终端功能,使用 Nor-Flash 中固化的一段 Boot Loader 的方法。首先确认 SinoSys-EA2440a 从 Nor-Flash 启动,重新打开 SinoSys-EA2440a 电源开关。可以看到在 DNW 工具的界面上出现 Boot Loader 的命令行菜单。 实际上当 SinoSys-EA2440a 设置为从 Nor-Flash 启动,SinoSys-EA2440a 上电后,在Nor-Flash 中固化的 Boot Loader 程序将得到执行,在这段 Boot Loader 代码中驱动了SinoSys-EA2
13、440a 开发板上的串口和 USB Device 口,并通过串口将要交互的信息传送到DNW 的界面上。 USB 的功能就是在开发主机端通过 USB 下载文件。上电后 DNW 界面显示初始情况下 SinoSys-EA2440a 等待从 USB 下载文件的功能,下12 / 15载地址已经在前面设置过。在 DNW 界面中按开发主机键盘任意键, DNW 将出现 Boot Loader 的功能菜单,如图:在图中我们可以看到,Boot Loader 实现了 USB 的下载运行(默认就是这个方式) 、下载、运行程序、测试内存、写入 Nand-Flash 等功能,读者可以自己试验这些功能。 我们在开发过程中如
14、果已经在 Nor-Flash 中烧入这么一段 Boot Loader,在需要往Nand-Flash 中烧写文件时,就可以通过 DNW 工具,很方便的将文件烧入到 Nand-Flash 中。具体过程是:先在菜单中选择功能 1(Download Only) ,通过开发主机键盘上 1 按键来选择,在提示的操作下选择将文件先下载到内存的某个区域中,一般我们可以在 DNW 中键入“0x30000000”来指定下载地址,然后在“USB Port”中选择“Transmit” ,按照我们刚才介绍的方法,将我们要下载的文件复制到内存中。再在界面中命令行菜单中选择4(Download Image to Nand
15、Flash) ,依然通过开发主机键盘选择。在命令行提示下指定下载到 Nand-Flash 的哪个 Block 中。按回车键就可以把内存中的文件烧写到 Nand-Flash 中去了。D 部分 ICE 硬件仿真器安装1 安装 H-JTAG(见 tools 目录) 。2 将仿真器的JTAG数据线分别接到PC机和实验板上,FLASH选择开关选择Nor Flash(左边)。启动H-JTAG。打开实验板电源开关。3 如果前面的的工程项目编译没有错误,在CodeWarrior for ARM Developer Suite中,点击Project-Debug(或者按F5键),则启动AXD Debugger窗口。13 / 15在上图中,点击点击Options-configure Target。弹出对话框如下图。点击Add按钮,弹出文件选择对话框。找到H-JTAG的安装目录,选择H-JTAG.dll并打开。14 / 15点击OK完成硬件仿真器的安装。E部分 调试和运行(1)利用AXD Debugger和ICE硬件仿真器进行调试,同时注意查看DNW接受到的调试信息。利用AXD Debugger可以:添加断点,程序碰到断点会暂停运行进行单语句执行,单个函数执行等查看ARM的寄存器状态查看存储器地址空间15 / 15(2)断开ICE仿真器,尝试利用DNW工具运行A部分生成的xx.bin