下载本测试程序:<a href="https://bbs.21ic.com/upfiles/img/20093/20093503052282.rar" target=_blank>https://bbs.21ic.com/upfiles/img/20093/20093503052282.rar</a><br /><br /> 经过一个晚上的忙活,圈圈的第一个AT91SAM7S64程序终于跑起来拉。<br />这是一个简单的IO测试程序,在PA0~PA2脚上轮流输出低电平,实现<br />流水灯的效果。<br /><br /> 程序首先初始化系统时钟,将主时钟设置为48.05MHz。然后将对应<br />的PA0~PA2口设置为输出状态并使能。然后在PA0~PA2上轮流输出低电平。<br /><br /> 本程序所用的实验平台是21IC的古道热肠设计的“DIY优盘开发板”,<br />板上在PA0~PA2上分别接了一个LED,把程序烧入开发板中运行,就可以<br />看到LED2~LED4轮流点亮了。<br /><br /> 由于手头的U-link被同学借走了,只好使用USB口进行ISP下载。要<br />进入ISP模式,首先要将板上绿色的自锁开关按下,然后给板子上电(可<br />直接通过USB口供电),等10秒以上,然后拔下电源,弹起绿色自锁开关。<br />再次给板子上电,就能进入到ISP模式了。如果是第一次使用,还需要给<br />它安装驱动程序。当你安装ISP软件时,会自动复制驱动程序到系统目录,<br />让向导自动搜索就行了。然后运行ISP软件SAM-BA v2.8(可以上atmel官方<br />网站下载安装包,圈圈目前所使用的是Install AT91-ISP v1.12.exe),<br />选择“usbARM0”,点击“connect”按钮,即可出现下载界面,打开<br />对应的文件,然后点击发送文件即可。<br /><br /> 不过,这个软件只支持*.bin文件的格式,而keil默认的输出文件是<br />*.hex格式。可以使用hex2bin.exe这个文件进行转换,它就在你的keil 51<br />安装目录下。可以直接在工程选项的output标签页中设置编译完后运行<br />hex2bin文件。然而,keil生成hex文件是从地址0x100000开始的(这是因为<br />这个芯片的FLASH地址在0x10000),如果直接转换的话,得到的bin文件<br />将有1M多大,无法下载到板上去。只好自己对hex文件进行修改后,再进行<br />转换。我们只需要修改hex文件的第一行即可,这里是定义高16位地址的。<br />第一行的内容为: :020000040010EA,将其修改为:020000040000FA。<br />其中0010就是说高16位地址为0x0010,将其改成0000,后面的EA为校验和,<br />朝反方向修改,为0xFA,否则转换时校验和不对会失败。先将output标签<br />页中的创建hex文件勾上,然后编译,再修改hex文件,然后将创建hex文件<br />的勾去掉,把下面的运行程序勾上,再编译,就可以得到对应的bin文件了。<br /><br /> 对于上面这个问题,圈圈试图将ROM地址设置在0x0,结果生成的文件<br />中断向量表部分还是被定位在了0x100000位置处,不能解决问题。看来<br />Keil的CARM编译器还不够好用。<br /><br /> 接下来,圈圈将会依次学习这个芯片的各个模块~~~这个芯片数据手册<br />有点变态,750多页,还好很多图片和表格,也很详细。花了3个多星期的<br />空余时间才看完...<br /><br /> 圈圈 2009-03-05 00:30 |
|