AT91SAM9260使用SAM-BA调试BOOT程序


一、编写目的

        由于调试ARM9时不像MCU那样,可以使用仿真器单步调试(起码ARM9的大部分应用不会用这样做),因此第一次调试的过程是比较痛苦的。幸运的是AT91SAM9260这款IC可以使用镜像烧录工具SAM-BA来进行调试,使用此工具可以将程序BIN文件下载到目标板的SRAM(内部4KB)或SDRAM(外部)中运行,从而使我们能完成第一步,串口输出“Hello world!”。只要完成了第一步,接下来的软件调试就容易多了。软件开发的后期,也可以使用该方法下载程序到SDRAM中运行,从而减少对FLASH的擦写,加快调试速度。

        本文档用于说明如何使用SAM-BA进行AT91SAM926的前期调试。


二、SAM-BA调试

1. AT91SAM9260启动流程

        如下图所示(此图截于AT91SAM9260的芯片手册),CPU上电启动时先会从DataFlash0中查找有校数据(启动程序),如果当中的数据有效果,则拷贝到内部SRAM(4KB)中并运行,否则再从下一个存储器中查找。查找顺序依次为DataFlash0、DataFlash1、NandFlash,如果上述存储器中都没有有效程序,则运行内部ROM中的程序(出厂时固化)。此程序将目标板模拟成一个USB子设备,通过SAM-BA进行交互操作。

 


2. 地址分配

        AT91SAM9260的存储器地址分配如下图所示(此图截于AT91SAM9260的芯片手册)。根据ARM9的特性,系统正常启动的情况下,由CPU读取有效存储器(Dataflash或NandFlash)中的程序的前4KB代码至SRAM0中,然后跳到SRAM0的起始地址(0x200000)中运行。所以程序存储器中的前4KB代码必须精简而且功能完整,它需要做的事情就是初始化必要的硬件和搬运代码的工作了。

 


3. 使用SAM-BA v2.12下载bootstrap代码至于SRAM中运行

        以下使用GH管理器的程序文件进行测试,要使用到bootstrap和U-BOOT的BIN文件。因为bootstrap中没有输出信息,所以U-BOOT也要使用。


Ø 连接目标板与PC机


Ø 下载U-BOOT镜像到NAND

 


Ø 下载bootstrap到内部SRAM0中(这里实际上是代替了固化的ROM程序的工作)

 

 

Ø 输入命令行,跳到SRAM0中运行

 


Ø 此时,串口助手上输出了U-BOOT的信息

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值