天嵌 ARM开发社区

 找回密码
 注册
查看: 2618|回复: 3

TQ2440 WINCE 看门狗流驱动

[复制链接]
swack 发表于 2013-4-22 10:05:47 | 显示全部楼层 |阅读模式
本帖最后由 swack 于 2013-4-22 10:15 编辑

原有的驱动我做了修改:
static BOOL FeedIt()  我注释掉了
修改了BOOL WDG_IOControl 如下所示:
BOOL WDG_IOControl(DWORD hOpenContext, DWORD dwCode, PBYTE pBufIn, DWORD dwLenIn, PBYTE pBufOut, DWORD dwLenOut, PDWORD pdwActualOut)
{
        switch(dwCode)
        {
        case IO_CTL_WDG_OPEN:
                v_pWDGregs->WTCON = 0x8021; // Init Value
                v_pWDGregs->WTDAT = 0xFEA9;
                v_pWDGregs->WTCON = ( 1 << 0) | (0x03 << 3 ) | (1 << 5) | (0x5A << 8);
                break;
        case IO_CTL_WDG_FEED:
                v_pWDGregs->WTCNT = 0xFEA9;
                break;
        default:
                break;
        }
        return TRUE;
}

以上是修改的bsp的驱动,
一下我应用程序里,我在自己的程序这么用的:
wdgdriver= CreateFile(L"WDG1:",GENERIC_READ | GENERIC_WRITE,
                0,NULL,OPEN_EXISTING,0,NULL);

开启看门狗:DeviceIoControl(wdgdriver,IO_CTL_WDG_OPEN,NULL,0,NULL,0,NULL,NULL);
喂狗:DeviceIoControl(wdgdriver,IO_CTL_WDG_FEED,NULL,0,NULL,0,NULL,NULL);

现在的现象是,我没有开启看门狗DeviceIoControl(wdgdriver,IO_CTL_WDG_OPEN,NULL,0,NULL,0,NULL,NULL);
调用,就自动重启了,也就是感觉看门狗打开了,但是我feedit()都注释了,求解啊?!
亚瑟王 发表于 2013-4-22 10:38:51 | 显示全部楼层
亲,把看门狗的相关寄存器的值打印出来看一下就知道是否启动看门狗了。在驱动中加一下打印信息吧。
 楼主| swack 发表于 2013-4-23 12:26:17 | 显示全部楼层
亚瑟王 发表于 2013-4-22 10:38
亲,把看门狗的相关寄存器的值打印出来看一下就知道是否启动看门狗了。在驱动中加一下打印信息吧。

管理员你好,我这串口没有调试信息输出啊。
我按照"wince开发教程.pdf"中2.3串口和调试信息设置的
//*********************                //use for eboot
#define eboot_nouse_UART        0
#define eboot_use_UART0                1
#define eboot_use_UART1                2
#define eboot_UARTn                        eboot_use_UART0

//*********************                //use for NK.bin
#define BSP_nouse_UART                (0)
#define BSP_use_UART0                (1)
#define BSP_use_UART1                (2)
#define BSP_UARTn                        BSP_nouse_UART

看门狗驱动里:
DWORD WDG_Open(DWORD hDeviceContext, DWORD AccessCode, DWORD ShareMode)
{
        RETAILMSG(1,(TEXT("WDG: Open\r\n")));
        //FeedIt();
        return TRUE;
}

RETAILMSG(1,(TEXT("WDG: Open\r\n")));  输出了,但是串口里什么都没有啊!
亚瑟王 发表于 2013-4-23 19:39:59 | 显示全部楼层
swack 发表于 2013-4-23 12:26
管理员你好,我这串口没有调试信息输出啊。
我按照"wince开发教程.pdf"中2.3串口和调试信息设置的
//** ...

应该设置为:
//*********************                //use for eboot
#define eboot_nouse_UART        0
#define eboot_use_UART0                1
#define eboot_use_UART1                2
#define eboot_UARTn                        eboot_use_UART0

//*********************                //use for NK.bin
#define BSP_nouse_UART                (0)
#define BSP_use_UART0                (1)
#define BSP_use_UART1                (2)
#define BSP_UARTn                        BSP_use_UART0
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-3 02:41 , Processed in 1.062507 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表