找回密码
 立即注册
查看: 615|回复: 7

WARNING L57: UNCALLED FUNCTION 新建自动下载工程编译报错

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-03-02 16:47:45

11

主题

1

回帖

67

积分

注册会员

积分
67
发表于 2023-12-2 23:59:56 | 显示全部楼层 |阅读模式
本帖最后由 叶子 于 2023-12-3 00:04 编辑

看这个帖子
主要我在论坛搜索“WARNING L57: UNCALLED FUNCTION”关键字,新手真找不到。
按这个标题补一下

解决方法如下帖:
引入了USB库之后为什么会产生警告-已解决
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=4666
(出处: 国芯论坛-STC全球32位8051爱好者互助交流社区)

REMOVEUNUSED



网友的解决方法

网友的解决方法

报错情况如下

报错情况如下

报错情况

报错情况
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:352
  • 最近打卡:2025-05-06 09:32:58
已绑定手机

31

主题

113

回帖

1686

积分

荣誉版主

Rbowlystar

积分
1686
发表于 2023-12-3 01:27:55 | 显示全部楼层
报错原因:

这是程序中存在定义但未被调用的函数导致的警告;
Note:警告不会影响程序的编译,但如果出现这个,建议查看一下程序中有哪些函数代码会编译但其实实际上并未被调用;

解决办法:

第一种就是像那位版主提供的方法,直接在系统里面把这个类型的警告给禁了,但是这样也会有一点副作用,就是会照成单片机内存资源的浪费,这些程序实际上还是被编辑到了单片机的内存里面,但是你实际上没有使用,所用编译的时候,就会提示你。如果你禁用这个警告,那么以后你在本工程下编写的子程序,如果出现了类似的情况,编译的时候也不会提醒,就会照成更大的资源浪费。

第二种方式(推荐),就是找到那些未引用的函数,把它注释掉,用到的时候,再取消注释。既不会造成资源浪费,也可以发现自己编写的程序有那些不足的地方。

我这里编译的时候就会出现内存不够的警告!!!

应该导致有些程序没有编译进去(因为内存不够了),所以又引发一系列的报错,导致编译失败。

L14_内存不足的问题_2023-12-03_00-29-17.png    L57_函数未引用的问题_2023-12-03_00-30-30.png

L128和L127报错_2023-12-03_00-34-58.png

然后我到编译器里面把 内存模式 从 tiny 改成 xsmall 模式,就不会报错啦

修改内存模式(大小)_2023-12-03_00-37-04.png

未报错_2023-12-03_00-38-47.png

然后,(搞到这里我才发现)因为官方没有给出c文件,而是直接给出编译好的lib文件(虽然我也不太清楚什么是lib文件),所以没办法去注释掉那些程序。ps:我以为直接注释掉 stc32_stc8_usb.h 这个头文件里面的声明函数就可以,结果发现没有用,编译的时候还是有警告。

USB的LIB二进制数据_2023-12-03_00-55-48.png

stc32_stc8_usbh_2023-12-03_01-00-40.png

至于官方的76号文件程序编译的时候不会报错,可能是以为那个主程序里面实际上是用到了所有这些程序的,所以没有警告。

官方的76号文件主程序_2023-12-03_00-55-09.png

总之,我还是不太建议使用第一种方式。如果你这个工程已经全部完成了,不需要再修改了,然后觉得这些警告有些碍眼,那屏蔽了也就无所谓了。

注:本人也是小白一个,以上内容仅为个人猜测哈










回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2023-12-3 09:21:05 | 显示全部楼层
官方库编译的不严谨, 建议官方对每个函数, 分开独立建个文件, 再重新编译一下, 即可.

什么提示警告都没有了, 用不到的程序不会装载.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:394
  • 最近打卡:2025-05-06 07:53:41

45

主题

381

回帖

1587

积分

金牌会员

静坐常思己过,闲谈莫论人非

积分
1587
发表于 2023-12-3 12:15:46 | 显示全部楼层
LAO*** 发表于 2023-12-3 09:21
官方库编译的不严谨, 建议官方对每个函数, 分开独立建个文件, 再重新编译一下, 即可.

什么提示警告都没有 ...

库里面的函数定义应该不少,分开文件夹建立就不会出现警告了吗?
处事要代人所想,读书需切己用功
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2023-12-3 12:21:40 | 显示全部楼层
reng*** 发表于 2023-12-3 12:15
库里面的函数定义应该不少,分开文件夹建立就不会出现警告了吗?

是的, 这是 Keil  C51/C251 , 建立独立库的标准写法.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2023-12-3 12:22:33 | 显示全部楼层
不是分开文件夹, 是每个函数, 单独建个文件,
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:394
  • 最近打卡:2025-05-06 07:53:41

45

主题

381

回帖

1587

积分

金牌会员

静坐常思己过,闲谈莫论人非

积分
1587
发表于 2023-12-3 12:26:31 | 显示全部楼层
LAO*** 发表于 2023-12-3 12:22
不是分开文件夹, 是每个函数, 单独建个文件,

官方给出的是一个库文件,要是每个函数都是一个库,未免也太复杂了吧
处事要代人所想,读书需切己用功
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2023-12-4 06:36:18 | 显示全部楼层
reng*** 发表于 2023-12-3 12:26
官方给出的是一个库文件,要是每个函数都是一个库,未免也太复杂了吧

不是每个函数都要一个库,可将多个独立文件, 一起编译成一个库 .这个库包含 n 个独立函数库
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-6 16:42 , Processed in 0.119440 second(s), 103 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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