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

📄 bf533_ez-kit_flash_setup.asm

📁 This directory contains an example ADSP-BF533 subroutine that demonstrates how to create a loader
💻 ASM
字号:
/******************************************************************************/
//
// Name: 	BF533 EZ-KIT Blink LEDs 
//
/*****************************************************************************************************************

(C) Copyright 2003 - Analog Devices, Inc.  All rights reserved.

File Name:		BF533_EZ-KIT_Flash_Setup.asm

Date Modified:	3/27/03		Szy		Rev 1.0

Software:       VisualDSP++3.0

Hardware:		ADSP-BF533 EZ-KIT Board

Special Connections:  None

Purpose:		To initialize the flash
				
************************************************************************************************/


#include <defBF533.h>

.global Flash_Setup;

/**************************************************************************/

#define CFG_FLASH 0x1      // configure flash flag
#define en_async_mem 0xf   // field in asynch mem ctrl reg
#define amb0_timing 0x7bb0
#define amb1_timing 0x7bb0
#define amb2_timing 0x7bb0
#define amb3_timing 0x7bb0

#define flashA_sram 0x20240000	// base addr
#define flashA_csio 0x20270000	// base addr
#define portA_data_out 0x04	// offset
#define portB_data_out 0x05	// offset
#define portA_data_dir 0x06	// offset
#define portB_data_dir 0x07	// offset
    
/**************************************************************************/


.section L1_code;

Flash_Setup:
// set asynch mem timing registers
	p0.h = hi(EBIU_AMBCTL0);
	p0.l = lo(EBIU_AMBCTL0);
	r0.l = amb0_timing;
	r0.h = amb1_timing;
	[p0] = r0;
	ssync;
	p0.h = hi(EBIU_AMBCTL1);
	p0.l = lo(EBIU_AMBCTL1);
	r0.l = amb2_timing;
	r0.h = amb3_timing;
	[p0] = r0;
	ssync;

// set asynch mem global ctrl reg
	p0.h = hi(EBIU_AMGCTL);
	p0.l = lo(EBIU_AMGCTL);
	r0.l = w[p0];
	r1 = en_async_mem;
	r0 = r0 | r1;
	w[p0] = r0;		// enable asynch mem
	ssync;

// initialize flash A csio regs (port A and B)

    // clear data registers
	p1.h = hi(flashA_csio);
	p1.l = lo(flashA_csio) + portA_data_out;
	r0 = 0x0;
	w[p1] = r0;
	ssync;
	
    // direction control registers
	p1.h = hi(flashA_csio);
	p1.l = lo(flashA_csio) + portA_data_dir;
	r0 = 0xFFFF(Z);      // set dir=output
	w[p1] = r0;
	ssync;


	
	
Flash_Setup.END:	
RTS;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -