OpenEdv-开源电子网

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

分享一下freemodbus移植到UCOS上的死机问题

[复制链接]

8

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
421
金钱
421
注册时间
2016-11-19
在线时间
111 小时
发表于 2017-3-9 09:31:10 | 显示全部楼层 |阅读模式
移植的modbus裸机上跑了一年多没碰见过,在UCOSIII上任务少的时候也没问题,在做到16个线程的时候,modbus由于是和网络通信,网络不好,断网的情况下程序就跑死。1.跟踪调试,死在  BEAB BKPT 0xAB
   网上说这是使用了半主机模式造成的,勾选上微库就行了,但是由于modbus使用了assert这个函数,最开始移植的时候就没有使用微库。
   那就只能按照网上的说法,增加了以下函数,在不使用微库的情况下避免使用半主机模式
#include "stdio.h"
#pragma import(__use_no_semihosting_swi)
#pragma import(__use_no_semihosting)
struct __FILE  
{
  int handle;
};
FILE __stdout;
void _sys_exit(int ch)
{
  ch=ch;
}
void _ttywrch(int ch)
{
  ch=ch;
}

2.跑了一段时间后还是死机,这次又死在hardfault里面,而且这时候的死机根本就跟踪不到是死在哪里,这TM就很尴尬了,网上的方法试遍了都不行,眼看项目交期就要到了
我都准备把这个项目重新写裸机程序了,突然想到最开始死在 BEAB BKPT 0xAB 的时候还出现过一个函数  __aeabi_assert,在程序里全局搜索,发现在assert.h文件里只有引用没有定义,
那就死马当活马医了,在上面的文件里加入以下函数,跑了一星期人为制造了各种异常,再没死机
void __aeabi_assert(const char * x1, const char * x2, int x3)
{
  x1=x1;
  x2=x2;
  x3=x3;       
}

3.经验证,只需要定义这一个函数  __aeabi_assert就能避免死机问题,而且有强迫症的同学,为了避免出现警告,建一个retarget.c文件,函数定义在此文件里面
4.不要问我为什么,其实我也不知道,时间来得及的话还是自己写modbus协议吧,写那3,4个常用的功能码就行,移植官方的总会有这样那样的问题,费劲!!




正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7381

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14979
金钱
14979
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-3-9 09:47:10 | 显示全部楼层
回复 支持 反对

使用道具 举报

ludq 该用户已被删除
发表于 2017-3-9 14:55:24 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

1

主题

12

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2017-3-23
在线时间
6 小时
发表于 2017-3-23 17:17:20 | 显示全部楼层
顶,多谢分享
>>> 友情推荐 >>> 《Modbus软件开发实战指南》
清华出版社: http://t.cn/RiFOFSc
回复 支持 反对

使用道具 举报

9

主题

45

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
234
金钱
234
注册时间
2014-8-13
在线时间
69 小时
发表于 2017-4-6 14:50:31 | 显示全部楼层
不错,我也有移植过,先mark
回复 支持 反对

使用道具 举报

8

主题

74

帖子

0

精华

初级会员

Rank: 2

积分
176
金钱
176
注册时间
2016-6-29
在线时间
34 小时
发表于 2017-4-7 17:59:15 | 显示全部楼层
mark一下
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2019-12-11
在线时间
3 小时
发表于 2020-5-16 11:17:38 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-6-9 19:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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