ARM配置及应用程序说明
1 处理器的资源分配
● 存储器
AT91FR40162内嵌一个256KB的SRAM,1024K个16位字组成的Flash存储器。SRAM通过内部32位数据总线与ARM核相连,单周期访问,Flash存储器则通过外部总线访问。
● 系统外围
EBI:外部总线控制接口,EBI可寻址64MB的空间,通过8个片选线(NCS0~NCS3独立)和24位地址线访问外设,地址线高4位与片选线(NCS4~7)复用,数据总线可配置成8/16位两种模式与外设接口。
PIO:并口控制器,PIO控制32根I/O线,多数为复用引脚,可通过编程选择为通用或专用。
AIC:先进中断控制器,实现片内外围中断及4个外部中断源中断的管理,其外部中断引脚与通用I/O复用。
● 用户外围
USART0~1:串口收发控制器,支持8个数据位的发送,可以进行异步/同步传输选择,其片外引脚与通用I/O复用。
TC:定时/计数器,可以产生定时中断和计数功能,其片外引脚与通用I/O复用。
2 存储器地址重映射后的空间分配
在CPU上电后,都会从地址0开始第一条指令代码的执行,而上电复位后0地址必须映射到NCS0片选所接的器件上,这里必须将NCS0连接到片内Flash上以加载初始化程序和应用程序。由于中断和异常的入口地址是0~20H固定不变,它们的产生都是跳转到0~20H之间相应的地址取程序执行,为了加快中断响应,必须将0~20H地址映射到片内RAM区,所以在初始化的重映射命令执行(EB1_RCR的RCB位置1)后,内部RAM就映射到地址0,所有的中断入口响应和堆栈操作都被映射到在RAM区进行。
由于重映射主要是用于Flash和片内RAM的地址空间交换,所以片内外围接

3 应用接口的存储器配置
EBI存储器:在8个EBI片选存储器(EBI_CSR0~EBI_CSR7)中设置外设访问参数。其中,32位存储器中包括数据总线宽度8(16)设置,等待状态数目1~7个周期设置,等待使能(不是使能)设置,片选使能(不使能)设置。这里将FPGA作为外设,使能NCS3(也可根据实际选择其他空闲片选线),选择总线宽度16,使能等待周期并设周期为5(根据调试选择)。因默认NCS0为加载Flash片选线,而Flash为16位信号、7个等待周期,故需在EBI_CSR0中选择16位总线宽度、7个等待周期并使能NCS0。
AIC存储器:AIC存储器管理所有内外部中断,对此存储器的正确初始化赋值才会打开相应中断。设定AIC工作参数:应用串口通信模式为异步模式,串口发送的数据位字符长度为8位,通信的波特率9600B/s,串口中断优先级为6(中断优先级由低到高0~7),接收发送通道使能。
TC存储器:定时中断存储器需要设定定时长度为1s(每1s产生中断进行故障查询),定时通道使能及软件触发模式,定时中断优先级设为1。
4 应用程序说明
① 主程序
#define AT91C_BASE_EBI ((AT91PS_EBI) 0xFFE00000) //EBI基地址定义
int main()
{AT91F_EBI_OpenChipSelect (
AT91C_BASE_EBI, //地址指针
0x3, //片NCS3使能
0x30000000+0x3f39); //片选存储器初始化
Usart_init();//初始化串口
timer_init();//初始化定时器
while(1){} //循环等待
}
ARM处理器在完成各寄存器初始化后进入应用主程序,在主程序中首先调用EBI接口使能函数来设置参数:在程序中设置存储器基地址值(0xFFE00000),片选设置0x3(NCS3使能),NCS3的存储器初始化;调用USART控制器函数初始化串口:打开串口,串口收发通道初始化,设定串口通信速率;调用定时中断函数:打开定时中断,设置定时中断时间,设定触发方式为软件触发;最后进入等待循环。
1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.

