版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一ADS1・2开发环境创建(2个学时)一、 实验目的熟悉ADS1.2开发环境,学会ARM仿真器的使用。使用ADS编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。超级终端设置及BIOS功能使用。二、 实验内容本次实验配置ADS集成开发环境,新建一个简单的工程文件,并编译这个工程文件。学习ARM仿真器的使用和开发环境的设置。下载已经编译好的文件到嵌入式控制器中运行。学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。运行Windows系统下的超级终端,通过超级终端查看BIOS启动情况。三、 预备知识C语言的基础知识、程序调试的基础知识和方法。四、 实验设备及工具(包括软件调试工具)硬件:ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机PentiumlOO以上、串口线。软件:PC机操作系统win98、Win2000或WinXP、ARMSDT2.51或ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。五、 实验步骤1配置ADS集成开发环境运行ADS1.2集成开发环境(CodeWarriorforARMDeveloperSuite)。选择FileINew…菜单,在对话框中选择Project,如图1T7所示,新建一个工程文件。图中示例的工程名为Exp6.mcp。点set…按钮可为该工程选择路径如图1T8所示,选中CreatFolder选项后将以图1T7中的ProjectName或图1T8中的文件名为名创建目录,这样可以将所有与该工程相关的文件放到该工程目录下,便于管理工程。在图1-17中工程模板列表中我们选择ARMExecutableImage通用模板。我们随后将一步一步的把它配置成针对我们ARM3000开发板的模板44B0ARMExecutableImaage,并把它拷贝到ADS1.2安装目录下的Stationery目录中(所有的工程模板都在此目录下)。以后我们新建工程时,在工程模板列表中直接选中44B0ARMExecutableImaage模板选项,就不必每次重新配置模板了。
图1-17新建工程图1-18保存工程(2)在新建的工程中,如图1T9所示,选择Debug版本,使用Edit|DebugSettings菜单对Debug版本进行参数设置。图1-19选择版本在DebugSettings对话框中选择TargetSettings项,如图1-20所示。在Post-linker一栏中选择ARMfromELF,点击右下角的Apply使其有效。
图1-20TargetSettings(4)在DebugSettings对话框中选择ARMLinker项,如图1-21。在Output下的Linktype中有三种类型的连接方式,我们常用的是Simple和Scattered两种。Simple是一种简单设置,如果程序需要用到标准C库函数的话需要按Scattered进行连接地址的设置。若你用不到标准C库函数的话,请选择Simple选项,并按照下边的第(5)、(8)、(9)进行设置。若你用到标准C库函数的话,请选择Scattered选项,并按照下边的第(6)、(7)、(9)进行设置。(5)在ARMLinker项的Output选项卡中,我们选择Simple选项,如图1-21所示。在Simpleimage框中设置连接的Read-Only(只读)和Read-Write(读写)地址。地址0x0c080000是开发板上SDRAM的真实地址,是由系统的硬件决定的;0x0c200000指的是系统可读写的内存地址。也就是说0x0c080000OxC1fffff之间是只读区域,存放程序的代码段,在0xC200000开始是程序的数据段。图1-21设置连接地址范围在ARMLinker项的Output选项卡中,我们选择Seattered选项,如图1-22所示.标准C中如果使用malloc及其相关的函数,需要使用系统的堆(Heap)空间,可以通过seatter文件来描述系统HEAP段的位置。针对44B0开发板,把程序的入口定位在0xc080000,并定义seatter文件为seat_ram.scf。在图1-22中选择LinkType为Seattered,输入seatter文件名seat_ram.scf;然后切换到Options选项卡在ImageEntryPoint框中输入0xc080000。也可以在图1-22的CommandLine框中直接输入-entry0xc080000-seatterseat_ram.scf进行上述设置。图1-22通过seatter文件设置连接地址提示:程序移植到ADS后,程序最开始首先执行用汇编写的初始化代码一一包括中断向量和内存空间的初始化。在该段代码中使用IMPORT__main;(注意main前面是两个下划线)B__main进行系统内部的标准C函数初始化,然后调用用户在C中定义的main()函数(注意:两个main都是小写),并且在嵌入式应用中用户C的main函数中不能有参数(intmain(void))。不能有系统定义的软中断,在汇编中可以使用IMPORT__use_no_semihosting_swi来检测,在C中使用#pragmaimport(__use_no_semihosting_swi)//ensurenofunetionsthatusesemihostingseatter文件内容如下,创建了一个RAM_LOAD的程序和数据的装载区域,起始地址0xe080000。RAM_LOAD0xe080000{RAM_EXEC0xe080000{44binit.o(init,+First)
*(+RO)}RAM0x0c200000{*(+RW,+ZI)}HEAP+0UNINIT{heap.o(+ZI)}STACKS0xc7ff000UNINIT{stack.o(+ZI)}ISR_STARTADDRESS0xc7fff00;SDRAMbottom{isr_address.o(+ZI)}}DKcTfffCii)ISRSTAST/jjUKESSOKcTffOOO■■ilwJhi}EffRAMOm^200000RAM_EIEC01C030030在图1-23中说明了这个装载区域的划分。•1心.味孑子IINiP■星:懈忙'夕县L汙亠"一—口―.〜;件系统的堆空问放在HE碍弁,賞毎湘菽。使Cir*)Pt::”上亍::定二匕/=■■丄系统的堆空问放在HE碍弁,賞毎湘菽。使F训帑令.」(hC2DCi(J加地址幵蜡.放冃标文件的湊写3部分和EI邹九的起畑生眄莎叽Ulffl-Hirst,°「段豁刖卑詁心小芜I/JLE:<KJAOxl-OJM0。迪幵?t,冋后了护有闾目标应件關.只鈕令“串淒^^binit.o申罡:丈了rit'时乙怖r 的起畑生眄莎叽Ulffl-Hirst,°「段豁刖卑詁心小芜-II注按斶时悵,把i用匕|-nrrr;丿.■、I''TTI'i图1-23程序和数据装载区域的划分4)定义retarget.c函数,重新定位标准C库中stdio的一些相关函数。主要有:struct__FILE{inthandle;/*Addwhateveryouneedhere*/};FILE__stdout;//文件的定义intfputc(intch,FILE*f)//fputc函数intferror(FILE*f)//ferror函数void_sys_exit(intreturn_code)//系统退出函数void_ttywrch(intch)__value_in_regsstruct__initial_stackheap
__user_initial_stackheap(unsignedR0,unsignedSP,unsignedR2,unsignedSL)//用户的堆空间和栈空间函数具体定义,可以参考init/retarget.c(7)接第(6)步,在第(4)步中如果不选择简单的连接地址设置,则需按图1-24所示设置C编译器。在DebugSettings对话框中选择ARMCCompiler项,在ATPCS选项卡中选择ARM/Thumpinterwork,或者在命令行中添加-apes/interwork。图2-24图2-24设置ARMCCompiler(8)接第(5)步,若在第四步中如果选择简单的地址连接设置,在DebugSettings对话框中选择ARMLinker项,如图1-25。点击下边的Factorysetting按钮,出现Layout选项卡(在对release版本进行设置时,不用点击Factorysetting按钮)。在Layout选项卡的Placeatbeginningofimage框中设置程序的入口模块。指定在生成的代码中,程序是从44binit.s开始运行的。Objeet设为44binit.o,section设为init。图1-25设置入口模块(9)在DebugSettings对话框中选择ARMfromELF项,如图1-26。在Outputfilename
框中设置输出文件名为system.bin,这就是要下载到开发板的嵌入式应用程序文件。图1-26图1-26设置输出文件名(10) 回到如图1T9所示的工程窗口中,选择Release版本,使用Edit|ReleaseSettings菜单对Release版本进行参数设置。(11)参照第(3)、(4)、(5)、(6)、(7)、(8)、(9)步在ReleaseSettings对话框中设置Release版本的Post-linker、连接地址范围、入口模块和输出文件。(12) 回到如图1-19所示的工程窗口中,选择Targets选项卡,如图1-27所示。选中DebugRel版本,按Del键将其删除。图1-27删除DebugRel版本(13)设置完成后,可以将该新建的空工程文件作为模板保存以便以后使用。将工程文件名改为44B0ARMExecutable.mcp。然后在ADS1.2软件安装目录下的Stationery目录下新建名为44B0ARMExecutableImage的模板目录,再将刚设置完的44B0ARMExecutable.mcp工程模板文件存放到该目录下即可。这样以后新建工程的时候如图1-17所示就能看到以44B0ARMExecutableImage为名字的模板了。图1-28显示44B0ARM模板提示:1) 建议用户直接将光盘ADS实验下的Template\ADS\Stationery目录中的44B0ARMExecutableImage子目录直接拷贝到ADS1.2安装目录下的Stationery目录中,这样也能在图1-17所示的新建工程对话框中看到这个模板,其中有已经设置好的针对本开发板的参数。这个模板设置为Scattered版本。2) 如果用户原来已安装了ARMSDT软件的话,再安装ADS1.2后可能导致ARMSDT不能正常使用,需要用户更改系统环境变量:ARMINC设置为%ARMSDTPATH%\INCLUDE,ARMLIB设置为%ARMSDTPATH%\LIB,其中%ARMSDTPATH%指ARMSDT的安装目录。2.建立工程文件配置好ARMADS针对UP-ARM3000的开发环境后,可以执行菜单Project|AddFiles把和工程相关的所有文件加入到工程中0ADS1.2不能自动按文件类别对这些文件进行分类,需要的话用户可以执行菜单Project|CreateGroup创建文件组,然后分别将不同类的文件加入到不同的组,以方便管理。如图1-29所示。更为简单的办法是,在新建工程时ADS创建了和工程同名的目录,在该目录下按类别创建子目录并存放工程文件。选中所有目录拖动到任务栏上的ADS任务条上,不要松开鼠标当ADS窗口恢复后再拖动到工程文件窗口,松开鼠标。这样ADS将以子目录名建立同名文件组并以此对文件分类。这里我们把ADS版中开发环境实验中的init和STARTUP两个目录拷贝到新建的工程目录下,然后选中这两个目录,拖动到任务栏上的ADS任务条上,不要松开鼠标当ADS窗口恢复后再拖动到工程文件窗口,松开鼠标。这样ADS将以init和STARTUP目录名建立同名文件组并以此对文件分类。
FileSTAKTUP匚Data010窖田口hh44EEFileSTAKTUP匚Data010窖田口hh44EE町町肋町町町EE町町EE町町町EEinL4壮工肛T.SEITliPS.H振£.hEXIO.cEKIO.hI3FLgisr.hM^irk.chFTiHiTiCtg・5MyU:=c_t.cmyuirt..huptioil.huptiOIL.51.IHAL.cuhal.hDZD320.c1JZD320.h图1-29加入工程文件双击图1-29中的Main.c打开该文件,可以看到Main()函数的内容:intmain(void){ARMTargetInit();//开发版初始化LCD_Init();LCD_ChangeMode(DspTxtMode);//转换LCD显示模式为文本显示模式LCD_Cls();//文本模式下清屏命令LCD_printf("Helloworld!\n");//向液晶屏输出Uart_Printf("\nHelloworld!\n");//向串口输出while(1);}提示:读者可以查看其他源文件的内容以对系统运行有所了解。可以发现ADS的文本编辑器已经有了很大的改善,文本按语法分颜色显示,读者可以根据喜好在idit菜单下的Preferences窗口中进行设置。并可以很好的支持中文注释。3进行程序的在线仿真、调试回到图1-29所示的工程窗口选中Debug版本,执行菜单Project|Make对工程进行编译连接。在出现的错误/警告窗口中选择某错误/警告信息,ADS会自动打开相应源文件并用箭头指向出错的文本行。如果某个源文件被修改,重新编译时ADS会自动同步各文件的日期信息。在ADS中执行菜单Project|Debug启动ADS1.2的调试工具AXD。在AXD中执行菜单Options|ConfigureTarget对AXD进行设置。如图1-30所示。选择ADP即远程调试,点Configure按钮进一步设置具体参数,如图1-31所示。
图1-30设置AXD参数(4)在图1-31中点Select按钮选择远程连接为ARMethernetdriver,点Configure按钮输入仿真器的IP地址。如果用户使用的是并行口仿真器,请输入127.0.0.1即可。图1-31设置远程连接(5) 等待程序装载完毕以后,通过Execute|Go菜单以及Execute|Stop(或者工具栏中的相应按钮)运行或暂停程序。程序暂停后在窗口中将显示出程序暂停的位置。(6) 通过Execute|Step菜单(或者工具栏中的相应按钮)可以单步运行程序。也可以使用StepIn、StepOut菜单命令进入或者跳出函数的调用。RunToCursor命令运行到光标位置。程序停止后可以通过ProcessorViews|Sources菜单查看源文件,并可在适当位置按F9设置端点。使用在ProcessorView菜单下的Registers、Variables和Memory命令可以查看工作寄存器或者内存变量。读者可以逐一地尝试,为以后调试程序打下基础。提示:在进行调试时在ADS中必须选择当前工程的Debug版本,如果选择Release版本则无法正常调试程序。但在调试通过后就必须选择Release版本进行编译连接并将产生的system.bin文件复制到开发板的Flash中。将开发板上的Flash激活作为U盘使用的操作将在下节中描述。4超级终端设置及BIOS功能使用1、运行Windows系统下的超级终端(HyperTerminal)应用程序,新建一个通信终端。如果要求输入区号、电话号码等信息请随意输入,出现如图1-32所示对话框时,为所建超级终端取名为arm,可以为其选一个图标。单击“确定”按钮。图1-32创建超级终端2、在接下来的对话框中选择ARM开发平台实际连接的PC机串口(如C0M1),按确定后出现如图1-33所示的属性对话框,设置通信的格式和协议。这里波特率为115200,数据位8,无奇偶校验,停止位1,无数据流控制。按确定完成设置。
图1-33图1-33设置串行口3、完成新建超级终端的设置以后,可以选择超级终端文件菜单中的保存,将当前设置保存为一个特定超级终端到桌面上,以备后用。用串口线将PC机串口和平台UARTO正确连接后,就可以在超级终端上看到程序输出的信息了,比如本实验的“Helloworld!”。4、启动开发板,按住开发板上键盘的任意按键,使开发板进入BIOS设置状态。如图1-34所示。K9F2808Uisfound,KKM-^-KKX X MX XX KK KX KX KX M;X KX XXkUPNetARMJDOOBootloaderVer3.00COH:115.2kbps,SBit,NPnUfiRFBDuiIdTime;20甜-的15withADS1.2M-ShellMenu :f>>FlashRohToolsM;1>>1estLU!Ho"Forii日tHandFlashToFATM-Kn>>ShowandSetHetaddress!Hu>>EnterUSBDiskM-*('.>>1 IIf)iNk>>EnterlestKeyModes>>TestTouchpadM;h>>Set1ouchpadModea>>EnterTestADCModeM-*d>>EnterrestDflMode!Ht>>EnterRTCTestModeM-*i>>EnterAudioTesiModeiNn>>EnterMotorrestModec>>EnterCHNbusTestModeb defaults^isteM图1-34系统的BIOS设置程序5、该画面上提示了该BIOS的版本等信息。ShellMenu是平台的检测菜单,每个条目的最左边字母是该功能的快捷键,按PC机键盘相应键将执行对应功能。注意操作时保持超级终端处于激活状态,并且PC机键盘必须为小写。6、 用户可以按超级终端的提示尝试部分测试功能,其中:1:测试LCD的文本和图形显示。执行该命令后LCD上会打出文本提示,然后进入图形模式并显示一幅彩色条形图案,然后在超级终端上看提示按任意键返回文本模式,并退出LCD测试返回测试菜单。o:格式化开发平台的16MFLASH,其中的文件将丢失,需要重新拷贝。执行该命令后超级终端上会出现确认提示,如果按“y”键则会格式化Flash,之后返回菜单。n:设置开发平台网卡的IP地址,子网掩码等,下有子菜单。执行该命令后出现子菜单:P:设置MAC地址,执行该命令后按提示操作i:设置IP地址,执行该命令后按提示操作,请与所在局域网在同一网段m:设置子网掩码,执行该命令后按提示操作g:设置网关的IP地址,执行该命令后按提示操作s:保存所设地址,设置完IP地址等后必须执行该命令保存设置,否则设置无效d:设置默认地址q:退出子菜单,返回到主菜单。u:激活开发平台的USB连接,开发平台的Flash可以作为U盘使用,从而可以方便的将字库和应用程序等文件从PC机拷贝到平台的FLASH中。使用此功能时,必须保证USB电缆正确连接。e:测试由ZLG7289驱动的LED显示,共分3步,请看超级终端提示按任意键继续,同时观察LED的变化,最后返回主菜单。k:测试由ZLG7289控制的键盘扫描,执行该命令后按开发平台的键盘,看
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智慧社区智能快递柜异常处理操作方案
- 汽车发动机维修技师点火系统调试方案指引
- 2026年北师大版高三英语一轮复习语法填空第二章测试卷及答案
- 心理咨询师KPI考评表
- 2026年浙江省杭州市第一中学七年级英语第11章语法练习题及答案
- 2026年人教版小学四年级英语下册第5单元语法专项训练习题及答案
- 2026年北京市传染病防控法律法规知识测试卷及答案
- 账号形象版权授权合同
- CN119489252A 一种铜-钼铜-铜多层复合热沉材料的制备方法 (苏州瑞为沐芯集成电路科技有限公司)
- 2026年文化中心宣传策划员能力测试试卷
- 2026年河北省中考语文试卷(含详细答案解析)
- 升压站拆除改造施工方案
- 2026年全国成人高考专升本《生态学基础》模拟试卷及答案
- 日式枯山水庭院设计方案
- 汽车综合性能培训课件教学
- 2025年地理湖南高考真题及答案
- 新人教版一年级上册数学全册教案
- 学校三重一大事项会议记录
- 学堂在线 现代生活美学-插花之道 章节测试答案
- 海尔卡萨帝洗衣机XQGH75-BF1206使用说明书
- 在建工程转固课件
评论
0/150
提交评论