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

📄 platform.h

📁 车载电子影音系统dvd播放系统原程序代码
💻 H
字号:
// This header file is used for system define
// Also define some capability for different system
#ifndef _PLATFORM_H
#define _PLATFORM_H
// add a system define here
// choose only 1 system from below
// [Application Platform]
#define SYSTEM_8051     // Run under 8051 system: WINDVD/ Test/ Play/ Simple
//#define EMULATOR_DOS  // Run under DOS prompt: WINDVD
//#define EMULATOR_WINDOWS  // Run under Windows environment: WINDVD
//#define TEST_DOS      // Run under DOS prompt, Test program(Test IC function)
//#define PLAY_DOS      // Run under DOS prompt, Play program(use initial file)
//#define SIMPLE_DOS    // Run under DOS prompt, Simple play program

// Chuan0.83a, Define it to support EPP1.9 instead of PCI Bridge
#if defined(EMULATOR_DOS) || defined(TEST_DOS) || defined(PLAY_DOS) || defined(SIMPLE_DOS)
#define IO_EPP
#endif

// OS is Win2000. WIN2000 will be enabled within makefile.
// When enabled, will use the PCI library from 2000(through WDM driver).
// Else will use direct I/O PCI library(D300 build)
// Don't open the define WIN2000 here
//#define   WIN2000

#ifdef  WIN2000
// through WDM driver
#define IO_PCI_WDM
#endif

// VC 32bit compiler will auto add the define WIN32.
// When enabled, use 32 bits APIs for Timer/ RS232
// Don't open the define WIN32
//#define   WIN32

// add a OS type define here
#define OS_NATIVE       1       // such as 8051
#define OS_DOS          2
#define OS_WINDOWS      3

// add CPU type define here
#define CPU_8051        1
// To be removed @2.80
#define CPU_PARISC      2
#define CPU_X86         3

// add I/O type
#define IO_8051         1   // 8051 bus
#define IO_PCI          2   // PCI bus

// [Selected by System Configuration]
// !!! can't open the define directly !!!!
/// define it, means the CPU is little endian
/// else, default is big endian
// #define USE_LITTLE_ENDIAN

/// define it, means don't support H/W interrupt.(INT1, IR)
/// else, default support H/W interrupt processed by ISR
// #define NOT_SUPPORT_HWINT

/// define it, will check if the down load ucode are correct.
/// else, default don't check for saving time.
// #define CHECK_UCODE_LOAD

/// define it, means can use printf to print some message.
/// else, default don't printf the message.
// #define SUPPORT_PRINTF

/// define it, means will use standard C library
/// ekse, default don't support it.
// #define USE_STD_C_LIB

/// define it, means the application is under Windows.
/// else, default is DOS prompt or 8051 application.
// #define APPLICATION_WINDOWS

/// define it, means support file I/O
/// else, default don't support file I/O
// #define SUPPORT_FILE_IO

/// define it, will read CDROM data from disc directly.
/// else, default read CDROM data from DRAM(Will do CDROM decode)
/// for example, EMULATOR_XX _+ INPUT_PATH_HOSTIF case.
// #define DUMP_CDROM_DATA_FROM_DISC

// must add a block for each system description
// include OS, CPU type, system capability
/// [System Configuration]
#ifdef  SYSTEM_8051
#define OS      OS_NATIVE
#define CPU     CPU_8051
#define IO      IO_8051
#endif

#ifdef  EMULATOR_DOS
#define OS      OS_DOS
#define CPU     CPU_X86
#define USE_STD_C_LIB
#define NOT_SUPPORT_HWINT
#define CHECK_UCODE_LOAD
#define NO_PANEL
#define SUPPORT_PRINTF
#define SUPPORT_FILE_IO
#define IO  IO_PCI
#endif

#ifdef  EMULATOR_WINDOWS
#define OS      OS_WINDOWS
#define CPU     CPU_X86
#define APPLICATION_WINDOWS
#define NOT_SUPPORT_HWINT
#define NOT_SUPPORT_TIMER
#define CHECK_UCODE_LOAD
#define NO_PANEL
#define IO  IO_PCI
#endif

#ifdef  TEST_DOS
#define OS      OS_DOS
#define CPU     CPU_X86
#define USE_STD_C_LIB
#define NOT_SUPPORT_HWINT
#define NOT_SUPPORT_TIMER
#define CHECK_UCODE_LOAD
#define NO_PANEL
#define SUPPORT_PRINTF
#define SUPPORT_FILE_IO
#define IO  IO_PCI
#endif

#ifdef  PLAY_DOS
#define OS      OS_DOS
#define CPU     CPU_X86
#define USE_STD_C_LIB
#define NOT_SUPPORT_HWINT
#define CHECK_UCODE_LOAD
#define USE_INITIAL_FILE
#define NO_PANEL
#define SUPPORT_PRINTF
#define SUPPORT_FILE_IO
#define IO  IO_PCI
#endif

#ifdef  SIMPLE_DOS
#define OS      OS_DOS
#define CPU     CPU_X86
#define USE_STD_C_LIB
#define NOT_SUPPORT_HWINT
#define CHECK_UCODE_LOAD
#define NO_PANEL
#define SUPPORT_PRINTF
#define SUPPORT_FILE_IO
#define IO  IO_PCI
#endif

// adding header file here
#include    "comdef.h"

#ifdef  USE_STD_C_LIB
#include    <stdio.h>
#include    <stdlib.h>
#include    <conio.h>
#include    <malloc.h>
#endif


#if CPU == CPU_X86
#define USE_LITTLE_ENDIAN
#endif

#if (CPU != CPU_8051)
#define NOP
// only 8051 has these define
extern      BYTE    EA, EX0, EX1;
#define data
#define xdata
#define code
#define pragma
#define NOAREGS
#define DISABLE
#define OPTIMIZE(a, b)
#define bit BYTE
#else
#define NOP         _nop_ ();
#endif

#if ( IO == IO_PCI)
// Chuan0.83a, Remapping PCI I/O function
// This part should be after C's standard header files, ex. stdio.h, conio.h, ...
// Otherwise, it will remapping declarations of those functions, _inpdw, _inp, _outpdw, and _outp, and caused errors reported.
#ifdef IO_EPP ////////////////////////// 
#include "./Servo/EPP.h"
#define _inpdw          EPP_ReadDWORD
#define _inpd           EPP_ReadDWORD
#define _inp            EPP_ReadByte
#define _outpdw         EPP_WriteDWORD
#define _outpd          EPP_WriteDWORD
#define _outp           EPP_WriteByte

#else  // else of #ifdef IO_EPP ////////

#ifdef  IO_PCI_WDM
#include "PCIBridge.h"
// Remapping PCI I/O function
// This part should be after C's standard header files, ex. stdio.h, conio.h, ...
// Otherwise, it will remapping declarations of those functions, _inpdw, _inp, _outpdw, and _outp, and caused errors reported.
#define _inpdw          PCI_ReadDWORD
#define _inpd           PCI_ReadDWORD
#define _inp            PCI_ReadByte
#define _outpdw         PCI_WriteDWORD
#define _outpd          PCI_WriteDWORD
#define _outp           PCI_WriteByte
#else
#include    "pci.h"
#endif

#endif  // End of #ifdef IO_EPP /////////
#endif  // End  


// Brian.276p, support _printf
#ifdef SUPPORT_PRINTF
#define PRINTF printf

#endif

extern void _printf(char *fmt, ...);
// Micky2.80p, move to winav.h when SERIAL_DEBUG is defined.
/*
// define this to let emulator also use _printf to output data
#define printf _printf
*/

//brian0.85-3rd
// DTS-GXA workaround
#define ACK_FROM_OTHERS


#endif  //_PLATFORM_H

⌨️ 快捷键说明

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