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

📄 bsplib.c

📁 vxworks MPC8541 BSP
💻 C
字号:
/* bspLib.c - ... */

/* Copyright 2007 ZTE Corporation */

/*
modification histroy
--------------------
01a,11jan07,lyf	written.
*/

/*
DESCRIPTION
This module ...
...
INCLUDE FILES: bspLib.h
*/

/* includes */

#include "vxWorks.h"
#include "stdio.h"
#include "intLib.h"
#include "string.h"
#include "logLib.h"
#include "time.h"

#include "config.h"
#include "bspLib.h"
#include "mecLib.h"
#include "drv/parallel/m8260IOPort.h"

/* defines */


/* typedefs */
typedef volatile INT32 VINT32;

/* imports */

/* 先外部变量,空格,后外部函数声明 */


IMPORT UINT32  vxImmrGet (void);

/* globals */

/* locals */



/* forword declarations */

/*##############################################################################
#                               单板信息                                       #
##############################################################################*/


/*******************************************************************************
* bspPcbVerNo
*
*/
int bspPcbVerNo (void)
{
    UINT8 RegData;
    
    RegData = (BCSR_REG(0x4) & 0xE0) >> 5;
    return RegData;
}

/*******************************************************************************
* bspFpgaVerNo
*
*/
int bspFpgaVerNo (void)
    {
    return (BSP_NOT_SUPPORT);
    }

/*******************************************************************************
* bspCpldVerNo
*
*/
int bspCpldVerNo (void)
{
    UINT8 RegData;
    
    RegData = mecRegRead(0x08);
    return RegData;
}


char *bsp_GetHardVer(void)
{
    UINT8 val = 0;
    static char  hardver[3]= {0};
        
    val = BCSR_REG(0x04)>>5;

    sprintf(hardver,"V%d",val);

    return hardver;   	
}

/******************************************************************************/
/*                              本板状态与控制                                */
/******************************************************************************/


/*******************************************************************************
* bspPhysSlotId
*/
int bspPhysSlotId (void)
{
    return (physSlotNumber());
}

/*##############################################################################
#                               灯控制                                         #
##############################################################################*/

/*******************************************************************************
* bspRunLedOn
*
*/
int bspRunLedOn(void)
{
    UINT32 immrVal = vxImmrGet();

    * M8260_IOP_PCDIR(immrVal) |= PC10;
    * M8260_IOP_PCDAT(immrVal) |= PC10;

    return OK;
}

/*******************************************************************************
* bspRunLedOff
*
*/
int bspRunLedOff(void)
{
    UINT32 immrVal = vxImmrGet();
    
    * M8260_IOP_PCDIR(immrVal) |= PC10;
    * M8260_IOP_PCDAT(immrVal) &= ~PC10;

    return OK;
}

/*******************************************************************************
* bspAlarmLedOn
*
*/
int bspAlarmLedOn (void)
{
    UINT32 immrVal = vxImmrGet();
    
    * M8260_IOP_PCDIR(immrVal) |= PC9;
    * M8260_IOP_PCDAT(immrVal) |= PC9;

    return OK;
}

/*******************************************************************************
* bspAlarmLedOff
*
*/
int bspAlarmLedOff (void)
{
    UINT32 immrVal = vxImmrGet();
    
    * M8260_IOP_PCDIR(immrVal) |= PC9;
    * M8260_IOP_PCDAT(immrVal) &= ~PC9;

    return OK;
}



/*##############################################################################
#                               FPGA接口                                       #
##############################################################################*/

/*******************************************************************************
* bspFpgaReset
*
*/
int bspFpgaReset (void)
{
    reset_fpga();
    return OK;
}

/*待添加*/
void reset_fpga (void)
{
   return;
}

/*##############################################################################
#                               项目共有BSP代码                                #
##############################################################################*/
#include "bspPrjLib.c"

/*##############################################################################
#                               私有                                           #
##############################################################################*/

/*
#include "bspLibExtra.c"
*/
#ifndef __BOOTROM__
IMPORT int ipAttach (int unit, char * pDevice);
IMPORT void ifShow (char * ifName);
IMPORT STATUS	usrNetIfConfig (char *devName, int unitNum, char *inetAdrs, 
                                char *inetName, int netmask);

void netEndDevStart
    (
    char *    pDevName,        /* Device name */
    int       unitNum,         /* unit number */
    char *    pTgtName,        /* Host Name */
    char *    pAddrString,     /* enet address */
    int       netmask          /* netmask */
    )
    {
    END_OBJ * pEnd;

    if (pDevName == NULL)
        return;
    /* Find the END_OBJ associated with the device. */
    pEnd = endFindByName (pDevName, unitNum);
    if (pEnd == NULL)
        {
        /* printf ("Could not find %s%d\n", pDevName, unitNum); */
        return;
        }

#ifndef _WRS_VXWORKS_5_X
    M2_INTERFACETBL endM2Tbl;
    if (muxIoctl(pEnd, EIOCGMIB2, (caddr_t) &endM2Tbl) == ERROR)
        {
        printf ("Cannot perform EIOCMIB2 ioctl.\n");
        return;
        }
#endif

    if (ipAttach(unitNum, pDevName) != OK)
        {
        printf ("Failed to attach to device %s", pDevName);
        return;
        }

    if (usrNetIfConfig (pDevName, unitNum, pAddrString, pTgtName, netmask) != OK)
        {
        printf ("Failed to configure %s%d for IP.\n", pDevName, unitNum);
        return;
        }

    /*
    printf ("Attached TCP/IP interface to %s unit %d\n", pDevName, unitNum);
    */
    return;
    }

void bbcNetTest1()
{
    char    buf[48];
    struct  in_addr inetAddr;

    inetAddr.s_addr = bspBbIpAddr();
    inet_ntoa_b(inetAddr, buf);
    netEndDevStart (BBC_DEV, BBC_DEV_UNIT, "", buf, (int)BBC_INET_MASK);
    ifShow (BBC_NET_DEV);
}

#if 0
void dogTest()
{
    int i;
    bsp_WatchDogEnable();
    for(i=0;i<10;i++)
    {
        bsp_FeedWatchDog();
        taskDelay(60);
    }
    printf("\ndogTest end! reset...\n");
}
#endif

#endif /* __BOOTROM__ */

⌨️ 快捷键说明

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