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

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

?? syslib.c

?? 440bx vxworks bsp
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* sysLib.c - Samsung SBC ARM7 system-dependent routines */


/* Copyright 1984-2002 Wind River Systems, Inc. */
#include "copyright_wrs.h"

/*
modification history
--------------------
01o,29jul04,a_m  BSP定制 for 多刃劍開發板
01k,26mar02,m_h  rename glbEnetAddr to sysSngks32cMacAddr
01j,17jan02,m_h  fix cache issues and diab build warnings
01i,27sep01,m_h  base MAC address on user DIP setting, Big Endian Support
01h,23jul01,m_h  builds in UNIX
01g,17jul01,g_h  add visionWARE 2.00 support
01f,11jul01,g_h  disable cache in sysToMonitor()
01e,10jul01,g_h  add INCLUDE_LCD & INCLUDE_LED & INCLUDE_NETWORK macros
01d,09jul01,g_h  add #include "sbcCksum.c" instead of the makefile
01c,26apr01,m_h  convert tabs to spaces for readability
01b,25apr01,m_h  add comments to cache functions
01a,12apr01,m_h  created from snds100 template.
*/

/*
DESCRIPTION
This library provides board-specific routines for the WindRiver SBC ARM7
Ver 1.0 Development Board BSP for the Samsung KS32C chip.

It #includes the following chip drivers:
    nullVme.c         -     dummy VMEbus routines
    sngks32cTimer.c   -     SNGKS32CARM7 timer driver
    sngks32cIntrCtl.c -     SNGKS32CARM7 interrupt controller driver
    nullNvRam.c       -     dummy NVRAM routines

It #includes the following BSP files:
    sysSerial.c       -     serial device initialization routines
    sysEnd.c          -     END network driver support routines.

INCLUDE FILES: sysLib.h string.h intLib.h taskLib.h vxLib.h muxLib.h

SEE ALSO:
<Configuration>
<ARM Architecture Reference Manual>,
<Samsung KS32C50100 Microcontroller User's Manual>,
<Samsung KS32C5000(A)/50100 Microcontroller Application Notes>
*/

/* includes */

#include "vxWorks.h"
#include "config.h"

#include "sysLib.h"
#include "string.h"
#include "intLib.h"
#include "taskLib.h"
#include "vxLib.h"
#include "muxLib.h"
#include "cacheLib.h"
#include "memLib.h"

#include "wrSbcArm7.h"

/* imports */

IMPORT char end;                            /* end of system, created by ld */
IMPORT VOIDFUNCPTR _func_armIntStackSplit;  /* ptr to fn to split stack */


/* globals */

int    sysBus         = BUS;            /* system bus type (VME_BUS, etc) */
int    sysCpu         = CPU;            /* system cpu type */
char * sysBootLine    = BOOT_LINE_ADRS; /* address of boot line */
char * sysExcMsg      = EXC_MSG_ADRS;   /* catastrophic message area */
int    sysProcNum;                      /* processor number of this cpu */
int    sysFlags;                        /* boot flags */
char   sysBootHost [BOOT_FIELD_LEN];    /* name of host from which we booted */
char   sysBootFile [BOOT_FIELD_LEN];    /* name of file from which we booted */

CACHE_FUNCS   sngks32cCacheFuncs;
/*  : sysSngks32cMacAddr->ne2000EnetAddr */
unsigned char ne2000EnetAddr[] = ETHERNET_MAC_ADRS;

/* locals */

/*  : 21->26 */
#if S3C44B0X_INTNUMLEVELS != 26
#   error sbcIntLvlMask is wrong size for number of levels
#endif


/* defines */

    
/* externals */

IMPORT void   sngks32cIntDevInit (void);
IMPORT void   sysIntStackSplit (char *, long);

/*local defines*/
#ifndef SBCARM7_CTRL_REG_READ
#   define SBCARM7_CTRL_REG_READ(x,result) \
        ((result) = *(volatile UINT32 *)(x))
#endif    /*SBCARM7_READ*/

#ifndef SBCARM7_CTRL_REG_WRITE
#   define SBCARM7_CTRL_REG_WRITE(x,data) \
        (*((volatile UINT32 *)(x)) = (data))
#endif /*SBCARM7_WRITE*/



/* globals */


/* forward LOCAL functions declarations */


/* forward declarations */

char *    sysPhysMemTop (void);

#ifdef INCLUDE_CACHE_SUPPORT
STATUS sngks32cCacheLibInit(CACHE_MODE instMode, CACHE_MODE dataMode);
FUNCPTR sysCacheLibInit = sngks32cCacheLibInit;

void   sysDebug (char *str);
void   sngks32cCacheFlush    (void);  
void * sngks32cCacheDmaMalloc(size_t bytes);
STATUS sngks32cCacheDmaFree  (void *pBuf);
void   sngks32cCacheEnable   (void);
void   sngks32cCacheDisable  (void);
void * sngks32cPhysToVirtRtn (void *adrs);
void * sngks32cVirtToPhysRtn (void *adrs);
#endif /*INCLUDE_CACHE_SUPPORT*/

/* included source files */

#ifdef INCLUDE_FLASH
#include "flashMem.c"
#else /* INCLUDE_FLASH */
#include "mem/nullNvRam.c"
#endif  /* INCLUDE_FLASH */

#include "vme/nullVme.c"
#include "sysSerial.c"
#include "sngks32cTimer.c"
#include "sngks32cIntrCtl.c"

#ifdef INCLUDE_NETWORK
#ifdef INCLUDE_END
#include "sbcCksum.c"
#include "sysEnd.c"
#endif /* INCLUDE_END */
#endif /* INCLUDE_NETWORK */

#ifdef INCLUDE_LCD
#include "sysLcd.c"
#endif /* INCLUDE_LCD */

#ifdef INCLUDE_LED
#include "sysLed.c"
#endif /* INCLUDE_LCD */

#ifdef INCLUDE_VWARE_LAUNCH
#include "sysVware.c"
#endif /* INCLUDE_VWARE_LAUNCH */

/*  : added */
extern void excEnterUndef(void);
extern void excEnterSwi(void);
extern void excEnterPrefetchAbort(void);
extern void excEnterDataAbort(void);
extern void intEnt(void);

/******************************************************************************
*
* portInit - 針對硬板,初始化CPU各端口
* 
*/
static void portInit(void)
{
  /*  BIT   9   8   7   6   5   4   3   2   1   0 */
  /*  A24   A23 A22 A21 A20 A19 A18 A17 A16 A0  */        
  /*  0   1 1 1 1 1 1 1 1 1 */
  rPCONA = 0x3ff; 
  rPDATA = 0x3ff;
  /*  BIT 10  9   8   7   6   5   4   3   2   1   0   */
  /*  /CS5  /CS4  /CS3  /CS2  /CS1  nWBE3 nWBE2 /SRAS /SCAS SCLK  SCKE  */
  /*  EXT   NIC   USB   IDE   SMC   NC    NC    Sdram Sdram Sdram Sdram */
  /*      0,        0,   0,   0,    1,    0,       0,     1,    1,    1,   1          */
  rPDATB = 0x7ff;
  rPCONB = 0x7ff;
  /*  PC15    14    13    12    11    10    9   8 */
  /*  o   o   RXD1  TXD1  o   o   o   o */
  /*  NC    NC    Uart1 Uart1 NC    NC    NC    NC  */
  /*   11   11    11    11    11    11    01    00  */

  /*  PC7   6   5   4   3   2   1   0 */
  /*   o    o   o   o   o   o   o   o */
  /*   NC   NC    NC    NC    SMCALE  SMCCLE  SMCCE SMCRB*/
  /*   01   01    01    01    01    01    01    01  */
  rPDATC = 0x0000;  
  rPCONC = 0xFFF5FFFF;  
  rPUPC  = 0xFC00;  
  /*  PORT D GROUP(I/O OR LCD)                    */
  /*  BIT7    6   5   4   3   2   1   0 */
  /*      VF    VM    VLINE VCLK  VD3   VD2   VD1   VD0 */
  /*     01   01    01    01    01    01    01    01  */
  rPDATD= 0x55;
  rPCOND= 0xaaaa; 
  rPUPD = 0x00;
  /*  Bit 8   7   6   5   4   3   2   1   0   */
  /*    ENDLAN  LED3  LED2  LED1  LED0  BEEP  RXD0  TXD0  CLKOUT  */ 
  /*      00    01    01    01    01    01    10    10    00    */
  rPDATE  = 0x157;
  rPCONE  = 0x25569; 
  rPUPE = 0xff;
  /*  Bit8    7   6   5    4    3   2   1   0   */   
  /*  IISCLK  IISDI IISDO IISLRCK Input Input Input IICSDA  IICSCL  */
  /*  100   100   100   100   00    01    01    10    10    */
  rPDATF = 0x0;
  rPCONF = 0x1B6D5A;
  rPUPF  = 0x1E3;
  /*  BIT7    6   5   4   3   2   1   0  */
  /*  INT7    INT6    INT5    INT4    INT3    INT2    INT1    INT0  */
  /*    S3    S4    S5    S6    NIC   EXT   IDE   USB */
  /*      11      11      11      11      11      11      11      11       */
  rPDATG = 0xFF;
  rPCONG = 0xFFFF;
  rPUPG  = 0x00;  

  rSPUCR=0x7;  

  /*定義非Cache區*/
  /*rNCACHBE0 = 0xc0002000; */

  rEXTINT=0x0444;	/*網卡使用EXTINT1,上升沿觸發*/
}

/******************************************************************************
*
* rtl8019Init - RTL8019網絡芯片初始化(與NE2000不兼容)
* loopDelay - 循環延時函數,每個時間單位為100us
*/
static int delayLoopCount = 400;
static void loopDelay(int time)
{
  int i;
  for(;time>0;time--)
    for(i=0;i<delayLoopCount;i++);
}
void NetTest(void)
{
  unsigned char c[]={0x21,0x41,0xa1,0xe1};
  int i,j;
  volatile unsigned char *p =(volatile unsigned char *)(NETBASE);
  
  printf("Start NET Controller Test!\n");
  printf("Read registers from controller!\n");
  for (i=0; i<4; i++) 
  	{
    *(volatile unsigned char *)(p) = c[i];
    printf("\nPage%c:",'0'+i);
    for (j=0;j<16;j++) 
		{
          printf("%02X ",(int)(*(volatile unsigned char *)(p+j)));
        }
    }
  
  printf("\nFinish NET Controller Test!\n");
  *(NETBASE+0x00) = 0x22;
}

static void rtl8019Init(void)
{
  /*Reset MAC*/
  *CPLDREG1 |= 0x20;
  loopDelay(500);
  *CPLDREG1 &= 0xDF;
  loopDelay(100);
  *(NETBASE+0x1e) = *(NETBASE+0x1e + 0x20);
  loopDelay(100);
  /* Page 3 Set power status & msic*/
  *(NETBASE+0x00) = 0xc1;
  *(NETBASE+0x20) = 0xcf;	/**(NETBASE+0x20) = 0xc0;*/
  *(NETBASE+0x04) = 0x80;
  *(NETBASE+0x24) = 0x00;
  *(NETBASE+0x06) = 0x70;
  /**(NETBASE+0x26) = 0xFF;*//*07H TEST R/W Reserved, Do not write*/
  *(NETBASE+0x20) = 0x0f;	/*關閉寫允許*/
}

/******************************************************************************
*
* s3cExcVecSet - 構成RAM中向量表
*
*/
void s3cExcVecSet(void)
{
    int i;
    i = (int)&excEnterUndef;
    *((volatile int*)(S3C_EXC_BASE + 0x0)) = i;

    i = (int)&excEnterSwi;
    *((volatile int*)(S3C_EXC_BASE + 0x4)) = i;

    i = (int)&excEnterPrefetchAbort;
    *((volatile int*)(S3C_EXC_BASE + 0x8)) = i;

    i = (int)&excEnterDataAbort;
    *((volatile int*)(S3C_EXC_BASE + 0xc)) = i;

    i = (int)&intEnt;
    *((volatile int*)(S3C_EXC_BASE + 0x14)) = i;

    return;
}

/******************************************************************************
*
* sysInByte,sysOutByte,sysInWordString,sysOutWordString
*
* NE2000驅動需要的輸入輸出函數.
* 
* 注意:sysInWordString和sysOutWordString的端口地址不累加,使用8位操作.
*/
unsigned char sysInByte	(unsigned long port)
{
	return (REG8(port));
}
void	sysOutByte	(unsigned long port, unsigned char data)
{
	REG8(port) = data;
}
void	sysInWordString	(unsigned long port, unsigned short *pData, int count)
{
	int i, byte_count; char *pbyte;
	
	pbyte = (char *)pData;
	byte_count = count*2;	
	for(i=0; i<byte_count; i++){
		*(pbyte) = REG8(port);
		pbyte++;
	}
}
void	sysOutWordString(unsigned long port, unsigned short *pData, int count)
{
	int i, byte_count; char *pbyte;

	pbyte = (char *)pData;
	byte_count = count*2;	
	for(i=0; i<byte_count; i++){
		REG8(port) = *(pbyte);
		pbyte++;
	}
}

/******************************************************************************
*
* sysModel - return the model name of the CPU board
*
* This routine returns the model name of the CPU board.
* 
* RETURNS: A pointer to a string identifying the board and CPU.
*/

char *sysModel (void)
    {
#if (_BYTE_ORDER == _LITTLE_ENDIAN)
#if   (CPU == ARMARCH4)
    /*return    "wrSbcArm7 - ARM7TDMI (ARM)";*/
	/*  : deleted and added */
	return    "S3C44B0X - ARM7TDMI (ARM,not Thumb) Little Endian";		
#elif (CPU == ARMARCH4_T)
    return    "wrSbcArm7 - ARM7TDMI (Thumb)";
#else

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区四区的| 国产欧美日韩在线看| 国产不卡视频在线播放| 综合婷婷亚洲小说| 国产精品伦理一区二区| 91精选在线观看| 91老司机福利 在线| 精品一二三四区| 亚洲精品国产精品乱码不99| xvideos.蜜桃一区二区| 日韩午夜在线影院| 日韩欧美一级精品久久| 91.com在线观看| 日韩美一区二区三区| 日韩精品专区在线影院重磅| 91啪在线观看| 884aa四虎影成人精品一区| 欧美人xxxx| 5566中文字幕一区二区电影| 日韩午夜激情视频| 亚洲精品一线二线三线| 国产婷婷色一区二区三区在线| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲电影在线播放| 精品国内片67194| 91精品91久久久中77777| 欧美福利电影网| 国产区在线观看成人精品| 中文字幕一区二区在线观看| 综合久久综合久久| 亚洲黄色小视频| 国产精品影视天天线| 99久久精品国产导航| 色激情天天射综合网| 精品久久久久一区| 五月激情丁香一区二区三区| 99久久国产综合精品麻豆| 欧美一区二区三区男人的天堂| 久久亚区不卡日本| 热久久久久久久| 国产欧美日韩三级| 欧美videofree性高清杂交| 国产精品久久国产精麻豆99网站| 国产视频视频一区| 久久se精品一区二区| 欧美裸体bbwbbwbbw| 欧美一区二区三区精品| 性久久久久久久| 91黄色激情网站| 欧美三级午夜理伦三级中视频| 欧美国产97人人爽人人喊| 麻豆传媒一区二区三区| 久久久久久久综合| 国产伦精品一区二区三区在线观看| 欧美tickling挠脚心丨vk| 性欧美疯狂xxxxbbbb| 欧美一卡2卡三卡4卡5免费| 日本vs亚洲vs韩国一区三区 | 风间由美一区二区三区在线观看 | 中文字幕一区视频| 色婷婷亚洲综合| 夜夜嗨av一区二区三区网页| 日本韩国欧美一区二区三区| 一区二区三区中文在线观看| 欧美日韩一级二级三级| 一区二区激情小说| 久久精品亚洲麻豆av一区二区| 蜜桃av一区二区在线观看| 中文字幕欧美日韩一区| 欧美无人高清视频在线观看| 国产一级精品在线| 亚洲一区在线观看免费观看电影高清| 欧美丝袜丝交足nylons图片| 免费人成黄页网站在线一区二区 | 亚洲国产综合色| 欧美一二三区精品| 国产另类ts人妖一区二区| 亚洲大片精品永久免费| 日韩欧美一级在线播放| 在线观看网站黄不卡| 风间由美一区二区三区在线观看 | 欧美日韩视频在线一区二区| av电影天堂一区二区在线观看| 午夜欧美在线一二页| 中文字幕欧美区| 精品三级av在线| 精品日韩成人av| 日韩欧美亚洲国产精品字幕久久久| 94色蜜桃网一区二区三区| 国产成人在线看| 粉嫩欧美一区二区三区高清影视| 欧美大白屁股肥臀xxxxxx| 亚洲成人动漫在线免费观看| 中文字幕的久久| 国产精品白丝在线| 国产嫩草影院久久久久| 国产精品三级久久久久三级| 国产精品麻豆视频| 亚洲精品视频在线观看网站| 亚洲欧美日韩国产中文在线| 亚洲国产激情av| 一区二区三区蜜桃| 亚洲制服丝袜在线| 天天做天天摸天天爽国产一区| 亚洲香肠在线观看| 午夜精品成人在线视频| 美女视频黄久久| 国产一区二区三区四区五区入口| 国产98色在线|日韩| 99re热视频这里只精品| 欧美综合视频在线观看| 欧美区视频在线观看| 精品国产百合女同互慰| 日韩欧美的一区二区| 国产精品私人影院| 亚洲香蕉伊在人在线观| 国产专区欧美精品| 欧美日韩国产大片| 日韩精品专区在线| 亚洲国产日韩a在线播放| 麻豆视频一区二区| 91网站最新地址| 亚洲精品在线一区二区| 中文字幕中文字幕中文字幕亚洲无线 | 欧美激情综合网| 亚洲黄色录像片| 久久国产成人午夜av影院| 成人一区二区在线观看| 欧美日韩国产一二三| 国产色爱av资源综合区| 另类成人小视频在线| 欧美久久久久久久久| 亚洲视频综合在线| 国产成人在线免费观看| 久久综合色一综合色88| 老司机免费视频一区二区三区| 色综合久久久久| 一区二区三区欧美视频| 一本大道久久a久久综合| 亚洲欧美视频在线观看| 欧美亚洲国产一区二区三区| 亚洲欧洲精品一区二区三区不卡| 91免费看`日韩一区二区| 1024国产精品| 欧美伦理影视网| 美女视频一区在线观看| 国产亚洲欧美在线| 99久久精品免费观看| 午夜精品福利一区二区三区蜜桃| 7777精品伊人久久久大香线蕉| 蜜桃91丨九色丨蝌蚪91桃色| 久久免费的精品国产v∧| 成人综合在线视频| 亚洲综合偷拍欧美一区色| 久久综合九色综合97婷婷女人| 国产成人av福利| 亚洲精品第1页| 日韩欧美国产高清| 91香蕉视频mp4| 久久av中文字幕片| 亚洲六月丁香色婷婷综合久久| 91精品国产欧美一区二区18| 成人免费看视频| 三级欧美韩日大片在线看| 国产亚洲欧美日韩在线一区| 欧美日韩大陆在线| av电影天堂一区二区在线观看| 婷婷亚洲久悠悠色悠在线播放 | 国产精品国产三级国产有无不卡| 欧美日韩国产123区| 99精品欧美一区二区三区小说 | 久久国产精品99久久久久久老狼| 中文字幕精品—区二区四季| 欧美mv和日韩mv国产网站| 欧美日本高清视频在线观看| 欧美三片在线视频观看| 91在线porny国产在线看| 成人激情免费视频| 国产成人av网站| 成人免费不卡视频| 国产成人一区在线| 成人做爰69片免费看网站| 国产美女精品在线| 久久91精品国产91久久小草| 黑人巨大精品欧美一区| 日本v片在线高清不卡在线观看| 午夜精品视频在线观看| 蜜臀av一区二区在线观看| 久久91精品国产91久久小草| 国产精品一区二区x88av| av电影天堂一区二区在线观看| av色综合久久天堂av综合| 欧美性xxxxxx少妇| 欧美tickle裸体挠脚心vk| 中文字幕av不卡| 亚洲国产综合人成综合网站| 麻豆精品精品国产自在97香蕉 | 欧洲一区在线观看| 欧美变态tickle挠乳网站| 国产嫩草影院久久久久|