摘要: 最近遇到一个问题,当我在UCOS里调用系统延时"OSTimeDlyHMSM(0, 0, 0, 10)",程序进入硬件错误中断“HardFault_Handler”中。我开始以为是主堆栈空间嵌套过多导致溢出,于是设置增大了主堆栈,但依然没有解决问题,和一个朋友联系后得知,他写代码很少在ISR中调用系统延时,我开始有了想法,如果说ISR里不允许,那为什么操作系统端没做限制呢?查看相关资料得知,是我对操作系统的不了解。uCOS为了防止主堆栈的用空导致程序跑飞,定义了“OSIntNesting”全局变量。而通过这个全局变量,操作系统能很容易的监控中断的嵌套层次。而想要利用这个样的机 阅读全文
posted @ 2013-12-23 16:19 swack 阅读(4598) 评论(0) 推荐(0) 编辑
摘要: 本程序基于TQ2440原有的看门狗驱动修改(vs2005+wince6.0测试通过):“watchdog.h”#ifndef __WDG_H_#define __WDG_H_#ifdef __cplusplusextern "C" {#endif#define IO_CTL_WDG_OPEN 0x01#define IO_CTL_WDG_FEED 0x02DWORD WDG_Init(DWORD dwContext);DWORD WDG_Open(DWORD hDeviceContext, DWORD AccessCode, DWORD ShareMode);DWORD W 阅读全文
posted @ 2013-04-23 13:22 swack 阅读(506) 评论(0) 推荐(0) 编辑