裸机离奇事件:Freescale usb
ucosii
Freescale\KSDK_1.2.0\examples\twrk65f180m\demo_apps\usb\host\cdc\cdc_serial

{
1. usb 发送函数卡死,不能再重新进入该任务,app其他任务alive
2. usb 引发 hardware fault
3. usb 发送后没有发现正确的返回,但所有任务alive
}
---------------------------------------------------------------------------------------

static const unsigned char *ME909str_AT = "AT\r\n"; //AT查询模块是否正常工作 //xx NG
//static unsigned char *ME909str_AT = "AT\r\n"; //AT查询模块是否正常工作 //xx NG

void send_atcmd_sycle(void)
{
    static unsigned char buf[256]={0};
    static unsigned char* pbuf = buf;
    static unsigned char s_data[] = {31, 32, 33, 34, 35, 0};
    static int wait_time = 10;
    #define CNT 10
    static int cmdid = 0;
    
    if(cmdid == 0) {
        wait_time = 2000;
        //pbuf = ME909str_AT; //1. 使用pbuf指向一个已有的全局const/non-const buffer,从usb没有收到Mc509模块的"OK"返回字符。跟踪usb的发送函数,看起来都是发出去了的。 原因未知。
        strcpy(pbuf, s_data); // 使用strcpy靠摆到buf,再发送就没什么问题了。
        cur_at_cmd_id = ME909_CMDI_AT;
    }else if (cmdid == 8) {
        wait_time = 2000;
        //pbuf = s_data; //2. 使用pbuf指向静态buffer s_data,这个任务将不会再进来,推测是卡在usb发送了。 原因未知。
                         /*如果s_data申明为局部非静态,跟踪usb发送函数,完成发送后,会出现hardware fault。原因未知,一个说法是usb发送函数在底层另开了一个线程,所以传局部数组不行。
                          * 然而,buf申明为局部非静态却没有发现这个问题,解释是可能刚好这个内存没被其他线程用到,暂时未被占用因此可用。
                          */
        strcpy(pbuf, s_data); //使用strcpy靠摆到buf,再发送就没什么问题了。
        cur_at_cmd_id = ME909_CMDI_IPSENDEX_DATA;
    }
    mc509_send_at_cmd(pbuf, strlen(pbuf)); //usb发送函数,正常情况下,这里发了AT指令到Mc509,在我的另一个task中usb会读到会有"OK"返回字符。
    
    cmdid = (cmdid+1) % CNT;
    
    msleep(wait_time);
    
}

裸机离奇事件:Freescale usb 有关fault的更多相关文章

  1. 突发小事件,USB接口问题

    昨天遇到的突发事件,突然USB接口全部瘫了,键盘鼠标全部不能用,换到别人电脑上可以,吓尿了,以为本子主板挂了,但是发现插U盘竟然可以识别而且可以打开,感觉可能是静电问题,果然,彻底关机,拔掉电池,然后 ...

  2. 定制化JDK升级引发的离奇事件

    1.背景 由于Oracle对外宣称Oracle JDK停止免费用于商用.公司法务部门评估之后担心后续会惹上光司,于是就开始了JDK升级-将所有服务Oracle修改为OpenJDK.上周开始微服务JDK ...

  3. imx6 usb otg config 配置

    imx6 usb的host和slave配置,配置之后,安装gadget模块,就能够在host和slave之间切换. 参考文档: i.MX 6Dual/6Quad Linux Reference Man ...

  4. 第17章 EXTI—外部中断/事件控制器

    第17章     EXTI—外部中断/事件控制器 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.co ...

  5. EP-N8530S USB WIFI 驱动移植

    /*********************************************************************** * EP-N8530S USB WIFI 驱动移植 * ...

  6. 第17章 EXTI—外部中断/事件控制器—零死角玩转STM32-F429系列

    第17章     EXTI—外部中断/事件控制器 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.co ...

  7. Flex+Struts2+JSON实现Flex和后台的HTTP Service请求

    http://www.fengfly.com/plus/view-191093-1.html Flex+Struts2+JSON的后台代码我在这就不多说了.不懂得请看我写的上一篇文章<Strut ...

  8. 八成Java开发者解答不了的问题

    统计数据来自Java“死亡”竞赛——一个针对开发者的迷你测验 几个月前,我们在一个小型网站上发布了一个称为Java“死亡竞赛”的新项目.测验发布后,超过20000位开发者参加了测验.网站以20道关于J ...

  9. Java基础知识强化14:Java死亡竞赛题目解析

      一个小型网站上发布了一个称为Java“死亡竞赛”的新项目.测验发布后,超过20000位开发者参加了测验.网站以20道关于Java的多选题为主.我们得到了众多开发者的测验统计数据,今天,我们非常乐意 ...

随机推荐

  1. java中的四则运算

    代码的思路是通过正则判断计算每个最小的计算单元.以下是代码: package cn.com.lawchat.forpublicmvc.util; import java.math.BigDecimal ...

  2. STL"源码"剖析

    STL"源码"剖析-重点知识总结   STL是C++重要的组件之一,大学时看过<STL源码剖析>这本书,这几天复习了一下,总结出以下LZ认为比较重要的知识点,内容有点略 ...

  3. Angularjs基础教程

    Angularjs-基础教程 一些angualr的基础概念,适合入门. 1.下载 推荐 bower 或 npm 安装. bower install angular bower install angu ...

  4. Thread-safety with regular expressions in Java

    As mentioned in our introduction to the Pattern and Matcher classes, the Java regular expression API ...

  5. Android程序报错 Connection refused 处理

    在用Android测试JSON数据解析的时候,报了这样一个异常: java.net.ConnectException: localhost/ - Connection refused 原来模拟器默认把 ...

  6. 如何打开Nib文件

    作者:ani_di  版权所有,转载务必保留此链接 http://blog.csdn.net/ani_di # 如何打开Nib文件 有段时间没有灌水,今天分享一个小技巧. nib文件是Cocoa Ap ...

  7. 拿别人APP的IPA包及你看上的图片

    闲话不多说, 开工 在MacX下载Itools软件,并安装,直接在百度上搜也能找到.Itools挺强大的,我在这里推荐一下. 在Itools中点击资源库,如果你连接上你的iPhone,这个按钮就在右上 ...

  8. 转--Windows下将jar包封装成服务程序

    http://www.cppblog.com/aurain/archive/2014/01/23/205534.aspx 1 准备 使用工具Procrun(http://commons.apache. ...

  9. USB数据流模型

    USB数据流模型 <<USB Specification11>> << USB Specification20>> << Linux Dev ...

  10. C++之构造函数重载

    #include<stdio.h> class Test    {        private:         int i;         int j;         int k; ...