Exemplo n.º 1
0
/*********************************************************************************************************
** 函数名称: ls1xWatchDogDrv
** 功能描述: 安装 WATCH_DOG 驱动
** 输 入  : NONE
** 输 出  : ERROR_CODE
** 全局变量:
** 调用模块:
*********************************************************************************************************/
INT  ls1xWatchDogDrv (VOID)
{
    struct file_operations  fileop;

    if (_G_ils1xWDTDrvNum) {
        return  (ERROR_NONE);
    }

    lib_memset(&fileop, 0, sizeof(struct file_operations));

    fileop.owner        = THIS_MODULE;
    fileop.fo_create    = ls1xWDTOpen;
    fileop.fo_open      = ls1xWDTOpen;
    fileop.fo_close     = ls1xWDTClose;
    fileop.fo_lstat     = ls1xWDTLstat;
    fileop.fo_ioctl     = ls1xWDTIoctl;

    _G_ils1xWDTDrvNum = iosDrvInstallEx2(&fileop, LW_DRV_TYPE_NEW_1);

    DRIVER_LICENSE(_G_ils1xWDTDrvNum,     "Dual BSD/GPL->Ver 1.0");
    DRIVER_AUTHOR(_G_ils1xWDTDrvNum,      "Ryan.xin");
    DRIVER_DESCRIPTION(_G_ils1xWDTDrvNum, "ls1x watchdog driver.");

    return  (_G_ils1xWDTDrvNum > 0) ? (ERROR_NONE) : (PX_ERROR);
}
Exemplo n.º 2
0
/*********************************************************************************************************
** 函数名称: ls1xWatchDogDevAdd
** 功能描述: 创建 WATCH_DOG 设备
** 输 入  : pcName   设备名
** 输 出  : ERROR_CODE
** 全局变量:
** 调用模块:
*********************************************************************************************************/
INT  ls1xWatchDogDevAdd (CPCHAR  cpcName)
{
    PLS1X_WDT_DEV   pwdt;

    pwdt = (PLS1X_WDT_DEV)__SHEAP_ALLOC(sizeof(LS1X_WDT_DEV));
    if (!pwdt) {
        _DebugHandle(__ERRORMESSAGE_LEVEL, "system low memory.\r\n");
        _ErrorHandle(ERROR_SYSTEM_LOW_MEMORY);
        return    (PX_ERROR);
    }

    lib_memset(pwdt, 0, sizeof(LS1X_WDT_DEV));

    pwdt->WDT_ulPhyAddrBase = BSP_CFG_WDT_BASE;
    pwdt->WDT_time          = time(LW_NULL);

    if (API_IosDevAddEx(&pwdt->WDT_devhdr, cpcName, _G_ils1xWDTDrvNum, DT_CHR) != ERROR_NONE) {
        __SHEAP_FREE(pwdt);
        _DebugHandle(__ERRORMESSAGE_LEVEL, "system low memory.\r\n");
        _ErrorHandle(ERROR_SYSTEM_LOW_MEMORY);
        return    (PX_ERROR);
    }

    _ErrorHandle(ERROR_NONE);
    return    (ERROR_NONE);
}
Exemplo n.º 3
0
/*********************************************************************************************************
** 函数名称: ls1xLedDevCreate
** 功能描述: 创建 LED 设备
** 输 入  : NONE
**           pcName   设备名
**           uiGpio   GPIO Num
**           bIsOutPutHigh 初始电平
** 输 出  : 错误号
*********************************************************************************************************/
INT  ls1xLedDevCreate (CPCHAR  cpcName, UINT  uiGpio, BOOL  bIsOutPutHigh)
{
    PLS1XLED_DEV  pled;

    pled = (PLS1XLED_DEV)__SHEAP_ALLOC(sizeof(LS1X_LED_DEV));
    if (!pled) {
        _DebugHandle(__ERRORMESSAGE_LEVEL, "system low memory.\r\n");
        _ErrorHandle(ERROR_SYSTEM_LOW_MEMORY);
        return    (PX_ERROR);
    }

    lib_memset(pled, 0, sizeof(LS1X_LED_DEV));

    pled->LED_uiGpio        = uiGpio;
    pled->LED_bIsOutPutHigh = bIsOutPutHigh;
    pled->LED_time          = time(LW_NULL);

    if (API_IosDevAddEx(&pled->LED_devhdr, cpcName, _G_ils1xLedDrvNum, DT_CHR) != ERROR_NONE) {
        __SHEAP_FREE(pled);
        _DebugHandle(__ERRORMESSAGE_LEVEL, "system low memory.\r\n");
        _ErrorHandle(ERROR_SYSTEM_LOW_MEMORY);
        return    (PX_ERROR);
    }

    _ErrorHandle(ERROR_NONE);
    return    (ERROR_NONE);
}
Exemplo n.º 4
0
/*********************************************************************************************************
** 函数名称: lib_xzalloc
** 功能描述: 内存分配(清零)
** 输 入  : s             大小
** 输 出  : 开辟成功返回内存地址, 否则直接退出线程.
** 全局变量: 
** 调用模块: 
*********************************************************************************************************/
void  *lib_xzalloc (size_t s)
{
    return lib_memset(lib_xmalloc(s), 0, s);
}