32位精简指令集架构的AT91M42800A的设计与应用
由于Start. s:汇编引导程序代码在执行重映射后,中断向量表将存放在内部RAM中,其地址范围为0x00000000到0x00000018,因此,用于存放数据的实际地址是从0x00000020开始的。存放在外扩RAM中的代码放在ext_ram.c中,以下类似。上例的scatter 文本文件代码如下:
FLASH 0x04000000 0x8000
{
FLASH 0x04000000 0x8000
{
Start.o (Reset, +First)
* (+RO)
}
RAM ON CHIP 0x0020 0x2000
{
*(+RW,+ZI)
}
RAM OFF CHIP 0x8000000 0x40000
{
ext ram.o(+RW,+ZI)
}
FB3050 SEND 0x30000000 0x00ff
{
sendbuf.o(+RW,+ZI)
}
FB3050 RECEIVE 0x30004000 0x00ff
{
receive buf.o+RW+ZI
}
}
6 调试要点
在设计调试过程中,AT91M42800A还有几个特殊的引脚需要特别注意。
BMS:此引脚用来选择引导存储器的数据宽度,如果引导存储器是8位的,应将其上拉,而如果为16位则要下拉。
NTRI:此引脚用来选择三态模式。如果要进入三态模式,应使NTRI引脚在NRST上升沿到来之前保持10个慢时钟周期的低电平,否则,则应将NTRI上拉。
NWAIT:此引脚在调试AT91M42800A时,应将其上拉,否则,系统将进入等待状态。
MODE0、MODE1:这两个引脚用来选择AT91M42800A的4种操作模式,当模式改变时,必须进行复位才能有效。其设置方法如表1所列。
表1 操作模式设置
MODE0 | MODE1 | 操 作 模 式 |
0 | 0 | 通用模式(时钟由片上振荡电路产生) |
0 | 1 | 边界扫描模式 |
1 | 0 | 通用模式(时钟由外时钟信号通过XIN引脚) |
1 | 1 | 保留 |
7 结束语
AT91M42800A是一款处理能力非常强、性能价格比非常高的嵌入式微控制器,它具有32位处理器的处理能力,但却只有16位处理器的价格。它丰富的片上资源和强大的扩展能力为嵌入式系统的开发设计提供了很大灵活性。