OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4863|回复: 3

UCOS-III和机智云结合的问题,小白求助~

[复制链接]

3

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2019-4-29
在线时间
14 小时
发表于 2019-5-15 17:40:19 | 显示全部楼层 |阅读模式
10金钱
之前发现基于ucos-iii系统的代码里只要有 “ printf("XXXXX\r\n");  ”这句话,就会出现代码刚下载到板子上可以正常运行,一按复位就死机了,再也不能跑了。后来删除了所有的printf语句,程序就可以正常运行了,且复位后也正常。
然后我往ucosiii系统里加入机智云的时候又发现了同样的问题,一加入如下代码就会同样出现只有下载到板子的第一次系统能跑,按复位后就没反应了。
[mw_shl_code=c,true]void Gizwits_Init(void)
{       
        TIM3_Int_Init(9,7199);//1MS系统定时
  usart3_init(9600);//WIFI初始化
        memset((uint8_t*)¤tDataPoint, 0, sizeof(dataPoint_t));//设备状态结构体初始化
        gizwitsInit();//缓冲区初始化
}[/mw_shl_code]

注:printf就是原子的printf 代码,个人感觉是memset((uint8_t*)¤tDataPoint, 0, sizeof(dataPoint_t));这句代码的原因


哪个大神能给我解答一下这是为嘛了?有没有解决的办法呢?   --------小弟感激不尽!~先谢谢大佬了

最佳答案

查看完整内容[请看2#楼]

已解决,分享一下。 机智云product和protocol中有大量的应用了类似于GIZWITS_LOG("MCU2WiFi[%4d:%4d]: ", gizGetTimerCount(), len);的代码,GIZWITS_LOG就是宏定义的printf,我把所有的GIZWITS_LOG语句删除之后可以正常运行了,但代价就是机智云没法返回错误代码。机智云发生错误时会比较棘手。最好的办法是自己写一个代替printf的代码,取代GIZWITS_LOG,这样就完美解决啦。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2019-4-29
在线时间
14 小时
 楼主| 发表于 2019-5-15 17:40:20 | 显示全部楼层
已解决,分享一下。
机智云product和protocol中有大量的应用了类似于GIZWITS_LOG("MCU2WiFi[%4d:%4d]: ", gizGetTimerCount(), len);的代码,GIZWITS_LOG就是宏定义的printf,我把所有的GIZWITS_LOG语句删除之后可以正常运行了,但代价就是机智云没法返回错误代码。机智云发生错误时会比较棘手。最好的办法是自己写一个代替printf的代码,取代GIZWITS_LOG,这样就完美解决啦。
回复

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4306
金钱
4306
注册时间
2018-6-30
在线时间
808 小时
发表于 2019-5-15 18:13:25 | 显示全部楼层
帮顶!
回复

使用道具 举报

3

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2019-4-29
在线时间
14 小时
 楼主| 发表于 2019-5-15 19:34:20 | 显示全部楼层
大佬快来~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 22:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表