裸机离奇事件: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. Fedora 19下Guacamole的安装使用

    由于我要使用RDP实现web远程桌面,因此需要用到了Guacamole这个开源的软件.之前用Ubuntu12.04折腾了一晚上,也没有找到依赖库文件,而Guacamole的官方安装说明却没有介绍这个依 ...

  2. MySQL 设置数据库的隔离级别

    在会话级别设置隔离级别 1.read commited :set session transaction isolation level read committed; 2.repeatable re ...

  3. elk 分布式部署

    这个logstash 读取日志 是增量的 还是怎么读的? 定时每秒读增量 机器配置: elasticsearch-192.168.32.80 elasticsearch-192.168.32.81 e ...

  4. perl 爬取同花顺数据

    use LWP::UserAgent; use utf8; use DBI; $user="root"; $passwd='xxx'; $dbh=""; $db ...

  5. openStack openSource CloudComputing

    <一,> ,OpenStack a few Core Compontents integration with openStack-keystone Identity service1.1 ...

  6. Jquery 方法大全

    一.JQuery常用的方法 :(JQuery中90%都是方法,没有参数是获取,带参数是设置) $("#id").css('backgroundColor','blue'); .cs ...

  7. untiy 播放视频

    利用 MovieTexture 类 放入视频 视频不能使flv的 建立一个平面 作为屏幕,利用Material 播放动画,剩下的就是将平面放大和屏幕一样/ public MovieTexture My ...

  8. 1.2. chromium源代码分析 - chromiumframe - 入口函数

    ChromiumFrame的入口函数在main.cpp中,打开main.cpp.中包含3个类和_tWinMain函数._tWinMain就是我们要找的入口函数.我做了部分注释: int APIENTR ...

  9. [NOIP1999提高] CODEVS 1047 邮票面值设计(dfs+dp)

    dfs出邮票的各种面值,然后dp求解. ------------------------------------------------------------------------------- ...

  10. Windows下的PHP开发环境搭建——PHP线程安全与非线程安全、Apache版本选择,及详解五种运行模式。

    今天为在Windows下建立PHP开发环境,在考虑下载何种PHP版本时,遭遇一些让我困惑的情况,为了解决这些困惑,不出意料地牵扯出更多让我困惑的问题. 为了将这些困惑一网打尽,我花了一下午加一晚上的时 ...