📄 main.asm
字号:
/****************************************************************************
ANALOG DEVICES
EUROPEAN DSP APPLICATIONS
FLASH Main Module calling API server for memory mapped AMD FLASH Devices
History:
1.0.1.0 15-JUN-99 HS
****************************************************************************/
#include <def21060.h>
#include "flash.h"
/*_______________interrupt vector table______________*/
.segment/pm seg_rth;
nop; nop; nop; nop; /* reserved */
nop; jump start; rti; rti; /* RSTI reset vector */
nop; nop; nop; nop; /* reserved */
rti; rti; rti; rti; /* SOVFI stack overflow */
rti; rti; rti; rti; /* TMZHI high timer */
rti; rti; rti; rti; /* VIRPTI vector interrupt */
rti; rti; rti; rti; /* IRQ2I irq2 vector */
rti; rti; rti; rti; /* IRQ1I irq1 vector */
rti; rti; rti; rti; /* IRQ0I irq0 vector */
nop; nop; nop; nop;
rti; rti; rti; rti; /* SPR0I DMA0 SP0_RX */
rti; rti; rti; rti; /* SPR1I DMA1 SP1_RX */
rti; rti; rti; rti; /* SPT0I DMA2 SP0_TX */
rti; rti; rti; rti; /* SPT1I DMA3 SP1_TX */
rti; rti; rti; rti; /* LP2I DMA4 link buffer 2 */
rti; rti; rti; rti; /* LP3I DMA5 link buffer 3 */
rti; rti; rti; rti; /* EP0I DMA6 ext.port buf 0 */
rti; rti; rti; rti; /* EP1I DMA7 ext.port buf 1 */
rti; rti; rti; rti; /* EP2I DMA8 ext.port buf 2 */
rti; rti; rti; rti; /* EP3I DMA9 ext.port buf 3 */
rti; rti; rti; rti; /* LSRQ link port service req */
rti; rti; rti; rti; /* CB7I circ buffer 7 overflow */
rti; rti; rti; rti; /* CB15I circ buffer 15 overflow */
rti; rti; rti; rti; /* TMZLI low timer */
rti; rti; rti; rti; /* FIXI fixed overflow */
rti; rti; rti; rti; /* FLTOI floating overflow */
rti; rti; rti; rti; /* FLTUI floating underflow */
rti; rti; rti; rti; /* FLTII floating invalid exception */
rti; rti; rti; rti; /* SFT0I software irq 0 */
rti; rti; rti; rti; /* SFT1I software irq 1 */
rti; rti; rti; rti; /* SFT2I software irq 2 */
rti; rti; rti; rti; /* SFT3I software irq 3 */
.endseg;
/*__________________Main Program__________________ */
.segment/pm seg_pmco;
start: irptl = 0; /* clear any pending interrupts */
nop;
bit set mode2 FLG2O | FLG1O | FLG0O | FLG3O;
bit clr astat FLG3 | FLG2 | FLG1 | FLG0;
r1 = 0xb000;
r0 = dm(SYSCON);
r0 = r0 OR r1;
dm(SYSCON) = r0;
call flash_setup; /* test case #1 setup */
nop;
nop;
call flash_ident;
nop;
nop;
r0 = 0x2;
dm(address) = r0;
call sect_protect;
nop;
nop;
restart:
r0 = 0x04; /* write to programmed cell */
r1 = 0x95;
dm(address) = r0;
dm(d_byte) = r1;
call prog_byte;
r0 = dm(error);
nop;
nop;
r0 = 0x0; /* erase sector 0 */
dm(address) = r0;
call sect_erase;
nop;
nop;
r0 = 0x0; /* write first 256 location */
dm(address) = r0;
dm(d_byte) = r0;
lcntr = 0x100, do prog_loop until lce;
call prog_byte;
r0 = r0 + 1;
dm(address) = r0;
prog_loop: dm(d_byte) = r0;
jump restart; /* reperform test */
.ENDSEG;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -