保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

DSP+FLASH引导装载系统的设计与实现


由图2可知,当MP=1和OVLY=1时,FLASH地址0x5555L和0x2AAAL在DSP中位于外部空间之外,是不可见的。这样DSP执行上述语句时,根本没有对FLASH进行相应的操作,从而导致即使FLASH地址myaddress是DSP可见的,也无法实现数据写入的功能。

仔细分析FLASH的命令字序可知,前三句命令字序列中真正起作用的地址位是A0~A14,而高地址位A15~A17可以是任意值。于是考虑加一个偏移量0x8000,使得重映射后的FLASH地址在DSP中是可见的。修改

后的代码如下所示:

#define OFFSET 0x8000

Flash Write ((0x5555L+OFFSET),0x00AA);//1st cycle

Flash Write((0x2AAAL+OFFSET),0x0055);//2 nd cycle

Flash Write((0x5555L+OFFSET),0x00A0);//Program command

Flash Write((myaddress,mydata);//put mydata into myaddress

这样,在DSP中就可以对外部FLASH进行写入操作了,前提是FLASH地址myaddress在DSP中可见。擦除和读操作也要对照图2作类似的地址重映射,不一一累述。

2.3 擦除和读写过程描述

在DSP将数据写入FLASH之前,先要删除数据所在块,然后才能重新写入。擦除和写操作之前都要执行相应的命令字序列,而读操作则可以直接进行。而且要写入的数据部分应为引导程序段以及用户代码是经过编译、连接后的目标代码,且为FLASH可识别的HEX格式。

3 引导装载模型设计

3.1 引导装载原理

加电前,DSP设置为微处理器模式(MP=1)。加电后,DSP首先执行0xFF80处的中断向量表起始处的跳转命令,转向0xF800处的引导程序段并实现代码移植功能。完毕后,再次跳转到移植后的用户程序段的起始地址并执行之。

3.2 逻辑功能分块

引导装载系统包括引导程序段、用户程序段、中断向量表和连接命令文件四部分。引导程序段负责将用户程序段和中断向量表装载到目标地址,用户程序段是实现用户系统功能的核心代码,中断向量表包括加电后的跳转处理和中断服务程序的入口,连接命令文件则是分配各个程序段在DSP地址空间中的位置。

3.3 具体代码实现

引导程序段(load.asm)如下:

.def load_start

.sect "load_prg"

load_start:

ssbx intm ;关中断

rsbx sxm ;符号扩展模式设置为0

ld #0,dp ;定义数据页指针为0

nop

nop

nop

ld #0ff80h,a ;移植中断向量表,0xff80为中断向量表的旧起始地址

stm #VECT_NEW,ar1 ;VECT_NEW表示中断向量表的新起始地址

《DSP+FLASH引导装载系统的设计与实现(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/151415.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。