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

📄 w99av.h

📁 车载电子影音系统dvd播放系统原程序代码
💻 H
📖 第 1 页 / 共 5 页
字号:
#define     W99AV_ADDR_ABUFF_LPCM   0x03F70357L             // 40K DW

// For CDDA buffer size
#define     W99AV_ADDR_VBUFF_PCM    W99AV_ADDR_VBUFF        // 120.5K DW
#define     W99AV_ADDR_ABUFF_PCM    W99AV_ADDR_ABUFF_LPCM   // 40K DW

// LJY1.10, for CDG
#define     W99AV_ADDR_VBUFF_CDG   0x00800050 //x00710050L  // 18K DW, buffer too small will caue fill logo data failed??? (IFIFO overflow)
#define     W99AV_ADDR_ABUFF_CDG   W99AV_ADDR_ABUFF_MP3     // 56.5K DW
//LJY1.26, It needs to set YUV buffer start address for new RISC code(20040521). It needs 158KDW for CDG YUV/RGB buffer.
#define     W99AV_ADDR_CDG_YUV_START	0x545 // YUV start >> 8

// For CDROM-AC3 used.
#define     W99AV_ADDR_ABUFF_AC3    W99AV_ADDR_ABUFF        // 8K DW

// for NV buffer start address
// Micky0.83, from 20030514 risc codes, the NV addr will be decided by ucode
#define W99AV_ADDR_NVBUFF           0x9E00L
// Micky0.83b, use 13.25K for SP buffer.(why EPP can't use 13.5K??)
#define W99AV_ADDR_SPBUFF           0x009D0068L     // Chuan2.80p, end>>8, start>>8
#define W99AV_ADDR_RTIBUFF          0x32A00L     // Chuan2.80p
#define W99AV_ADDR_NV_RTI_BUFF      (MAKELONG((W99AV_ADDR_RTIBUFF>>8),(W99AV_ADDR_NVBUFF>>8)))

// LLY.276p-4, define PCM buffer starting address
//#define W99AV_ADDR_PCMBUFF          0x3FE                   // 8K DW 
//#define W99AV_ADDR_PCMBUFF          0x2E3                   // 8K DW  
// Brian1.22,  re-arrange PCM buffer address to provide fixed position for F/W user data
#define W99AV_ADDR_PCMBUFF          0x30E                   // 8K DW  
#define W99AV_ADDR_PCMBUFF2         0x32E                   // 10K DW, PCM Buffer 2 for Other Mode
//#define W99AV_ADDR_PCMBUFF_MP3      0x70                    // 12K DW, (12K for WMA case, 6K for MP3 case)
// Brian1.22, re-aarange to add another F/W user data (2) for FM
#define W99AV_ADDR_PCMBUFF_MP3      0x318                    // 12K DW, (12K for WMA case, 6K for MP3 case)

#define W99AV_ADDR_PCMBUFF_JPEG     W99AV_ADDR_PCMBUFF_MP3     // JPEG case

// Micky0.86, the write pixel start must be the same bank w/ display buffer.
//#define W99AV_DRAM_ADDR_WPIXEL_START            0x172300L // 512 DW

// Brian1.21
// For BE version, fix digest issue ==> Write Pixel command can only work for Digest mode with this arrangement.
#define W99AV_DRAM_ADDR_WPIXEL_START            0x9900L // 512 DW, after 


//#define W99AV_DRAM_ADDR_RESERVE_START           0x172500L // 25K DW, F/W user data
// Brian1.22, find a fixed position for F/W user data
#define W99AV_DRAM_ADDR_RESERVE_START           0x2CE00L // 16K DW, F/W user data

//#define W99AV_DRAM_ADDR_RESERVE_END             0x1063FFL  // ** TCH1.61a;   Size= 1A00h= 6656. 0x3C00 is KC Buffer

//#define W99AV_DRAM_ADDR_RESERVE_START_FM        0x32300L     // 25K DW, F/W user data, for File Manager case
//#define W99AV_DRAM_ADDR_RESERVE_START_FM        0x2E300L     // 25K DW, F/W user data, for File Manager case
// Brian1.22, find a fixed position for F/W user data
#define W99AV_DRAM_ADDR_RESERVE_START_FM        W99AV_DRAM_ADDR_RESERVE_START     // 16K DW, F/W user data, for File Manager case

// Brian1.22, add a new F/W user data 2 for FM
#define W99AV_DRAM_ADDR_RESERVE_START_FM_2      0x7000  // 12K DW, for FM mode use only (this area will use the SPU and Navigation area of DVD mode)

// LLY0.85, define A/V buffer size setting for CDROM decoding mode
// Notice: The ending address of Audio buffer 1 & 2 are relative to
//         "reserved User Data DRAM space"
#define W99AV_ADDR_VBUFF_CDROM             W99AV_ADDR_VBUFF
// Reserve size can store 150 sector data :
// (0x60000-0x4C400) DWORD * 4 = 0x4F000 BYTE
// 0x4F000 / 2352 = 137.57 sectors
// So, must take care the max sector NO within once CDROM decoding
//#define W99AV_ADDR_ABUFF_CDROM             0x060004C4L
#define W99AV_ADDR_ABUFF_CDROM             0x059B0464L      // 135.4 Sectors

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

// LLY.046, define the base address for storing CDROM decoding data
#ifdef  DUMP_CDROM_DATA_TO_SP_BUFFER
// Chuan2.80p, Now W99AV_ADDR_SPBUFF contains start addr and end addr
#define ECCBASE_BYPASS      ((W99AV_ADDR_SPBUFF << 8) & 0x0000FFFF)    // SP buffer
#else   // #ifdef DUMP_CDROM_DATA_TO_SP_BUFFER
#define ECCBASE_BYPASS      W99AV_ADDR_NVBUFF      // NV buffer
#endif  // #ifdef DUMP_CDROM_DATA_TO_SP_BUFFER

// LLY0.85, move ECCBASE to here
// Reserve size for ECC Done data = 0x38700 ~ 0x4C400
// 0x4C400 - 0x38700 = 0x13D00 (DWORD) = 0x4F400 (BYTE)
// 0x4F400 / 2352 = 138.01 sectors
//#define ECCBASE_REALCDROM           0x38700L // LLY0.85, ((W99AV_ADDR_SPBUFF << 8) & 0x0000FFFF)
#define ECCBASE_REALCDROM           0x32C00L  // 135.8 Sectors


//#define W99AV_ADDR_UCODE_BACKUP         0x2E300L       // 16K DW
#define W99AV_ADDR_UCODE_BACKUP         0x59C00L       // 25K DW
//Kevin1.23, modify
//#define W99AV_ADDR_UCODE_END_BACKUP     0x5FF00L    // Chuan1.21, give the end address.
#define W99AV_ADDR_UCODE_END_BACKUP     0x60000L
//LJY1.24-3, for DSP ucode backup in digest and CDG mode
#define W99AV_ADDR_UCODE_BACKUP_BUFFER  0x172500

//#else // #ifdef USE_32M_SDRAM
//#ifdef SUPPORT_ANTISHOCK   
      
//-------------------------------------------------------//
     

#elif (SDRAM_CONFIGURATION == SDRAM_16M) //Kevin2.27, 16M

// FD solution

#define     IRAM_ADDR       0x0300      // the start address of iram.inc
#define     IRAM_END_ADDR   0x3000      // the end address of iram.inc //Kevin1.01, add
#define     ERAM_ADDR       0x3000      // dsp eram's dram address
// Brian2.30
#define     ERAM_END_ADDR   0x4000 //Brain2.35a //0x3C00  // 16M, ERAM is 3K 

//Kevin2.35a, AC3 uses audio buffer 2 as swap buffer
// Brian2.30b
//#define W99AV_ADDR_SBUFF_DTS_AC3    0x7B001L  // 6K, at continuous odd address
#define W99AV_ADDR_SBUFF_DTS        0x7B001L  // 6K, at continuous odd address
#define W99AV_ADDR_SBUFF_MP3_WMA    0x6400 //0x53300L  // 8K
#define     W99AV_ADDR_SIDE_INFO_START    0x58300L  // MP3 side information buffer start
#define     W99AV_ADDR_SIDE_INFO_LENGTH   0x3C00L   // 15K, MP3 side information buffer size


//**********************************************************************************
// For normal A/V buffer size
#define     W99AV_ADDR_VBUFF        0x019A00B3L             //57.75K DW // 0x01A600B3L //0x10F41001L             //60.75K DW
// Brian2.33
#define     W99AV_ADDR_VBUFF_NTSC   0x01EA00B3L // 77.75K
#define     W99AV_ADDR_FRAMEBUFF_NTSC   0x1EA   //  frame buffer address for NTSC large video bitstream buffer case

#define     W99AV_ADDR_ABUFF        0x00A90089L             //8K DW
#define     W99AV_ADDR_ABUFF2       0x00B200AAL             //2K DW

// for MP3 A/V buffer size
#define     W99AV_ADDR_VBUFF_MP3    0x01570127L //0x01DE01AEL             // 12K DW

#define     W99AV_ADDR_ABUFF_MP3    0x00E400A0L             // 17K DW     
#define     W99AV_ADDR_ABUFF2_MP3   0x012600E5L             // 16.25K DW  
// Brian2.33, ***** must adjust side inform address if full OSD region address is change


// For MP3 and JPG, and share frame buffer 2
#define     W99AV_ADDR_VBUFF_JPEG   W99AV_ADDR_VBUFF_MP3    // 12K DW
#define     W99AV_ADDR_ABUFF_JPEG   W99AV_ADDR_ABUFF_MP3    // 17K DW

// W99AV_ADDR_VBUFF for DVD-AC3/-DTS/-LPCM should be the same
// For LPCM A/V buffer size
#define     W99AV_ADDR_VBUFF_LPCM   W99AV_ADDR_VBUFF //0x019A00DAL             // 48K DW //0x01A6012AL             // 31K DW
#define     W99AV_ADDR_ABUFF_LPCM   0x00B20089L             // 10.25K DW

// For CDDA buffer size
#define     W99AV_ADDR_VBUFF_PCM    0x019A012A              // 28K DW       // Brian2.32
#define     W99AV_ADDR_ABUFF_PCM    0x01290089L             // 40K DW       // Brian2.32

// LJY2.30a, LJY1.10, for CDG
#define     W99AV_ADDR_VBUFF_CDG   0x00940064               // 12K DW, buffer too small will caue fill logo data failed??? (IFIFO overflow)
#define     W99AV_ADDR_ABUFF_CDG   W99AV_ADDR_ABUFF_MP3     // 17K DW
//LJY1.26, It needs to set YUV buffer start address for new RISC code(20040521). It needs 158KDW for CDG YUV/RGB buffer.
#define     W99AV_ADDR_CDG_YUV_START	0x157               // YUV start >> 8    //Brian2.32 

// For CDROM-AC3 used.
#define     W99AV_ADDR_ABUFF_AC3    0x00C000A0L             // 8K DW       //W99AV_ADDR_ABUFF_MP3    // 17K DW  ??

// for NV buffer start address
// Micky0.83, from 20030514 risc codes, the NV addr will be decided by ucode
#define W99AV_ADDR_NVBUFF           0x4000L //Brain2.35a //0x3C00L  
// Micky0.83b, use 13.25K for SP buffer.(why EPP can't use 13.5K??)
#define W99AV_ADDR_SPBUFF           0x00800070L             // 4K DW     //0x010200b3L      // 13.25K DW
#define W99AV_ADDR_RTIBUFF          0x32A00L                // ??? not used
#define W99AV_ADDR_NV_RTI_BUFF      (MAKELONG((W99AV_ADDR_RTIBUFF>>8),(W99AV_ADDR_NVBUFF>>8)))

// Brian1.22,  re-arrange PCM buffer address to provide fixed position for F/W user data
#define W99AV_ADDR_PCMBUFF          0x7E0                   // 8K DW  
#define W99AV_ADDR_PCMBUFF2         0x80                    // DSP use 2.25K DW
// Brian1.22, re-aarange to add another F/W user data (2) for FM
#define W99AV_ADDR_PCMBUFF_MP3      0x7E0                   // 8K DW

#define W99AV_ADDR_PCMBUFF_JPEG     W99AV_ADDR_PCMBUFF_MP3  // JPEG case

// For BE version, fix digest issue ==> Write Pixel command can only work for Digest mode with this arrangement.
#define W99AV_DRAM_ADDR_WPIXEL_START            0x3C00L

#define W99AV_DRAM_ADDR_RESERVE_START           0x6400L     // 3K DW, DVD F/W user data

#define W99AV_DRAM_ADDR_RESERVE_START_FM        0x15700L //0x1DE00L    // 16.5K DW, F/W user data, for File Manager case

// Brian2.30b
#define W99AV_ADDR_VBUFF_CDROM             0x01A6017EL // 10K DW, W99AV_ADDR_VBUFF //??? not used
// Reserve size can store 28 sector data :
// (0xB100-0x7000) DWORD * 4 = 66560 BYTE
// 66560 / 2352 = 28 sectors
// So, must take care the max sector NO within once CDROM decoding
#define W99AV_ADDR_ABUFF_CDROM            0x00B10070L // 16.25K DW ==> 28 sectors

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

#ifdef  DUMP_CDROM_DATA_TO_SP_BUFFER
// Chuan2.80p, Now W99AV_ADDR_SPBUFF contains start addr and end addr
#define ECCBASE_BYPASS      ((W99AV_ADDR_SPBUFF & 0x0000FFFF) << 8)    // SP buffer
#else   // #ifdef DUMP_CDROM_DATA_TO_SP_BUFFER
#define ECCBASE_BYPASS      W99AV_ADDR_NVBUFF      // NV buffer
#endif  // #ifdef DUMP_CDROM_DATA_TO_SP_BUFFER

#define ECCBASE_REALCDROM           0xB100L // 0xB100 ~ 0xF200 ==> 16.25K DW ==> 28 sectors

// Brian2.30b, 16M FD use runtime unzip, no DSP back area
/*
#ifdef DSP_BACKUP_TO_32M 

#define W99AV_ADDR_UCODE_BACKUP         0x67C00L  // barrow frame buffer as temp unzip buffer //0x16A00L       // 25K DW
#define W99AV_ADDR_UCODE_END_BACKUP     0x6E000L // 0x1CE00L

#define W99AV_ADDR_UCODE_BACKUP_32M         0x110000L // 0x16E00L //0x16A00L       // 25K DW
#define W99AV_ADDR_UCODE_END_BACKUP_32M     0x116400L //0x1D200L //0x1CE00L

#else

#define W99AV_ADDR_UCODE_BACKUP         0x16A00L // 0x16E00L //0x16A00L       // 25K DW
#define W99AV_ADDR_UCODE_END_BACKUP     0x1CE00L //0x1D200L //0x1CE00L

#endif
*/

//#define W99AV_ADDR_UCODE_BACKUP         0x16A00L // 0x16E00L //0x16A00L       // 25K DW
//#define W99AV_ADDR_UCODE_END_BACKUP     0x1CE00L //0x1D200L //0x1CE00L


#define W99AV_ADDR_UCODE_BACKUP_BUFFER  0x172500        //CoCo2.27, Don't care the address in 16M
                      
//#define W99AV_ADDR_MPEG_FRAME_FOR_OS_T  0x40700L //OSD use frame buffer. //0x1A600+0x26100(LOGO)
// Brian2.33, frame buffer will be lower for 20K when NTSC bitstream, so we just fix it at a safe place for all cases
#define W99AV_ADDR_MPEG_FRAME_FOR_OS_T  0x45700L //OSD use frame buffer. //0x1A600+0x26100(LOGO)+20K DW

#define W99AV_ADDR_MPEG_FRAME_FOR_OS_B  (W99AV_ADDR_MPEG_FRAME_FOR_OS_T + 0x9600) //OSD use frame buffer. 

// Brian2.37
#ifndef SUPPORT_JPEG_3_FRAMES
#define W99AV_ADDR_JPEG_FRAME_FOR_OS_T  0x36C00L //OSD use JPEG temp buffer.
#define W99AV_ADDR_JPEG_FRAME_FOR_OS_B  0x40000L //OSD use JPEG temp buffer.
#else
#define W99AV_ADDR_JPEG_FRAME_FOR_OS_T  0x5D700L //OSD use JPEG temp buffer.
#define W99AV_ADDR_JPEG_FRAME_FOR_OS_B  0x66B00L //OSD use JPEG temp buffer.
#define W99AV_ADDR_JPEG_FRAME_FOR_OS_T_DVD  0x51700L //OSD use JPEG temp buffer.
#define W99AV_ADDR_JPEG_FRAME_FOR_OS_B_DVD  0x5AB00L //OSD use JPEG temp buffer.
#endif

// Brian2.30b, for CRAM unzip temp buffer
#define W99AV_ADDR_UCODE_BACKUP         0x7E000L
#define W99AV_ADDR_UCODE_END_BACKUP     0x80000L



#endif //#if (SDRAM_CONFIGURATION == SDRAM_32M) || ( (SDRAM_CONFIGURATION == SDRAM_64M) && !defined(SUPPORT_ANTISHOCK) ) 
           

//Kevin2.31
#ifdef RUNTIME_UNZIP_DSP_UCODE                      
#define W99AV_ADDR_RUNTIME_UNZIP_DSP_UCODE ((DWORD)W99AV_ADDR_PCMBUFF<<8) 
#endif

⌨️ 快捷键说明

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