ARM入门笔记(11)

发布时间:2010-8-26 17:35    发布者:绝对好文
关键词: ARM入门笔记
ISP实验

一.背景

由于前面的实验都是用仿真器将代码下载到AT91SAM7S64的SRAM里调试的,还不能在实际的Flash ROM里跑。所以在这个实验中,我们将通过ATMEL提供的SAM-BA 软件和AT91SAM7S64自带的ROMBoot功能,完成AT91SAM7S64的Flash ROOM的在线烧写。

二.实验目的

用前面“I/O口输入实验”的源程序生成二进制文件,下载到AT91SAM7S64的Flash ROM中,且能脱机正确运行。

三.操作方法

1> 安装。双击Install SAM-BA.exe文件运行,按提示一步步安装即可。
2> 连接好硬件,且使AT91SAM7S64处于RomBoot状态。
3> 运行。双击SAM-BA图标出现如下图所示的启动窗口:

1.jpg
图4.21 SAM启动窗口

当正确设置后,按“DBGU connection”按钮将打开SAM-BA编程环境,如下图所示:

2.jpg   
图4.22  SAM-BA1.0编程环境

4> 用ADS1.2生成二进制文件。

5> 编程。点击“Flash->Download/Upload File->Send File Name”项的“Browse”按钮打开二进制文件后,点击“Send File”按钮开始下载程序。

6> 复位目标板,开始运行用户程序。

四.出现的问题与解决方法

1> ADS软件编译后不能产生二进制等目标文件

第一、 可以用DOS命令手工生成二进制文件。

第二、 在“DebugRel Settings”中,将“Target->Target Settingsr->Post-linker”项的“None”修改成“ARM fromELF”,再在“DebugRel Settings”中的“Linker->ARM fromELF->Output format”中设置成Plain binary。

2> 不能进入SAM-BA软件,总出现下述提示错误信息,但硬件连接都正确。

3.jpg
图. 错误信息1                                         

4.jpg
图. 错误信息2

原因是将用户程序下载到AT91SAM7Sxx芯片后,同时会擦除掉内部的BootRom程序,此时就不能再实现在线下载的功能!因此起动SAM-BA软件会弹出上述的出错信息,必须重新恢复内部的BootRom引导程序。可将AT91SAM7S64的TST管脚接高电平10S多时间,再重新复位。此时每次复位后都将在DBGU口发送“RoomBoot”的ASCII字符,可用超级终端查看。

3> 不能进行RomBoot恢复,且不能与仿真器进行连接。

原因是器件的安全保密位被编程,可以将AT91SAM7S64的ERASE脚接高,将flash内容初始化(或者说是擦除),再进行RomBoot恢复。

五.总结

到目前为此,基本上完成了AT91SAM7S64的大部分外围实验,并且也能够将程序烧到AT91SAM7S64的内部Flash ROM里,而脱离仿真器进行运行。我个人认为其它没有完成的实验在原理与使用上基本相同,应该没有什么难点。

可以说现在已经基本上能够将AT91SAM7S64像普通单片机一样使用了,但作为ARM这种高性能的处理器来讲,这是远远不够的,我希望自己有时间能够将μCOS-Ⅱ移植上去,届时再与大家讨论。
本文地址:https://www.eechina.com/thread-23802-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
长话短说 发表于 2010-9-4 11:39:08
谢谢
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表