OpenEdv-开源电子网

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

Library reports error: __use_no_semihosting was request

[复制链接]

6

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2012-1-9
在线时间
0 小时
发表于 2012-1-9 17:52:32 | 显示全部楼层 |阅读模式
大家有没有遇到这种错误!!!纳闷!
TEST.axf: Error: L6915E: Library reports error: __use_no_semihosting was requested, but _ttywrch was referenced
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2017-7-28
在线时间
7 小时
发表于 2017-10-27 13:50:19 | 显示全部楼层
在MDK Options 选项 Target选项卡下勾选Use MicroLIB,就好了
回复 支持 5 反对 1

使用道具 举报

13

主题

186

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2016-6-30
在线时间
97 小时
发表于 2017-3-28 11:22:39 | 显示全部楼层
Lester 发表于 2016-12-14 13:36
LZ可以参考这里的解答,很方便,加一句话就行了。http://blog.csdn.net/r709651108/article/details/517903 ...

谢了加上
//__use_no_semihosting was requested, but _ttywrch was
_ttywrch(int ch)
{
ch = ch;
}
解决了
回复 支持 1 反对 1

使用道具 举报

3

主题

10

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2013-11-8
在线时间
0 小时
发表于 2013-11-18 10:17:30 | 显示全部楼层
或许是主函数包含了stdlib头文件与原子开发板定义的库函数冲突,看看主函数中是否调用了stdlib中的函数,比如malloc、free,改用静态分配内存空间。。。
回复 支持 2 反对 0

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2013-8-9
在线时间
0 小时
发表于 2013-8-17 10:30:40 | 显示全部楼层
回复【5楼】shenxiaolin_mail:
---------------------------------
你说反了,选上才没问题
回复 支持 2 反对 0

使用道具 举报

0

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
154
金钱
154
注册时间
2015-12-26
在线时间
41 小时
发表于 2016-12-14 13:36:41 | 显示全部楼层
LZ可以参考这里的解答,很方便,加一句话就行了。http://blog.csdn.net/r709651108/article/details/51790322
回复 支持 1 反对 0

使用道具 举报

76

主题

355

帖子

0

精华

高级会员

Rank: 4

积分
671
金钱
671
注册时间
2012-9-19
在线时间
5 小时
发表于 2013-6-20 11:41:00 | 显示全部楼层
我用WarShip开发板移植了一个MODBUS协议。发现老出现
Build target 'Template'
compiling usart.c...
linking...
..\OBJ\Template.axf: Error: L6915E: Library reports error: __use_no_semihosting was requested, but _ttywrch was referenced
Target not created

然后我发现原子的usart。c 里有这么一句话,我注视掉就OK没报错了。。。
//////////////////////////////////////////////////////////////////
//加入以下代码,支持printf函数,而不需要选择use MicroLIB  
#if 1
//#pragma import(__use_no_semihosting) 


当然感觉是和串口的printf 有关




具有资深STM32点灯技术,
回复 支持 1 反对 0

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-10-12 22:48:43 | 显示全部楼层
回复【8楼】jarek008:
---------------------------------
为什么要注释掉呢?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 1 反对 0

使用道具 举报

1

主题

60

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
227
金钱
227
注册时间
2010-12-14
在线时间
65 小时
发表于 2013-1-16 19:27:30 | 显示全部楼层
将usart.c 中支持printf 部分去掉就行了.
回复 支持 1 反对 0

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-1-9 18:05:34 | 显示全部楼层
碰到过,但是不记得是如何解决的去了.
貌似是调用了非法的东西.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

1436

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2209
金钱
2209
注册时间
2010-12-16
在线时间
190 小时
发表于 2012-1-10 01:23:01 | 显示全部楼层
用了RTX吗?需要把microlib勾上,或者做一个retarget.c,详见help的Create New RTX Application主题。
技术讨论请发帖 , 需要我回复请点左下的 < 回复 > 让系统通知我 . 本人不通过其他方式返回任何参数.
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2012-7-29
在线时间
2 小时
发表于 2013-1-21 17:17:05 | 显示全部楼层
..\List\****.axf: Error: L6915E: Library reports error: __use_no_semihosting_swi was requested, but a semihosting fputc was linked in

这个错误是当你选择了 “use micro lib” 那个选项造成的,将那个选型去掉就可以正常运行了
回复 支持 反对

使用道具 举报

2

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2013-9-20
在线时间
12 小时
发表于 2013-10-12 16:04:11 | 显示全部楼层
为什么我把下面的内容注释掉,程序就不能运行了呢 ,不能进入主函数


//加入以下代码,支持printf函数,而不需要选择use MicroLIB  
#if 1
//#pragma import(__use_no_semihosting
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2013-2-24
在线时间
4 小时
发表于 2014-2-11 22:39:14 | 显示全部楼层
回复【7楼】fbwfbi:
---------------------------------
是,我添加了一句
pGPIO_InitStructure=malloc(sizeof(GPIO_InitTypeDef));就提示我所示错误,勾选上Use MictrLIB,错误就消失了
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2013-2-24
在线时间
4 小时
发表于 2014-2-11 22:41:59 | 显示全部楼层
回复【11楼】nciaelcf:
---------------------------------
再想请问,就是结构体指针在定义的时候不指向任何东西,是不是不能用啊
回复 支持 反对

使用道具 举报

sailorxing 该用户已被删除
发表于 2014-2-19 15:58:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

4

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2013-9-30
在线时间
0 小时
发表于 2014-3-8 10:43:19 | 显示全部楼层
回复【6楼】敌害:

我用WarShip开发板移植了一个MODBUS协议。发现老出现
Build target 'Template'
compiling usart.c...
linking...
..\OBJ\Template.axf: Error: L6915E: Library reports error: __use_no_semihosting was requested, but _ttywrch was referenced
Target not created
然后我发现原子的usart。c 里有这么一句话,我注视掉就OK没报错了。。。
//////////////////////////////////////////////////////////////////
谢谢哥们,我也碰到这个问题了,移植FreeModbus时碰到的
//加入以下代码,支持printf函数,而不需要选择use MicroLIB   
#if 1
//#pra
......
---------------------------------
好好学习,天天向上
回复 支持 反对

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2014-3-18
在线时间
0 小时
发表于 2014-3-20 23:02:10 | 显示全部楼层

修改一下retarget.c就行,照着keil里面的实现C:\Keil\ARM\Startup\retarget.c

一般是定义这两个变量就ok了

我的ARM7 官方代码也报这个错误

FILE __stdout;
FILE __stdin;                                                     

回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2013-2-24
在线时间
4 小时
发表于 2014-6-13 15:23:58 | 显示全部楼层
回复【13楼】sailorxing:
---------------------------------
的确是,编译是不会提示错误或警告,但运行结果不会按预想的那样。
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2015-1-3
在线时间
0 小时
发表于 2015-1-3 10:40:53 | 显示全部楼层
或许是主函数包含了stdlib头文件与原子开发板定义的库函数冲突,看看主函数中是否调用了stdlib中的函数,比如malloc、free,改用静态分配内存空间。

我的是这个原因,解决了
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2015-3-13
在线时间
1 小时
发表于 2015-6-19 10:56:37 | 显示全部楼层
5楼正解,鉴定完毕
回复 支持 反对

使用道具 举报

4

主题

83

帖子

1

精华

高级会员

Rank: 4

积分
660
金钱
660
注册时间
2013-10-21
在线时间
88 小时
发表于 2015-8-22 15:05:24 | 显示全部楼层
回复【7楼】fbwfbi:
---------------------------------
对哦 正解,勾上用原子的printf函数 就不会报错了
回复 支持 反对

使用道具 举报

5

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2015-8-26
在线时间
0 小时
发表于 2015-10-7 20:17:19 | 显示全部楼层
我也遇到此问题   在用malloc函数定义一个数组长度不确定的数组时出现警告,然后加入#include “stdlib。.h"后警告消失,但是编译遇到错误,也是用五楼的方法解决的。但是如果还想用printf函数怎么办 ,这样一搞printf函数用不了。
   我的数组时这样定义的:
   int n;
   float*A=(float*)malloc(n*sizeof(float));
   还有一个问题,这个数组不能定义成全局变量,数组存的数据比较多,查阅资料说局部变量是在堆栈中分配内存,不知道会不会溢出。
   求原子哥和各路大神指点一下。
回复 支持 反对

使用道具 举报

80

主题

268

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2014-8-11
在线时间
84 小时
发表于 2016-8-8 02:08:22 | 显示全部楼层
我把c/c++中c99改成c90就ok了
我是一只菜鸟,但我会大鹏展翅
回复 支持 反对

使用道具 举报

4

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2016-1-25
在线时间
75 小时
发表于 2016-10-10 10:40:46 | 显示全部楼层
敌害 发表于 2013-6-20 11:41
我用WarShip开发板移植了一个MODBUS协议。发现老出现
Build target 'Template'
compiling usart.c...

还有后面的#endif也要注视掉
回复 支持 反对

使用道具 举报

19

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
253
金钱
253
注册时间
2015-4-29
在线时间
38 小时
发表于 2017-3-14 15:40:42 | 显示全部楼层
正解,勾上用原子的printf函数 就不会报错了
回复 支持 反对

使用道具 举报

0

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2016-8-23
在线时间
32 小时
发表于 2017-7-1 17:09:02 | 显示全部楼层
谢谢6楼。我也是移植MODBUS的时候出现了这个问题。完美解决。
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2017-8-7
在线时间
1 小时
发表于 2017-8-29 16:18:00 | 显示全部楼层
回复 支持 反对

使用道具 举报

41

主题

226

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
480
金钱
480
注册时间
2017-7-29
在线时间
233 小时
发表于 2018-3-14 18:12:50 | 显示全部楼层
23楼完美解决
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2018-4-10
在线时间
3 小时
发表于 2018-4-19 09:56:32 | 显示全部楼层
我调用了stdlib.h下的remove函数,然后按七楼的把use microlib 勾上问题就解决了
回复 支持 反对

使用道具 举报

5

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2018-5-26
在线时间
20 小时
发表于 2018-11-12 11:23:04 | 显示全部楼层
ddfm 发表于 2017-10-27 13:50
**** 作者被禁止或删除 内容自动屏蔽 ****

没错,我这样以后这个错误就不见了
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2022-3-11
在线时间
7 小时
发表于 2023-4-19 22:45:52 | 显示全部楼层
cancan2013 发表于 2013-11-18 10:17
或许是主函数包含了stdlib头文件与原子开发板定义的库函数冲突,看看主函数中是否调用了stdlib中的函数,比 ...

请问如果项目就是需要用malloc函数应该怎么办呢
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 11:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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