用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

32位精简指令集架构的AT91M42800A的设计与应用

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 23:55:28
FFFCFFFF)留给外部扩展的设备,这部分设备可由AT91M42800A 的八个片选来选择。笔者选择的AT91M42800A开发环境为ADS1.1,由于在实际的嵌入式系统中,ADS1.1提供的缺省存储器映射不能满足要求,而用户的目标硬件有多个存储器设备,且位于不同的位置,如上例中,AT91M42800A的四个片选分别给了外扩FLASH、外扩的RAM、以及FB3050的内部寄存器片选和存储器片选,因此需要通过Scat-ter 文本文件来指定一段代码或数据在加载和运行时在存储器的不同位置,这个文本文件在命令行中由-scatter开关指定。在arm linker菜单的output 子菜单下有link type一项。link type 选项中,只要选择 scatter,并指定scatter.scf 文件的存储位置就可以了。在下面的例子中,FLASH中的代码和数据存储在0x04000000起始的、长度为32kB的地址空间中。

由于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 操作模式设置

MODE0MODE1操  作  模  式
00通用模式(时钟由片上振荡电路产生)
01边界扫描模式
10通用模式(时钟由外时钟信号通过XIN引脚)
11保留

7 结束语

AT91M42800A是一款处理能力非常强、性能价格比非常高的嵌入式微控制器,它具有32位处理器的处理能力,但却只有16位处理器的价格。它丰富的片上资源和强大的扩展能力为嵌入式系统的开发设计提供了很大灵活性。



上一页  [1] [2] 

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:19,406.25000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号