裸机离奇事件:Freescale usb 有关fault
裸机离奇事件: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的更多相关文章
- 突发小事件,USB接口问题
昨天遇到的突发事件,突然USB接口全部瘫了,键盘鼠标全部不能用,换到别人电脑上可以,吓尿了,以为本子主板挂了,但是发现插U盘竟然可以识别而且可以打开,感觉可能是静电问题,果然,彻底关机,拔掉电池,然后 ...
- 定制化JDK升级引发的离奇事件
1.背景 由于Oracle对外宣称Oracle JDK停止免费用于商用.公司法务部门评估之后担心后续会惹上光司,于是就开始了JDK升级-将所有服务Oracle修改为OpenJDK.上周开始微服务JDK ...
- imx6 usb otg config 配置
imx6 usb的host和slave配置,配置之后,安装gadget模块,就能够在host和slave之间切换. 参考文档: i.MX 6Dual/6Quad Linux Reference Man ...
- 第17章 EXTI—外部中断/事件控制器
第17章 EXTI—外部中断/事件控制器 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.co ...
- EP-N8530S USB WIFI 驱动移植
/*********************************************************************** * EP-N8530S USB WIFI 驱动移植 * ...
- 第17章 EXTI—外部中断/事件控制器—零死角玩转STM32-F429系列
第17章 EXTI—外部中断/事件控制器 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.co ...
- Flex+Struts2+JSON实现Flex和后台的HTTP Service请求
http://www.fengfly.com/plus/view-191093-1.html Flex+Struts2+JSON的后台代码我在这就不多说了.不懂得请看我写的上一篇文章<Strut ...
- 八成Java开发者解答不了的问题
统计数据来自Java“死亡”竞赛——一个针对开发者的迷你测验 几个月前,我们在一个小型网站上发布了一个称为Java“死亡竞赛”的新项目.测验发布后,超过20000位开发者参加了测验.网站以20道关于J ...
- Java基础知识强化14:Java死亡竞赛题目解析
一个小型网站上发布了一个称为Java“死亡竞赛”的新项目.测验发布后,超过20000位开发者参加了测验.网站以20道关于Java的多选题为主.我们得到了众多开发者的测验统计数据,今天,我们非常乐意 ...
随机推荐
- fiddler--手机https
1.访问fiddler的主讲加端口,比如我的是:http://192.168.1.103:8080 在点击fiddlerroot certificate 下载安装证书即可
- 查看ORACLE 数据库及表信息
-- 查看ORACLE 数据库中本用户下的所有表 SELECT table_name FROM user_tables; -- 查看ORACLE 数据库中所有用户下的所有表 select user,t ...
- SD卡协议规范学习
首先,本博文遵照SD卡协议3.01版本,最旧协议版本为1.10,但是协议是向下兼容的.SD卡Physical Layer Simplified Specification Version 3.01英文 ...
- Python GUI开发环境的搭建
原文:Python GUI开发环境的搭建 最近对Python的开发又来了兴趣,对于Python的开发一直停留在一个表面层的认识,玩的部分比较大. Python的入手简单,语法让人爱不释手,在网络通信方 ...
- 双线服务器和CDN的区别
双线机房是在国内这样特殊的网络环境下特有的产物,双线机房只能解决网通和电信访问瓶颈的问题,网络传输中的链路问题和其它各ISP互通问题还是没有得到解决. CDN的原理是边缘访问,访问者就近取数据,这样大 ...
- BZOJ 2002 [Hnoi2010]Bounce 弹飞绵羊(动态树)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2002 [题目大意] 给出一片森林,操作允许更改一个节点的父亲,查询一个节点的深度. [ ...
- swift菜鸟入门视频教程-03-字符串和字符
本人自己录制的swift菜鸟入门,欢迎大家拍砖.有什么问题能够在这里留言. 主要内容: 字符串字面量 初始化空字符串 字符串可变性 字符串是值类型 使用字符 计算字符数量 连接字符串和字符 字符串插值 ...
- c++中string::function集合
string append() 1.直接添加另一个完整的字符串: str1.append(str2); 2.添加另一个字符串的某一段字串: str1.append(str2, 11, 7); ...
- os基础
命令:指计算机用户要求计算机系统为其工作的指示: 命令的表示形式: 1.字符形式: 2.菜单形式: 3.图形形式: 命令的使用方式:1. 脱机使用方式 off_line 2.联机使用方式 ...
- android开发环境安装记录
首先进入http://developer.android.com/sdk/index.html, Google提供了一个新的DeveloperTools,即:ADT Bundle,中文翻译之:ADT捆 ...