r6=r6+1;
dm(line_num)=r6;
r7=128;
comp(r6,r7);
if lt jump prog_loop; 否,继续向该扇区写数据
sect_done: //是,等待20ms
nop;
call wait_DQ7;
ustat2=dm(IOSTAT);
bit tg1 ustat2 FLG10O;
dm(IOSTAT)=ustat2; //翻转FLAG10
r6=0;
dm(line_num)=r6;
r2=r2+1;
jump sect_ulock; //开始向新扇区写数据
prog_loop:
r2=r2+1;
jump sect_load;
done: //编程结束
nop;
call wait_DQ7;
ustat2=dm(IOSTAT);
bit tg1 ustat2 FLG8O; //翻转FLAG8
dm(IOSTAT)=ustat2;
jump done;
load_byte: //写字节子程序
i4=dm(addr);
m4=mem_offset;
r12=dm(d_byte);
dm(m4,i4)=r12;
rts;
nop
wait_DQ7: //20ms延时子程序
r0=dm(counter);
r0=r0+1;
dm(counter)=r0;
r1=0x59000;
comp(r0,r1);
if lt jump wait_DQ7;
r0=0;
dm(counter)=r0;
rts;
nop;
上面的程序是针对由ADSP-21065L和AT29LV020构成的磁悬浮数字控制系统编写的,可行性与可靠性已经在实际应用中得到验证。该程序具有良好的可移植性,秒作修改即可用于类似的在线编程系统,具有较强的实用价值。
上一篇:DSP电源系统的低功耗设计