亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bspcfg.c

?? 這是單板上DPRAM的驅動程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* @(#) pSOSystem PowerPC/V2.2.2: bsps/fuc8xx/bspcfg.c V0.0 98/7/1     */
/***********************************************************************/
/*                                                                     */
/*   MODULE:  bspcfg.c                                                 */
/*   DATE:    98/7/1                                                   */
/*   AUTHOR:  Shan Zhengguang                                          */
/*   PURPOSE: BSP code which is compiled when executable image is built*/
/*                                                                     */
/*---------------------------------------------------------------------*/
/*                                                                     */
/*           Copyright 1998 - 1999, ZHONGXING TELECOM CO.,LTD.         */
/*                      ALL RIGHTS RESERVED                            */
/*                                                                     */
/*---------------------------------------------------------------------*/
/*                                                                     */
/*  NOTE: The nature of this file is to provide a way to configure     */
/*        the bsp at application compile time. Since the bsp.lib is    */
/*        independent of the application a means to provide the        */
/*        application some control over the configuration of the bsp.  */
/*        is needed. For example the lan driver needs to know if       */
/*        it will be required to do multicast addressing and if so     */
/*        how many multicast address will there be. The lan driver     */
/*        will then allocate buffers for multicast based on the number */
/*        needed.  Rather than this value being hard-coded into the    */
/*        driver to be included in bsp.lib, the user can set a         */
/*        define in the application file "sys_conf.h". The BspSetup    */
/*        function in this file will use that define to allocate       */
/*        space file the multicast buffers and set a global pointer    */
/*        to allow the lan driver access to the buffers.               */
/*                                                                     */
/***********************************************************************/
#include "sys_conf.h"
#include <machine.h>
#include "src/board.h"
#include "bspcomm.h"
#include "bspspec.h"
/* #include "bsp.h" del by maold */
#include <bspfuncs.h>
#include <configs.h>
#include <lan/lan8xx.h>

#if SC_PROFILER
#include <stdio.h>
#include <proflib.h>
struct prof_info *pip;
struct prof_stack *psp;
#endif

extern void (*ptrPsosEnter)(void), (*ptrPsosExit)(void);
extern void (*ptrPmontEnter)(void), (*ptrPmontExit)(void);
extern NODE_CT *anchor;

extern void SysMachChk(void);
extern void GenIsr(void);
extern void PsosIsr(void);
extern void PmontIsr(void);

extern void HwAbortHandler(void);

#if ((SC_PSOS != USEROM) && (SC_PSOSM != USEROM))
 
#if SC_PSOSM
     #define PSOS_SVC  pSOSm_Svc
     extern void PSOS_SVC(void);
#elif SC_PSOS
     #define PSOS_SVC  pSOS_Svc
     extern void PSOS_SVC(void);
#endif
 
#else
    extern NODE_CT *oldanchor;
#endif

#ifdef    ALIGN
#undef    ALIGN
#define ALIGN(addr, boundary) (((ULONG)(addr)+(ULONG)(boundary)-1) \
                               & ~((ULONG)(boundary)-1))
#endif
 
#if ((BSP_LAN1_FLAGS) & (IFF_MULTICAST))
    struct MCTable_struct lan_mcast; /* Multicast address table */
#endif
 
#if (SC_BOOT_ROM == YES)
ULONG NrTxBds  = BD_SCC_TX_BDS_ROM;     /* Number of transmit BDs */
ULONG NrTxHdrs = BD_SCC_TXHDRS_ROM;     /* Number of transmit headers */
TX_HDR TxHeaders[BD_SCC_TXHDRS_ROM];    /* The actual headers */
#else
ULONG NrTxBds  = BD_SCC_TX_BDS;         /* Number of transmit BDs */
ULONG NrTxHdrs = BD_SCC_TXHDRS;        /* Number of transmit headers */
TX_HDR TxHeaders[BD_SCC_TXHDRS];     /* The actual headers */
#endif

#ifdef USE_UNCACHE_SECTION
#pragma use_section UNCACHE TxHeaders
#endif

/******************************************************************/
/* don't use any globle variables in this function because it may */
/* be called from the start-up code before the RAM is initialized.*/
/******************************************************************/
ULONG bspGetInputClkHz(void)
{
   return BD_INPUT_CLOCK;
}

/***********************************************************************/
/* vectorSetup:                                                        */
/*                                                                     */
/*      INPUTS: var1 =                                                 */
/*                                                                     */
/*     RETURNS:                                                        */
/*     OUTPUTS:                                                        */
/*     NOTE(S): 1. Still need to set this up to handle various         */
/*                 component combinations.                             */
/*                                                                     */
/***********************************************************************/
void vectorSetup(void)
{
/* unsigned long ProcType; del by maold */
unsigned long msrORval;   /* NEED TO SET THIS!!! */
 
/*---------------------------------------------------------------------*/
/* Machine check exceptions are handled in a "daisy-chained" fashion,  */
/* where various handlers are called in order until one of them        */
/* recognizes the particular exception as one it should handle, and    */
/* handles it.  If none of the handlers handle it, pROBE is finally    */
/* given control.  Here we call a routine to initialize the handler    */
/* list, and then set the machine check exception vector to transfer   */
/* control to the handler caller.                                      */
/*---------------------------------------------------------------------*/
#if (SC_STARTUP_DIALOG==YES && SC_BOOT_ROM==YES && SC_PROBE==YES)
disableSWT();
#endif

SysHandlerInit();
SysSetVector(V_MACH_CK, SysMachChk, VT_REG, MSR_ME | MSR_FP, 0);
 
 
msrORval = 0;
#if (BSP_FPU == YES)
msrORval = MSR_FP | MSR_FE0 | MSR_FE1;
#endif
 
SysSetVector(V_INTRPT,  GenIsr, VT_STACK, msrORval, 0);
SysSetVector(V_DCRMNTR, GenIsr, VT_STACK, msrORval, 0);

SysSetVector(V_RESET, HwAbortHandler, VT_REG, 0, 0);

#if (!SC_PROBE)
        SysSetVector(V_MACH_CK,(void (*)())ExceptionHandle,VT_REG,0,0);
        SysSetVector(V_DA,(void (*)())ExceptionHandle,VT_REG,0,0);
        SysSetVector(V_IA,(void (*)())ExceptionHandle,VT_REG,0,0);
        SysSetVector(V_ALIGN,(void (*)())ExceptionHandle,VT_REG,0,0);
        SysSetVector(V_SEI821,(void (*)())ExceptionHandle,VT_REG,0,0);
        SysSetVector(V_PROGRAM,(void (*)())ExceptionHandle,VT_REG,0,0);
        SysSetVector(V_ITLB_ERR,(void (*)())ExceptionHandle,VT_REG,0,0);
        SysSetVector(V_DTLB_ERR,(void (*)())ExceptionHandle,VT_REG,0,0);
        SysSetVector(V_IA_BP821, (void (*)())ExceptionHandle,VT_REG, 0, 0);
        SysSetVector(V_DA_BP821, (void (*)())ExceptionHandle,VT_REG, 0, 0);
#endif

}

#if (SC_PROBE)
/***********************************************************************/
/* ProbeVecSetup:                                                      */
/*                                                                     */
/*      INPUTS: none                                                   */
/*                                                                     */
/*     RETURNS:                                                        */
/*     OUTPUTS:                                                        */
/***********************************************************************/
void ProbeVecSetup(unsigned long probe_start)
{
unsigned long offset;
unsigned long ProcType;
unsigned long max_offset;
 
ProcType = BspCpuType() & 0xFF;
 
if(ProcType == PPC860)
    ProcType = PPC821;
 
else if(ProcType == PPC603e || ProcType == PPC603p)
    ProcType = PPC603;
 
else if(ProcType == PPC604p || ProcType == PPC604e)
    ProcType = PPC604;
 
 
if(ProcType == PPC821)
    max_offset = 0x1f00;
else
    max_offset = 0x2f00;
 
/*---------------------------------------------------------------------*/
/* First initialize all of the vectors to pass control to pROBE+.      */
/*---------------------------------------------------------------------*/
for (offset = 0x100; offset <= max_offset; offset += 0x100) {
    if( offset == V_SYSCALL ||
        offset == V_INTRPT  ||
        offset == V_MACH_CK ||
       (offset == V_TIMERS  && ProcType == PPC403GA) ||
       (offset == V_DCRMNTR && ProcType != PPC403GA) )
         continue;
 
     SysSetVector(offset,
                 (void (*)())(probe_start + PROBE_RSRV_EXCP_OFFSET),
                  VT_REG, 0, 0);
    }

/*---------------------------------------------------------------------*/
/* Set vectors for various exceptions to transfer control to           */
/* special-purpose entries of pROBE+.                                  */
/*---------------------------------------------------------------------*/
if (ProcType != PPC403GA)
   {
   SysSetVector(V_DA, (void (*)())(probe_start + PROBE_DA_BE_OFFSET),
                VT_REG, 0, 0);
   SysSetVector(V_IA, (void (*)())(probe_start + PROBE_IA_EXCP_OFFSET),
                VT_REG, 0, 0);
   }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产欧美综合| 中文无字幕一区二区三区 | 污片在线观看一区二区| 麻豆成人av在线| 91论坛在线播放| 国产日韩欧美综合在线| 日韩电影免费在线看| 成人黄色小视频| 精品久久久久av影院| 亚洲精品成人少妇| 大胆亚洲人体视频| 日韩精品一区国产麻豆| 亚洲图片激情小说| 久久99精品久久久久婷婷| 欧美少妇性性性| 国产精品久久久久婷婷二区次| 午夜欧美在线一二页| 成人va在线观看| 久久久久久久久久久久久夜| 午夜免费欧美电影| 99久久er热在这里只有精品66| 精品久久久久久无| 极品少妇xxxx精品少妇| 日韩欧美另类在线| 日本v片在线高清不卡在线观看| 欧美色综合网站| 有码一区二区三区| 91免费看片在线观看| 国产精品久久久久久久浪潮网站 | 精品久久久久久久久久久久久久久 | 国产欧美日韩一区二区三区在线观看| 三级久久三级久久| 欧美日韩成人综合天天影院| 亚洲18色成人| 91精品国产一区二区| 日韩黄色小视频| 欧美疯狂做受xxxx富婆| 亚洲国产视频网站| 欧美日韩三级视频| 日本aⅴ免费视频一区二区三区| 欧美性大战久久久| 亚洲成av人**亚洲成av**| 欧美日韩国产乱码电影| 亚洲成av人片一区二区三区| 6080午夜不卡| 国内久久精品视频| 欧美精品一区二区三区在线 | 欧美成va人片在线观看| 狠狠狠色丁香婷婷综合久久五月| 久久中文娱乐网| 99视频有精品| 首页国产欧美日韩丝袜| 久久久久久免费| 91女神在线视频| 午夜久久久久久久久| 精品国精品国产| 91麻豆免费视频| 亚洲午夜电影网| 日韩欧美国产综合| 不卡的电影网站| 日韩精品乱码免费| 中文字幕欧美日韩一区| 欧美亚洲禁片免费| 国产乱码精品一区二区三区忘忧草| 欧美国产精品久久| 欧美色欧美亚洲另类二区| 国产伦精品一区二区三区免费| 亚洲男人的天堂在线观看| 777a∨成人精品桃花网| 粉嫩一区二区三区在线看| 中文字幕一区av| 欧美性受xxxx黑人xyx| 精品99一区二区三区| 91福利小视频| 综合网在线视频| 日韩免费一区二区| 美女视频黄免费的久久| 亚洲乱码国产乱码精品精可以看 | av电影天堂一区二区在线观看| 欧美韩国一区二区| 3d成人动漫网站| 国产精品自拍三区| 欧美在线观看你懂的| 精品一二三四区| 中文字幕乱码亚洲精品一区| 日韩欧美一区二区免费| 国产传媒日韩欧美成人| 中文字幕日韩欧美一区二区三区| 日韩一区二区三区视频在线 | 国产欧美日韩视频在线观看| 久久精品亚洲精品国产欧美kt∨| 欧美性xxxxxxxx| 毛片不卡一区二区| 日韩电影在线免费观看| 欧美韩国日本综合| 国产精品 欧美精品| 亚洲观看高清完整版在线观看| 欧美成人vr18sexvr| 九一久久久久久| 制服丝袜在线91| 色偷偷成人一区二区三区91| 午夜成人在线视频| 国产精品区一区二区三区| 欧美丰满高潮xxxx喷水动漫| 欧美无乱码久久久免费午夜一区| 激情都市一区二区| 麻豆91在线播放| 亚洲一区二区精品视频| 久久久噜噜噜久噜久久综合| 精品免费国产一区二区三区四区| 成人激情校园春色| 日本一区二区免费在线观看视频| 欧美tk丨vk视频| 欧美日产国产精品| 欧美日本韩国一区二区三区视频| 成人av网站免费观看| 久久久高清一区二区三区| 精品美女在线播放| 欧美日韩在线直播| 宅男噜噜噜66一区二区66| fc2成人免费人成在线观看播放| 亚洲欧洲成人精品av97| 亚洲人成小说网站色在线 | 成人免费小视频| 欧美一区二区大片| 欧美日韩综合在线免费观看| 欧美日韩国产高清一区二区三区 | 高清在线观看日韩| 亚洲综合清纯丝袜自拍| 亚洲一区二区在线观看视频| 国产欧美日韩激情| 欧美色网站导航| 欧美写真视频网站| 色综合久久综合网欧美综合网 | 欧美四级电影网| 97精品国产露脸对白| 国产麻豆9l精品三级站| 黄色成人免费在线| 久久国产精品99久久久久久老狼 | 欧美日韩亚洲综合在线| 日韩美女一区二区三区四区| 欧美日韩免费观看一区二区三区| bt欧美亚洲午夜电影天堂| 欧美视频一区二区三区四区| 欧美影院精品一区| 91美女片黄在线| 欧美日韩国产免费一区二区| 一本色道久久加勒比精品| 日韩成人免费电影| 麻豆精品新av中文字幕| 中文欧美字幕免费| 成人免费在线视频观看| 亚洲色图欧洲色图婷婷| 午夜私人影院久久久久| 一区二区三区日韩在线观看| 免费观看91视频大全| 国产自产v一区二区三区c| 亚洲欧美日韩在线不卡| 亚洲男人都懂的| 日韩高清不卡一区| 波波电影院一区二区三区| 91免费在线看| 国产目拍亚洲精品99久久精品| 亚洲天堂中文字幕| 精品国产三级电影在线观看| 亚洲精品久久嫩草网站秘色| 午夜不卡av免费| 色丁香久综合在线久综合在线观看| 日本高清不卡一区| 日本一区二区不卡视频| 亚洲精品久久久久久国产精华液| 亚洲一线二线三线视频| 成人国产视频在线观看| 欧美日韩在线免费视频| 18欧美亚洲精品| 免费在线观看成人| 91福利国产精品| 精品欧美一区二区在线观看| 99综合电影在线视频| 久久精品视频免费| 亚洲影视在线观看| 91一区二区在线观看| 精品国产免费人成电影在线观看四季| 亚洲精品免费在线观看| 久久精品国产久精国产| 精品1区2区3区| 亚洲欧美自拍偷拍色图| 欧美国产一区视频在线观看| 国产精品2024| 91精品婷婷国产综合久久竹菊| 亚洲一区二区三区免费视频| 国产成人av电影在线| 国产午夜精品久久久久久久 | 中文字幕乱码亚洲精品一区| 亚洲精品国产a| 成人综合婷婷国产精品久久免费| 日本精品一区二区三区四区的功能| 欧美成人高清电影在线| 亚洲一区二区三区在线| 在线观看免费视频综合|