版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章嵌入式系统开发环境简介1.11.1ARM SDT 2.5 开发环境简介一、实验目的ARM SDT 2.5 ARM SDT 调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。二、实验内容ARM SDT 2.5 程文件。学习 ARM 并行口仿真器的使用和开发环境的设置。下载已经编译好的文件到嵌入式控制器中运行。学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。三、预备知识C 语言的基础知识、程序调试的基础知识和方法。四、实验设备及工具(包括软件调试工具)硬件:ARM 嵌入式开发平台、用于 ARM7TDMI JTAG 仿真器、Pentium100 以上PC 机。软件:P
2、C 机操作系统 Windows 98、Windows 2000 或 Windows XP,ARM SDT 2.51 或ADS 1.2 集成开发环境,仿真器驱动程序、超级终端通信程序。五、实验步骤建立工程文件ARM SDT 2.5 (ARM Project File|New Project New Project 对话框,如图1-1 为工程模板类型,这里选择ARM Executable PAGE 22 PAGE 22嵌入式系统设计与实例开发实验教材 PAGE 21 PAGE 211 章嵌入式系统开发环境简介径。单击 OK 按钮后新建一个工程文件。在新建的工程中,如图1-2 所示,选中工程树的“根
3、部”。使用命令Configuration for work1.apj| = armasm|Set,对整个工程的汇编进行设置。图1-1新建一个工程文件图1-2对整个工程的汇编进行设置ARM7TDMI 1-3 Floating Point Processor none,并保持其他的设置不变。Project|Tool Configuration for work1.apj|asmlink|Set命令,对整个工程的连接方式进行设置。在弹出的对话框中,打开 Entry and Base 选项卡,如图 1-4 所示,设置连接的只读)Read-Write(读写)0 x0c080000 SDRAM 的 在 0
4、 x0c0800000 x0c1fffff 之间是只读区域开始是程序的数据段。图1-3设置Floating Point Processor 为none图1-4设置连接的地址提示:用户可以修改这两个数值来决定程序存储区的大小和数据存储区的大小。但应注意SDRAM 0 x0c0000000 x0c7fffff0 x0c080000 LCD 显示缓存区的。Linker Configuration ImageLayout 1-5 44binit.s 44binit.s 44binit.o,Init 是该汇编文件中的代码段名字。Project|Edit Project Template Project
5、Template Editor对话框。在该对话框中可以看到一系列步骤名称。SDT 在处理工程文件时是按这些步骤完成的, 每个步骤设定了对应的操作,以及该操作的输入、输出和命令行等。读者可以选择已有的 步Edit Compile是把.c 和.h 文件编译成.o Link则就是把.o 文件和 .alf 文件连接生成.axf 文件的。在这些步骤中的设置建议保留默认值。但这里缺少一个从 .axf 文件生成所需的.bin文件New 1-6RomImage图1-5设置程序的入口模块图1-6为编译器新建一个步骤1-7 的内容设置步骤RomImage 的内容。使编译器编译的时候可以生成system.bin .
6、axf Imagesystem.binEpromfromelf 组件完成,命令行fromelf -nozeropad .axf -bin system.binImage Eprom 可以在设置好后的工程窗口中看到。步骤名称和输出位置名称并不要求一致。提示:在文本框中输入文字后必须单击 Add 按钮添加到上方列表框中,否则单击 OK 按钮后该设置信息丢失。选 择 Project|Edit Variables for work1.apj Edit Variables for work1.apj对话框。列表框中是该工程的一些变量,读者也可以选择某个变量名,在 Value $ProjectName 下
7、的.axf文件将以此命名。这里注意一下变量config$armlink 的值,应该是-info.total#total-ro-base#0 xc080000 -rw-base#0 xc200000 armlink config$asm 的值是-fpu#none。这里需要将build_target system.bin,编1-8 所示。提示:选择某个变量并更改其值后,必须单击 Apply 按钮使其生效,如果更改完毕后又选择其他变量,则该设置将无效。图1-7设置RomImage的内容图1-8设置build_target 变量DebugRelDelete 键删除。提示:Debug 子树是应用程序的调
8、试版本,在生成的目标代码中,包含了Release DebugRel 通常用不到,所以,在这里删除。Project Template Editor Edit Detail 按钮,在弹出的对话框1-9 (没有添加工程文件)复制到 SDT 安装路径下的 Template 目录下,下次新建工程时可以在New Project 对话框中的Type 列表框中看到该模板,使用该模板无需重新设置工程参数。至此,工程文件设置完毕。包括对 armlink 和 armasm 的参数设置,新建生成system.bin 日后使用。同时注意上文关于操作的提示,以前多数用户建立模板失败的原因可能就在于操作上的失误。SDT 实
9、验所在目录中的“1-开发环境实验”下的STARTUP 目录复制1-10 Debug 子树的Sources Project|Add Files to Sources 命令,把STARTUP目录下的*.S 和*.c 文件加入到工程中。图1-9重新命名模板图1-10加入工程的源文件选中工程树中 Debug 子树的 IncludedFiles 选项。通过 Project|Add Files IncludedFiles STARTUP目录下的所有*.h 文件都加入工程中。在需要用到库文件的工程中,选中工程树中Debug Libraries 选项。通过Project|Add Files to Librar
10、ies 命令,把*.ALF 库文件加入工程中。Debug Sources main.c,打开main.c LCD和串口输出字符串“Hello world!”。int Main(int argc, char *argv)ARMTargetInit(); LCD_Init(); LCD_Cls();LCD_printf(Hello world!n); Uart_Printf(nHello world!n); while(1);LCD显示模式为文本显示模式/文本模式下清屏命令/向液晶屏输出/向串口输出读者可以分别打开其他的源文件,了解该系统运行的基本知识。这个程序没有用到操作系统,只是简单地说明工程
11、的开发过程,带有操作系统的实验将在“C/OS-II 在 处理器上的移植及编译”实验之后出现。进行程序的在线仿真、调试ARM Project Manager Debug 子树,通过Project Build work1.apj“Debug”命令(或者工具栏中的相应按钮)编译整个工程。ARMJTAG PC UarmJTAG.exe。使用 Project|Debug work1.apj“Debug”命令(或者工具栏中的相应按钮)ARM Debugger 软件调试程序。在 ARM Debugger 中,通过 Options|Configure Debugger 命令设置仿真器。如图 1-11 所示,在
12、弹出的对话框中,设置Target Environment 为 Remote_A。Configure 1-12 所示,设置仿真器。本机的IP本机的IP地址图1-11设置仿真器图1-12设置仿真器出现下面的提示信息以后,单击“是”按钮,ARM Debugger 1-13 所示。图1-13装载程序(56Execute|Go 命令(或者工具栏中的相应按钮)运行程序。当程序运行时,可以使用 Execute|Stop 命令(或者工具栏中的相应按钮)1-14 所示,在Execute 窗口中将显示出程序暂停的位置。图1-14显示程序暂停的位置通过 Execute|Step 命令(或者工具栏中的相应按钮)Ste
13、p InStep Out 命令进入或者跳出函数的调用。View|Source Files1-15 所示的源程序列表窗口,双击列表中的文件名可以查看相应的源文件。注意:查看源文件时,有时可能会出现看不到自己的源文件的情况,这时要将工程重新强制编译一下。在源文件列表中打开 main.c 1-16 所示,用Toggle Breakpoint命令可以设置断点,使程序运行到这里停下来。View Registers、Variables Memory 器或者内存变量。读者可以逐一地尝试,为以后调试程序打下基础。图1-15查看源文件图1-16设置断点1.2ADS 1.2开发环境简介一、实验目的熟悉 ADS 1
14、.2 开发环境,学会ARM 仿真器的使用。使用 ADS 编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。二、实验内容本次实验配置 ADS 学习 ARM 仿真器的使用和开发环境的设置。下载已经编译好的文件到嵌入式控制器中运行。学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。三、预备知识C 语言的基础知识、程序调试的基础知识和方法。四、实验设备及工具(包括软件调试工具)硬件:ARM 嵌入式开发平台、用于 ARM7TDMI JTAG 仿真器、Pentium100 以上PC 机、串口线。软件:PC 机操作系统 Windows 98、Windows 2000 或
15、Windows XP,ARM SDT 2.51 或ADS 1.2 集成开发环境,仿真器驱动程序,超级终端通信程序。五、实验步骤ADS集成开发环境ADS 1.2 (CodeWarrior for ARM Developer New Project 1-17 所示,新建一个工程文件。其中示Exp6.mcp。单击Set 1-18 所示,选中Create Folder 1-17 中的Project name 1-18 这样可以将所有与该工程相关的文件放到该工程目录下,便于管理工程。1-17 工程模板列表中选择ARM Executable Image ARM3000 44B0 ARM Executabl
16、e Image到 ADS1.2 Stationery 目录中(所有的工程模板都在此目录下。以后44B0 ARM Executable Image 可,不必每次重新配置模板。图1-17新建工程图1-18保存工程1-19 Debug 版本,使用 Edit|Debug Settings命令对 Debug 版本进行参数设置。图1-19选择版本Debug Settings 对话框中选择Target Settings 1-20 Post-linker列表框中选择 ARM fromELF,单击右下角的 Apply 按钮使其有效。图1-20选择Target SettingsDebug Settings ARM
17、 Linker1-21 Output Linktype 3 Simple Scattered 两种。SimpleC Scattered 单选按钮进行C Simple 、C 库函数,则选中Scattered 的第(6)、(7)、(9)步进行设置。Simple 1-21 Simple image 选项组中设置连接的只读)读写)地址。地址0 x0c080000 SDRAM的真实地址,是由系统的硬件决定的;0 x0c200000 指的是系统可读写的内存地址。也就是说, 在 0 x0c0800000 x0c1fffff 之间是只读区域数据段。图1-21设置连接地址范围Scattered 1-22 C 库
18、函数中如果使用malloc及其相关的函数,需要使用系统的堆(Heap)空间,可以通过 scatter 文件来描述系统 Heap 的位置。针对 44B0 开发板,把程序的入口定位在 0 xc080000,并定义 Scatter scat_ram.scf。在图 1-22 中选中 Linktype 选项卡中的 Scattered 单选按钮,输入 Scatter 文件名scat_ram.scfOptions 选项卡,在Image Entry Point 0 xc0800001-22 Equivalent Command Line 文本框中直接输入-entry 0 xc080000 -scatter s
19、cat_ram.scf 进行上述设置。提示:图1-22通过scatter 文件设置连接地址 程序移植到 ADS 后,首先执行用汇编语言写的初始化代码,包括中断向量和内存空间的初始化。在该段代码中使用IMPORT _注意main前面是两个半字下划线) B_main进行系统内部的标准C C 语言中定义的main()(注意:两个main 都是小写,并且在嵌入式应用中用户在C 语言中定义的main 中不能有参数(int main(void。 不能有系统定义的软中断,在汇编语言中可以使用IMPORT_ _use_no_semihosting_swi来检测,在 C 语言中使用#pragmaimport(_
20、use_no_semihosting_swi) /ensurenofunctionsthat usesemihosting scatter RAM_LOAD0 xc080000。RAM_LOAD 0 xc080000RAM_EXEC0 xc08000044binit.o (init, +First)* (+RO)RAM 0 x0c200000* (+RW,+ZI)HEAP +0 UNINITheap.o (+ZI)STACKS 0 xc7ff000 UNINITstack.o (+ZI)ISR_STARTADDRESS 0 xc7fff00 ;SDRAM bottomisr_address.o
21、 (+ZI)在图 1-23 中说明了这个装载区域的划分。0 xc7fff00ISR _STA RT A D D R ESS0 xc7ff0000 xc7fff00ISR _STA RT A D D R ESS0 xc7ff000STA C KSH EAPRA M0 xc200000RAM_EXEC0 xc080000isr_address.c文件。STA CKS 0 xc7ff00 N IN IT 表示 C 初始化的时候, 不初始化( 清零)定位在 stack.o 中, 向低地址增长。系统的堆空间放在 H EA P 部分,紧接着 RA M 段。使用 U N IN IT 表示, C 初始化的时候
22、, 不初始化( 清零) 该段。 此段定位在heap.o 中, 向高地址增长。RAM 部分,从 0 xc200000地址开始,放目标文件的读写(RW ) 部分和 ZI 部分。R A M _EX EC 从 0 xc080000地址开始,包括了所有的目标文件的只读部分。因为系统 44binit.o中定义了中断向量和程序的起始代码,所以,使用+first ,在连接的时候,把 init 段放在最前面。RAM_EXECAW 1.5M B 大小程序空间不能超过 1.5M B。图1-23程序和数据装载区域的划分 定义retarget.c 函数,重新定位标准 C 库中stdio 的一些相关函数。主要有:stru
23、ctFILE int handle; /* Add whatever you need here*/;FILEstdout;文件的定义int fputc(int chFILE*f)/fputc函数intferror(FILE*f)/ferror函数void _sys_exit(int return_code) void _ttywrch(int ch) value_in_regsstruct统退出函数 user_initial_stackheap(unsigned R0, unsigned SP, unsigned R2, unsignedSL)具体定义,可以参考 init/retarget.
24、co接第(6)步,在第(4)步中如果不选择简单的连接地址设置,则需按图 1-24 C Debug Settings ARM C CompilerATPCS ARM/Thumb interworki 复选框,或者在命令行中添加-apcs /interwork。图1-24设置ARM C Compiler接第(5)步,若在第(4)Debug Settings ARM Linker 1-25 所示。单击Factory Settings 按钮,出现Layout 项卡(ReleaseFactory Settings 按钮)。在Layout Place at beginning of image 选项组中设
25、置程序的入口模块。指定在生成的代码中,程序44binit.s 开始运行的。Object/Symbol/44binit.o,Section 。在Debug Settings ARM fromELF1-26 所示。在Output file name框中设置输出文件名为1-19 ReleaseEdit|Release Settings命令对 Release 版本进行参数设置。Release Settings对话框中设置Release版本的、连接地址范围、入口模块和输出文件。图1-25设置入口模块图1-26设置输出文件名1-19 所示的工程窗口中,选择Targets 1-27 DebugRelDel
26、键将其删除。设置完成后,可以将该新建的空工程文件作为模板保存以便以后使用,将工程44B0 ARM Executable.mcp。然后在ADS 1.2 软件安装目录下的Stationery 下新建名为 44B0 ARM Executable Image 的模板目录,再将刚 设置完的 44B0 ARM Executable.mcp 工程模板文件存放到该目录下即可。这样以后新建工程的时候,如图 1-28 44B0 ARM Executable Image为名字的模板了。提示:建议用户直接将光盘 ADS 实验下的 TemplateADSStationery 目录中的 44B0 ARM Executab
27、le Image ADS 1.2 安装目录下的Stationery 也能在图 1-17 开发板的参数。这个模板设置为 Scattered 版本。(2)如果用户原来已安装了ARM SDT 软件,再安装 ADS 1.2 后可能导致ARM SDT 不能正常使用,需要用户更改系统环境变量: ARMINC 设置为%ARMSDTPATH% INCLUDE, ARMLIB 设置为%ARMSDTPATH%LIB ,其中%ARMSDTPATH% 指ARM SDT 的安装目录。图1-27 删除DebugRel版本图1-28 显示44B0 ARM 模板建立工程文件ARM ADS UP-ARM3000 Project
28、|Add Files 命令把和工程相关的所有文件加入到工程中。ADS 1.2 不能自动按文件类别对这些文件进行分Project|Create Group 命令创建文件组,然后分别将不同类的文件加入到不同的组,以方便管理。如图 1-29 所示。更为简单的办法是,在新建工程时 ADS 建了和工程同名的目录,在该目录下按类别创建子目录并存放工程文件。选中所有目录拖ADS 任务条上,中途不要松开鼠标。当 ADS 窗口恢复后再拖动到工程文ADS 将以子目录名建立同名文件组并以此对文件分类。图1-29加入工程文件这里把ADS init 和STARTUP 两个目录复制到新建的工程目录ADS 窗口恢复后再拖动
29、到工程文件窗口,并松开鼠标。这样ADS init STARTUP 目录名建立同名文件组并以此对文件分类。双击图 1-29 中的Main.c 打开该文件,可以看到 Main()函数的内容如下:int main(void)ARMTargetInit();开发版初始化LCD_Init();LCD_ChangeMode(DspTxtMode);转换LCD显示模式为文本显示模LCD_Cls();文本模式下清屏命令LCD_printf(Helloworld!n);向液晶屏输出Uart_Printf(nHelloworld!n);while(1);ADS 器已经有了很大的改善,文本按语法分颜色显示。读者可以
30、根据喜好在 Edit Preferences 窗口中进行设置。进行程序的在线仿真、调试1-19 Debug Project|Make 命令对工程进行编译连接。在出现的错误/警告窗口中选择某错误/警告信息,ADS 会自动打开相应源文ADS 件的日期信息。ADSProject|Debug 命令启动ADS 1.2 的调试工具。AXDOptions|Configure Target AXD1-30 即远程调试),Configure 1-31 所示。图1-30设置AXD 参数1-31 中单击Select 按钮选择远程连接为ARM ethernet Configure按钮输入仿真器的 IP 地址。如果使用
31、的是并行口仿真器,输入 127.0.0.1 即可。图1-31设置远程连接等待程序装载完毕以后,通过Execute|Go 以及Execute|Stop 命令(的相应按钮)运行或暂停程序。程序暂停后在窗口中将显示出其暂停的位置。通过 Execute|Step 命令(或者工具栏中的相应按钮)Step InStep Out Run To Cursor 命令可将程序运行到光标位置。Processor Views|Sources F9 键设置断点。使用在Processor View RegistersVariables Memory 作寄存器或者内存变量。读者可以逐一地尝试,为以后调试程序打下基础。ADS
32、 Debug 版本,如果选择Release Release system.bin Flash Flash U 1.3 节中描述。1.31.3超级终端设置及BIOS 功能使用运行Windows 系统下的超级终端如果要求输入区号、电话号码等信息,可随意输入,出现如图1-32 所示对话框时,为所建arm,可以为其选一个图标。单击“确定”按钮。ARM PC 机串口(单击“确定”按钮后出现如图1-33 波特率为 115200,数据位为 8,无奇偶校验,停止位为 1,无数据流控制。单击“确定” 按钮完成设置。图1-32创建超级终端图1-33设置串行口PC UART0正Hello world!” 。启动开发板,按住开发板上键盘的任意按键,使开发板进入 BIOS 1-34 所示。图1-34系统的BIOS设置程序BIOS 的版本等信息。Shell Menu 最左边字母是该功能的快捷键,按 PC 机键盘相应键将执行对应功能。注意操作时保持超PC 机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 购销合同中的布料描述
- 招标启事造价咨询项目
- 私教个人训练合约
- 技术培训与技术许可合同
- 强身健体宣言
- 石子购销合同
- 饲料购销二线合同
- 还款计划承诺函
- 石膏板供需协议
- 外籍教师合同英文版样本
- 机械设备定期检查维修保养使用台账
- 丽声北极星分级绘本第四级上 Stop!Everyone Stop!教学设计
- 希尔顿酒店市场营销环境的swot分析 2
- 消化道穿孔课件
- 可编辑修改中国地图模板
- 最新电大市场调查与商情预测作业1-4参考答案小抄汇总
- CJJ-T 34-2022 城镇供热管网设计标准
- 人教版小学数学一年级上册20以内加减法口算题汇编
- 为先祖立碑祭文五篇
- 【学习课件】第四篇行为科学理论的产生和发展
- 银行保险从业人员销售服务初级培训考试题库
评论
0/150
提交评论