找回密码
 立即注册
查看: 779|回复: 12

C251的USB和REMOVEUNUSED真是鱼与熊掌

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:392
  • 最近打卡:2025-05-01 15:00:39

24

主题

305

回帖

2556

积分

荣誉版主

积分
2556
发表于 2024-7-15 13:06:37 | 显示全部楼层 |阅读模式
本帖最后由 大明狐 于 2024-7-15 13:09 编辑

自从上周发现用C251编译带USB的LIB库文件的程序的时候
(只要包含HID或者CDC的LIB的)

如果Misc control设置的是“REMOVEUNUSED”

遇到除以8除以4之类除法运算的语句时
会莫名其妙多出一些复位指令
造成单片机重启
使用移位的方法代替除号运算,可以解决这个问题

然后今天又发现取负数的语句也会产生重启指令
num是float型,这下不知道该怎么改了
QQ截图20240715125753.jpg

{:5_337:}
=====================================
只要不用LIB库文件,或者去掉“REMOVEUNUSED”
这些情况就不会发生

鱼与熊掌不可兼得,
现在只能要么暂时放弃USB自动下载,还是用手动连接HID;
要么暂时放弃“REMOVEUNUSED”,尽量控制程序大小。

不过反正8051的内存也够折腾,暂时选后者{:5_316:}









能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:518
  • 最近打卡:2025-05-01 05:52:49
已绑定手机

46

主题

1694

回帖

2540

积分

金牌会员

积分
2540
发表于 2024-7-15 14:20:02 | 显示全部楼层
你这是踩了一个又一个坑啊
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-7-15 14:23:41 | 显示全部楼层
你别加LIB,加入C源码, 试试?  
各大实验箱都有源码,不满意的地方还可以自己改

点评

上个贴子里最后就用了不用LIB的那种。 但是资源下载立的USB库里只有LIB的。  详情 回复 发表于 2024-7-15 15:20
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:392
  • 最近打卡:2025-05-01 15:00:39

24

主题

305

回帖

2556

积分

荣誉版主

积分
2556
发表于 2024-7-15 15:20:48 | 显示全部楼层
tzz1*** 发表于 2024-7-15 14:23
你别加LIB,加入C源码, 试试?  
各大实验箱都有源码,不满意的地方还可以自己改 ...

上个贴子里最后就用了不用LIB的那种。
但是资源下载立的USB库里只有LIB的。

点评

有开源代码的, [attachimg]51499[/attachimg] [attachimg]51500[/attachimg] 这个是以源码形式呈现的: https://www.stcai.com/syx 读懂以后,可能需要自己稍加修饰, 我没有用过HID调试, 但是我知道, 如果  详情 回复 发表于 2024-7-15 16:23
能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:422
  • 最近打卡:2025-05-01 09:54:52
已绑定手机

19

主题

3190

回帖

4866

积分

论坛元老

积分
4866
发表于 2024-7-15 15:38:34 来自手机 | 显示全部楼层
要是能开源就好了,不用那么麻烦
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-7-15 16:23:27 | 显示全部楼层
本帖最后由 tzz1983 于 2024-7-15 16:36 编辑
大*** 发表于 2024-7-15 15:20
上个贴子里最后就用了不用LIB的那种。
但是资源下载立的USB库里只有LIB的。 ...

有开源代码的,
截图202407151616162364.jpg


截图202407151617403014.jpg


这个是以源码形式呈现的: https://www.stcai.com/syx

读懂以后,可能需要自己稍加修饰,

我没有用过HID调试, 但是我知道,
如果把USB-CDC的源码改为PC与MCU之间的通信是很容易的,
就是MCU收到USB数据后, 不需要真的从UARTx发出, 就是直接利用(截胡


点评

上个贴子里最后用的就是这个,还是很早之前用过的,一直都很正常。 最近在试用LIB的方式,才发现的 会和C251Keil闹别扭的问题。  详情 回复 发表于 2024-7-15 18:20
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-7-15 17:17:52 | 显示全部楼层
库函数就是lib,试试直接操作寄存器
还有这个问题也要注意一下:


https://www.stcaimcu.com/forum.php?mod=viewthread&tid=6287


截图202407151717177265.jpg

DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:392
  • 最近打卡:2025-05-01 15:00:39

24

主题

305

回帖

2556

积分

荣誉版主

积分
2556
发表于 2024-7-15 18:20:56 | 显示全部楼层
tzz1*** 发表于 2024-7-15 16:23
有开源代码的,

上个贴子里最后用的就是这个,还是很早之前用过的,一直都很正常。

最近在试用LIB的方式,才发现的 会和C251Keil闹别扭的问题。
能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:121
  • 最近打卡:2025-05-01 19:17:52
已绑定手机

19

主题

208

回帖

492

积分

中级会员

积分
492
发表于 2024-7-15 23:11:53 | 显示全部楼层
难不成还是生成库的时候控制操作 和 REMOVEUNUSED 之间还有不一致的地方?  如果有库的源码,那大家多试试就能判断出来了, 可惜STC的库不开源;
实际上,反过来想,上面使用 69-HID... 例程 在C251相同设置下编译,如果不产生 楼主遇到的 异常编译 的问题,也已经说明问题所在了吧? 楼主你觉得呢

点评

就是这个意思啊,所以记录一下,以后好避坑  详情 回复 发表于 2024-7-16 09:00
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:392
  • 最近打卡:2025-05-01 15:00:39

24

主题

305

回帖

2556

积分

荣誉版主

积分
2556
发表于 2024-7-16 09:00:03 | 显示全部楼层
机灵*** 发表于 2024-7-15 23:11
难不成还是生成库的时候控制操作 和 REMOVEUNUSED 之间还有不一致的地方?  如果有库的源码,那大家多试试就 ...

就是这个意思啊,所以记录一下,以后好避坑
能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 02:19 , Processed in 0.125752 second(s), 107 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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