⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.asm

📁 write flash code
💻 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 + -