📄 init_065l_ezlab.asm
字号:
/*** INIT_065L_EZLAB.ASM ****************************************************
* *
* ADSP-21065L EZ-LAB Initialization and Main Program Shell *
* Developed using the ADSP-21065L EZ-LAB Evaluation Platform *
* *
* *
* John Tomarakos *
* ADI DSP Applications Group *
* Revision 2.0 *
* 4/28/99 *
* *
*********************************************************************************/
/* ADSP-21060 System Register bit definitions */
#include "def21065l.h"
#include "new65Ldefs.h"
.GLOBAL _main;
.GLOBAL Init_DSP;
.EXTERN Init_65L_SDRAM_Controller;
.EXTERN Blink_LEDs_Test;
.EXTERN Program_SPORT1_Registers;
.EXTERN Program_DMA_Controller;
.EXTERN AD1819_Codec_Initialization;
/*---------------------------------------------------------------------------*/
.SEGMENT/dm dm_data;
.endseg;
/*---------------------------------------------------------------------------*/
.segment /pm pm_code;
_main:
call Init_65L_SDRAM_Controller; /* Initialize External Memory */
call Program_SPORT1_Registers; /* Initialize SPORT1 for codec communications */
call Program_DMA_Controller; /* Start Serial Port 1 tx and rx DMA Transfers */
call AD1819_Codec_Initialization; /* Initialize & program AD1819 */
bit set imask SPT1I; /* start audio processing, re-enable SPORT1 tx int */
call Blink_LEDs_Test; /* Are We Alive? */
wait_forever:
call wait_flag1;
bit tgl ustat1 0x3F; /* toggle flag 4-9 LEDs */
dm(IOSTAT)=ustat1;
jump wait_forever;
/*----------------------------------------------------------------------------------------------*
* *
* Subroutines *
* *
*----------------------------------------------------------------------------------------------*/
wait_flag1:
/* wait for flag 1 button press and release */
if flag1_in jump wait_flag1; /* wait for button press */
release:
if not flag1_in jump release; /* wait for button release */
rts;
/*--------------------------------------------------------------------------------------*/
/* Note: This routine is first called at the Reset Vector in the Interrupt Vector Table */
/*--------------------------------------------------------------------------------------*/
Init_DSP:
/* code to blink flag 4 */
ustat1=0x3F; /* flags 4 thru 9 are outputs for LEDs */
dm(IOCTL)=ustat1;
bit set ustat1 0x3F; /* toggle flag 4-9 LEDs */
dm(IOSTAT)=ustat1; /* turn on all LEDs */
bit clr mode2 FLG2O | FLG1O | FLG0O; /* flag 3, 2 & 0 inputs */
bit set mode2 IRQ1E | IRQ2E; /* irqx edge sensitive */
bit clr mode2 IRQ0E; /* keep irq1 to level sensitive for UART */
IRPTL = 0x00000000; /* clear pending interrupts */
bit set mode1 IRPTEN | NESTM; /* enable global interrupts & nesting */
bit set imask IRQ0I | IRQ1I | IRQ2I; /* irq1 and irq2 enabled, keep irq0 enabled for UART */
bit set mode1 ALUSAT; /* enable ALU saturation mode */
L0 = 0;
L1 = 0;
L2 = 0;
L3 = 0;
L4 = 0;
L5 = 0;
L6 = 0;
L7 = 0;
L8 = 0;
L9 = 0;
L10 = 0;
L11 = 0;
L12 = 0;
L13 = 0;
L14 = 0;
L15 = 0;
rts;
.endseg;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -