- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
四、ARM实验ASL开发环境基础
嵌入式系统实验四 ADS1.2 开发环境基础
一、实验目的
1、熟悉ADS1.2 开发环境,学会ARM 仿真器的使用。
2、使用ADS 编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。
二、实验内容
本次实验使用ADS 集成开发环境。新建一个简单的工程文件,并编译这个工程文件。学习ARM 仿真器的使用和开发环境的设置。下载已经编译好的文件到嵌入式控制器中运行。学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。
三、预备知识
C 语言的基础知识、程序调试的基础知识和方法。
四、实验步骤
1、ADS工程建立
(1)运行ADS1.2 集成开发环境(CodeWarrior for ARM Developer Suite)。选择File|
New…菜单,在对话框中选择Project,如图1B-1 所示,新建一个工程文件。图中示例的工
程名为Exp6.mcp。点set…按钮可为该工程选择路径(选中CreatFolder 选项),以图2-1 中的ProjectName为名创建目录,这样可以将所有与该工程相关的文件放到该工程目录下,便于管理工程。
在图2-1 中工程模板列表中的2410 ARM Executable Image 是专为本嵌入式开发板设置的工程模板,后文有具体说明。在此也可选择ARM Executable Image 通用模板。
图2-1
(2)在新建的工程中,如图2-2 所示,选择Debug 版本,使用Edit | Debug Settings
菜单对Debug 版本进行参数设置。
图2-2
(3)在Debug Settings 对话框中选择Target Settings 项,如图2-3 所示。在Post-linker
一栏中选择ARM fromELF。
图2-3
(4)在Debug Settings 对话框中选择ARM Linker 项,如图2-4。在Output 选项卡的Simple
image 框中设置连接的Read-Only(只读)和Read-Write(读写)地址。地址0开发板上SDRAM 的真实地址,是由系统的硬件决定的;0指的是系统可读写的内存地址。也就是说,在00之间是只读区域,存放程序的代码段,在0开始是程序的数据段。
图2-4
图2-4 所示的设置只是一种简单设置,如果程序需要用到标准C 库函数的话需要按图2-6
进行连接地址的设置。
标准C 中如果使用malloc 及其相关的函数,需要使用系统的堆(Heap)空间,可以通
过scatter 文件来描述系统HEAP 段的位置。针对2410-S 开发板,把程序的入口定位在
0并定义scatter 文件为scat_ram.scf。在图2-5 中选择LinkType 为Scattered,
输入scatter 文件名scat_ram.scf;然后切换到Options 选项卡在Image Entry Point 框
中输入0也可以在图2-5 的Command Line 框中直接输入-entry 0-scatter scat_ram.scf 进行上述设置。
图2-5
提示:
1)程序移植到ADS 后,程序最开始首先执行用汇编写的初始化代码——包括中断向量和堆栈的初始化。在该段代码中使用IMPORT __main ;注意main 前面是两个下划线B __main
进行系统内部的标准C 函数初始化,然后调用用户在C 中定义的main()函数(注意:两个main 都是小写),并且在嵌入式应用中用户C 的main 函数中不能有参数(intmain(void))。
2)不能有系统定义的软中断,在汇编中可以使用IMPORT __use_no_semihosting_swi
来检测,在C 中使用
#pragma import(__use_no_semihosting_swi) // ensure no functions that use
semihosting
3)scatter 文件内容如下,创建了一个RAM_LOAD 的程序和数据的装载区域,起始地址0
RAM_LOAD 0{ RAM_EXEC +0
{
startup.o (init, +First)
* (+RO)
}
L0PAGETABLE 0UNINIT ;about 2MByte offset SDRAM
{pagetable.o (+Z
您可能关注的文档
最近下载
- TSZEIA 014-2023 二手手机出口质量要求.pdf VIP
- 2025年高考湖南卷物理真题 含答案.pdf VIP
- 个股动量效应的识别及“球队硬币”因子构建.pdf VIP
- 微机型母线保护分析与应用.pdf VIP
- (人教版)一年级上册科学 观察物体教案.doc VIP
- 学校EPC工程项目实施的重难点分析及对策.pdf VIP
- 典型事故五:内蒙古泰和煤焦化集团有限公司“4.8”爆炸事故.pdf VIP
- 2020款上汽通用别克君越_汽车使用手册用户操作图解驾驶车主车辆说明书电子版.pdf
- 基于新课标“教学评”一体化的小学语文教学设计与实施 培训课件.pptx
- 陶艺课程--校本特色课程-专题讲座.pptx VIP
文档评论(0)