OpenEdv-开源电子网

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

程序进入HardFault_Handler(),板子是407,例程用的是原子的netcoon udp实验。

[复制链接]

1

主题

6

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2018-6-14
在线时间
2 小时
发表于 2018-6-14 13:50:15 | 显示全部楼层 |阅读模式
10金钱
原因是这样的,项目需要用到jansson字符串,移植后编译报错 _stdout 在stdio_streams.o and usart.o中重复定义,也就是发生了冲突。也参考了论坛的解决办法,就把串口#if 1
#pragma import(__use_no_semihosting)            
//标准库需要的支持函数                 
struct __FILE
{
        int handle;


};


FILE __stdout;      
//定义_sys_exit()以避免使用半主机模式   
_sys_exit(int x)
{
        x = x;
} &from=discuz&Menu=yes]
这部分代码注释掉,使用微库(勾选USE MicroLIB)编译通过,但程序就会死在HardFault_Handler()

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

使用道具 举报

1

主题

6

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2018-6-14
在线时间
2 小时
 楼主| 发表于 2018-6-14 13:53:33 | 显示全部楼层
用同样的方法在串口通信实验里注释那一部分代码 勾选微库,串口可以收发数据。也试了一下直接在netconn udp实验里注释 那一部分代码,勾选微库,程序同样死在HardFault_Handler()。
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2018-6-14
在线时间
2 小时
 楼主| 发表于 2018-6-14 13:58:13 | 显示全部楼层
看了其他地方的调试仿真解决办法,仿真就是图上这样。
图片1.png
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2018-6-14
在线时间
2 小时
 楼主| 发表于 2018-6-14 14:00:57 | 显示全部楼层
本帖最后由 18774818221 于 2018-6-14 14:03 编辑

实在是不知道要怎么解决了,特来向大家求助。把修改后的netcoon udp实验代码附上

网络实验7 NETCONN_UDP实验.rar

16.53 MB, 下载次数: 65

回复

使用道具 举报

1

主题

6

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2018-6-14
在线时间
2 小时
 楼主| 发表于 2018-6-14 14:03:58 | 显示全部楼层
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165287
金钱
165287
注册时间
2010-12-1
在线时间
2107 小时
发表于 2018-6-15 02:03:40 | 显示全部楼层
在我们开发板用正常么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2018-6-14
在线时间
2 小时
 楼主| 发表于 2018-6-15 19:31:51 | 显示全部楼层
正点原子 发表于 2018-6-15 02:03
在我们开发板用正常么?

就是在开发板上跑的程序,我要使用jansson字符串就必须要消除_stdout 在stdio_streams.o and usart.o中重复定义这个错误,就要注释串口一部分代码,勾选USE MicroLIB,这样的话程序就会进入HardFault_Handler()。
这个错误跟我的jansson字符串没关系(我用netconn udp实验直接注释串口勾选USE MicroLIB,程序就会进入HardFault_Handler())
简而言之就是原子的例程中串口使用微库就会进入HardFault_Handler()。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165287
金钱
165287
注册时间
2010-12-1
在线时间
2107 小时
发表于 2018-6-17 01:39:48 | 显示全部楼层
18774818221 发表于 2018-6-15 19:31
就是在开发板上跑的程序,我要使用jansson字符串就必须要消除_stdout 在stdio_streams.o and usart.o中重 ...

勾选微库应该也可以才对,你试试我们其他例程,不带网络的,勾选微库,你看运行部?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-2 06:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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