实验1基于ARM核的嵌入式开发环境的使用.docx

上传人:b****5 文档编号:6755384 上传时间:2023-01-10 格式:DOCX 页数:16 大小:547.45KB
下载 相关 举报
实验1基于ARM核的嵌入式开发环境的使用.docx_第1页
第1页 / 共16页
实验1基于ARM核的嵌入式开发环境的使用.docx_第2页
第2页 / 共16页
实验1基于ARM核的嵌入式开发环境的使用.docx_第3页
第3页 / 共16页
实验1基于ARM核的嵌入式开发环境的使用.docx_第4页
第4页 / 共16页
实验1基于ARM核的嵌入式开发环境的使用.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

实验1基于ARM核的嵌入式开发环境的使用.docx

《实验1基于ARM核的嵌入式开发环境的使用.docx》由会员分享,可在线阅读,更多相关《实验1基于ARM核的嵌入式开发环境的使用.docx(16页珍藏版)》请在冰豆网上搜索。

实验1基于ARM核的嵌入式开发环境的使用.docx

实验1基于ARM核的嵌入式开发环境的使用

实验1基于ARM核的嵌入式开发环境的使用

一、实验目的

熟悉ADS1.2开发环境,学会ARM仿真器的使用。

使用ADS编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。

二、实验内容

本次实验使用ADS集成开发环境。

新建一个简单的工程文件,并编译这个工程文件。

学习ARM仿真器的使用和开发环境的设置。

下载已经编译好的文件到嵌入式控制器中运行。

学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。

三、预备知识

C语言的基础知识、程序调试的基础知识和方法。

四、实验设备及工具(包括软件调试工具)

硬件:

ARM嵌入式开发平台、PC机Pentium100以上、用于ARM920T的JTAG仿真器、串口线。

软件:

PC机操作系统Win2000或WinXP、ARMADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。

五、实验步骤

1、建立工程

(1)运行ADS1.2集成开发环境(CodeWarriorforARMDeveloperSuite)。

选择File|New…菜单,在对话框中选择Project,如图1B-1所示,新建一个工程文件。

图中示例的工程名为Exp6.mcp。

点set…按钮可为该工程选择路径如图2-1所示,选中CreatFolder选项后将以图1-1中的ProjectName或图1-2中的文件名为名创建目录,这样可以将所有与该工程相关的文件放到该工程目录下,便于管理工程。

在图1-1中工程模板列表中的2410ARMExecutableImage是专为本嵌入式开发板设置的工程模板,后文有具体说明。

在此也可选择ARMExecutableImage通用模板。

图1-1新建工程

 

图1-2保存工程

(2)在新建的工程中,如图1-3所示,选择Debug版本,使用Edit|DebugSettings菜单对Debug版本进行参数设置。

 

图1-3选择版本

(3)在DebugSettings对话框中选择TargetSettings项,如图1-4所示。

在Post-linker一栏中选择ARMfromELF。

图1-4TargetSettings

(4)在DebugSettings对话框中选择ARMLinker项,如图1-5。

在Output选项卡的Simpleimage框中设置连接的Read-Only(只读)和Read-Write(读写)地址。

地址0x30008000是开发板上SDRAM的真实地址,是由系统的硬件决定的;0x30200000指的是系统可读写的内存地址。

也就是说,在0x30008000~0x30200000之间是只读区域,存放程序的代码段,在0x30200000开始是程序的数据段。

图1-5设置连接地址范围

图1-5所示的设置只是一种简单设置,如果程序需要用到标准C库函数的话需要按图1-6进行连接地址的设置。

标准C中如果使用malloc及其相关的函数,需要使用系统的堆(Heap)空间,可以通过scatter文件来描述系统HEAP段的位置。

针对2410-S开发板,把程序的入口定位在0x30008000,并定义scatter文件为scat_ram.scf。

在图2-6中选择LinkType为Scattered,输入scatter文件名scat_ram.scf;然后切换到Options选项卡在ImageEntryPoint框中输入0x30008000。

也可以在图2-6的CommandLine框中直接输入-entry0x30008000-scatterscat_ram.scf进行上述设置。

 

图1-6通过scatter文件设置连接地址

提示:

1)程序移植到ADS后,程序最开始首先执行用汇编写的初始化代码——包括中断向量和堆栈的初始化。

在该段代码中使用

IMPORT__main;注意main前面是两个下划线

B__main

进行系统内部的标准C函数初始化,然后调用用户在C中定义的main()函数(注意:

两个main都是小写),并且在嵌入式应用中用户C的main函数中不能有参数(intmain(void))。

2)不能有系统定义的软中断,在汇编中可以使用

IMPORT__use_no_semihosting_swi

来检测,在C中使用

#pragmaimport(__use_no_semihosting_swi)//ensurenofunctionsthatusesemihosting

3)scatter文件内容如下,创建了一个RAM_LOAD的程序和数据的装载区域,起始地址0x30008000。

RAM_LOAD0x30008000

{RAM_EXEC+0

{

startup.o(init,+First)

*(+RO)

}

L0PAGETABLE0x30200000UNINIT;about2MByteoffsetSDRAM

{

pagetable.o(+ZI)

}

STACKS+0x100000UNINIT;64KByteunderL0pagetable

{

stack.o(+ZI)

}

RAM+0

{

*(+RW,+ZI)

}

HEAP+0UNINIT

{

heap.o(+ZI)

}

EXCEPTION_EXEC0OVERLAY;exceptionregion

{

exception.o(+RO)

}

}

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)//系统退出函数

int__raise(intsignal,intargument)

__value_in_regsstruct__initial_stackheap__user_initial_stackheap(unsignedR0,unsignedSP,unsignedR2,unsignedSL)//用户的堆空间和栈空间函数

具体定义,可以参考init/retarget.c

(5)在第(4)步中如果不选择简单的连接地址设置,则需按图1-7所示设置C编译器。

在DebugSettings对话框中选择ARMCCompiler项,在ATPCS选项卡中选择ARM/Thumpinterwork,或者在命令行中添加-apcs/interwork。

 

图1-7设置ARMCCompiler

(6)在第四步中如果选择简单的地址连接设置,在DebugSettings对话框中选择ARMLinker项,如图1-8。

在Layout选项卡的Placeatbeginningofimage框中设置程序的入口模块。

指定在生成的代码中,程序是从startup.s开始运行的。

Object设为startup.o,section设为init。

图1-8设置入口模块

(7)在DebugSettings对话框中选择ARMfromELF项,如图1-9。

在Outputfilename框中设置输出文件名为system.bin,这就是要下载到开发板的嵌入式应用程序文件。

图1-9设置输出文件名

(8)回到如图1-10所示的工程窗口中,选择Release版本,使用Edit|ReleaseSettings菜单对Release版本进行参数设置。

(9)参照第(3)、(4)、(5)、(6)、(7)步在ReleaseSettings对话框中设置Release版本的Post-linker、连接地址范围、入口模块和输出文件。

(10)回到如图1-3所示的工程窗口中,选择Targets选项卡,如图1-10所示。

选中DebugRel版本,按Del键将其删除。

DebugRel子树是一个折衷版本,通常用不到,所以在这里删除。

图1-10删除DebugRel版本

(11)设置完成后,可以将该新建的空工程文件作为模板保存以便以后使用。

将工程文件名改为2410ARMExecutable.mcp。

然后在ADS1.2软件安装目录下的Stationery目录下新建名为2410ARMExecutableImage的模板目录,再将刚设置完的2410ARMExecutable.mcp工程模板文件存放到该目录下即可。

这样以后新建工程的时候如图2-1所示就能看到以2410ARMExecutableImage为名字的模板了。

提示:

1)建议用户直接将光盘Template/ADS下的2410ARMExecutableImage子目录直接拷贝到ADS1.2安装目录下的Stationery目录中,这样也能在图1B-1所示的新建工程对话框中看到这个模板,其中具有已经设置好的针对本开发板的参数。

注意ARMLinkerLinktype设置为Scattered,请参阅第(4)步内容。

2)如果用户原来已安装了ARMSDT软件的话,再安装ADS1.2后可能导致ARMSDT不能正常使用,需要用户更改系统环境变量:

ARMINC设置为%ARMSDTPATH%\INCLUDE,ARMLIB设置为%ARMSDTPATH%\LIB,其中%ARMSDTPATH%指ARMSDT的安装目录。

(12)新建工程后,可以执行菜单Project|AddFiles把和工程相关的所有文件即除inti的所有文件加入到工程中。

ADS1.2不能自动按文件类别对这些文件进行分类,需要的话用户可以执行菜单Project|CreateGroup创建文件组,然后分别将不同类的文件加入到不同的组,以方便管理。

如图2-11所示。

更为简单的办法是,在新建工程时ADS创建了和工程同名的目录,在该目录下按类别创建子目录并存放工程文件。

选中所有目录拖动到任务栏上的ADS任务条上,不要松开鼠标当ADS窗口恢复后再拖动到工程文件窗口,松开鼠标。

这样ADS将以子目录名建立同名文件组并以此对文件分类。

图1-11加入工程文件

(13)编译并双击图1-11中的Main.c打开该文件,可以查看Main()函数的内容,这时也可运行程序。

图1-11的例程是ARM的串口实验。

读者可以查看其他源文件的内容以对系统运行有所了解。

可以发现ADS的文本编辑器已经有了很大的改善,文本按语法分颜色显示,读者可以根据喜好在Edit菜单下的Preferences窗口中进行设置。

并可以很好的支持中文注释。

超级终端设置及映象文件下载方法

一、超级终端设置

1、运行Windows系统下的超级终端(HyperTerminal)应用程序,新建一个通信终端。

如果要求输入区号、电话号码等信息请随意输入,出现如图1-12所示对话框时,为所建超级终端取名为arm,可以为其选一个图标。

单击“确定”按钮。

图1-12创建超级终端

2、在接下来的对话框中选择ARM开发平台实际连接的PC机串口(如COM1),按确定后出现如图1-13所示的属性对话框,设置通信的格式和协议。

这里波特率为115200,数据位8,无奇偶校验,停止位1,无数据流控制。

按确定完成设置。

图1-13设置串行口

3、完成新建超级终端的设置以后,可以选择超级终端文件菜单中的保存,将当前设置保存为一个特定超级终端到桌面上,以备后用。

用串口线将PC机串口和平台UART0正确连接后,就可以在超级终端上看到程序输出的信息了,比如本实验的“Helloworld!

”。

二、映象文件下载

将开发板重新启动同时按下键盘中任意键,这时在超级终端将会看到下面图1-14的提示,在vivi>后键入loadflashucosx然后回车。

图1-14超级终端Ⅰ

这时将会进入图1-15的界面,然后打开超级终端上方的“传送”菜单并选择发送文件,如图1-16所示,点击浏览按键,查找并进入到编译生成的映象文件夹下,打开system.bin.然后在发送文件对话框中的协议栏选择Xmodem,最后选择发送。

发送结束后,映象文件即下载到flash中,然后,如图1-17键入bootucos命令再回车即可运行ucos程序。

图1-15超级终端Ⅱ

图1-16发送文件

 

图1-17启动ucos系统

提示:

system.bin文件是系统通过BIOS引导以后,装入内存中运行的默认文件。

所以上文中对工程的设置都使用该文件名作为编译最终文件。

ADS环境中,该文件产生在工程路径下的ProjectName_Data\Debug和Release目录下。

建议将Release下的system.bin文件下载到Flash。

三、数据文件下载

ucos系统中用到的文件(图片、文本文件等)都是通过启动一个ucos系统的应用程序来下载文件到指定目录的,具体方法如下,以列表框的控件的使用实验为例:

1、先打开超级终端,超级终端的设置如前所述。

2、运行列表框的控件的使用实验,运行方法a:

将列表框的控件的使用实验的映象文件下载到flash中。

方法b:

用仿真器调试的方式运行列表框的控件的使用实验。

3、当列表框的控件的使用实验运行起来以后,在超级终端键入回车键,此时如图1-18

图1-18

4、新建ucos目录,命令是mkdirucos回车,然后在sys>提示符下键入ls,若新建目录成功可看见此文件名,然后进入ucos目录下,在sys>提示符下键入cducos回车,进入ucos后如图1-19

图1-19

5、将字库u12x12和u16x16下载到ucos目录下,下载命令dlu12x12.fnt-d回车,然后选择超级终端中的传送菜单下的发送文件,如图1-20,

图1-20

在图2-20中点击浏览,选择要下载的字库,协议选择Xmodem然后点击发送。

重复同样的操作再将字库u16x16下载到ucos目录下。

注意命令形式dlu16x16.fnt-d回车。

6、在ucos目录下键入命令mkdirfj新建fj目录,然后在此目录下下载图片、文本文件test和sys.dat文件。

下载方法和下载字库相同,下载图片的命令形式如:

dl*.bmp-d

下载文本文件的命令形式如:

dltest.txt-t,下载sys文件的命令形式如:

dlsys.dat-d

注意:

其他还有删除命令rm或rmdir,改名命令mv旧文件名新文件名。

下载文本文件用参数-t,下载其他数据文件用参数-d。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1