ProgSoft

A pessimist sees the difficulty in every opportunity; an optimist sees the opportunity in every difficulty.

用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
progsoft的公告
<div class="News"> <center><img src=http://blog.csdn.net/images/blog_csdn_net/progsoft/20346/o_Own.gif></center ><br> <center>朋友自远方来,不亦乐乎</center><br> <br> <div><B>个人简介</B></div> 网名:progsoft<br> QQ:49753255(此号被盗,也许永远申请不回来了:()<br> MAIL:<a href='mailto:progsoftAT163.com'>progsoftAT163.com</a><br><br> 来自:湖南长沙 <center> <hr size='1' width='100%'> 计数器<br> <script src="http://www.xcinfo.ha.cn/jsq/default.asp?User=progsoft&Length=6&x=15&y=20&Mode=002"></script> </center> <p><b>天气预报</b></p> <iframe width=150 height=240 frameborder=0 scrolling=NO src=http://appnews.qq.com/cgi-bin/news_qq_search></iframe> </div>
文章分类
MSN 论坛与协议
BOT2k3
Hypothetic
lanyus
存档

原创  VxWorks操作系统复位实战(一)[by Progsoft] 收藏

影子

至今已经处理了不少PowerPC复位问题,略有心得。特在此记录,标以纪念。

下面列出一实例,你看看会有影响么?

 看完这个实例,你发现错误了么? 错误的影响怎么样?

此BUG极为微小,造成的影响是怎么样呢,系统异常复位。所以不要小看一个极小的BUG,它的影响力可以巨大的。

typedef struct tcb
{
    char     taskName[
8]; /* 任务名称 */

    UINT32    tcbCnt;      
/* 任务运行时间 */
    UINT32    ......;      
/* 其他变量 */
}
 TCB; 
TCB TaskCB[MAX_TASK] 
=
 

    
{"TASK00"0, ...}
,
    
{"TASK01"0, ...}
,
    
{"TASK01_SUB"0, ...}
,
    
{"TASK03"0, ...}
,
    
{"TASK04"0, ...}
,
    
{"TASK05"0, ...}
,
}
 

TaskRoot()
{
    char Buffer[
256
];
    
for
(;;)
    
{
        ......
        
for (k = 0; k < MAX_TASK; k++
)
        
{
            sprintf(Buffer, 
"%s run time :%d "
, TaskCB[k].taskName, TaskCB[k].tcbCnt); 
            printf(Buffer); 
        }

        ......
    }

}

发表于 @ 2006年05月07日 01:11:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:在遥远的邮件找到密码 | 新一篇:最简单的一个堆栈溢出攻击实例 (1) [by Progsoft]

  • 发表评论
  • 评论内容:
  •  
Copyright © progsoft
Powered by CSDN Blog