找回密码
 立即注册
查看: 74|回复: 5

32G12K128仿真时出现警告

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-04-25 15:52:45
已绑定手机

2

主题

2

回帖

62

积分

注册会员

积分
62
发表于 2025-4-16 10:21:43 | 显示全部楼层 |阅读模式
32G12K128仿真时出现以下警告:
*** WARNING: application uses framesize 4
                      target uses framesize 2 !

用的是USB仿真,程序在AI8H8K64U没问题,用C251编译能通过,仿真时程序运行混乱,每次仿真结果还不一样,不知道是何原因,请大神赐教指点迷津!

回复

使用道具 举报 送花

3

主题

1160

回帖

1031

积分

等待验证会员

积分
1031
发表于 2025-4-16 10:23:00 | 显示全部楼层
在STC32G12K128仿真过程中出现的警告信息“WARNING: application uses framesize 4, target uses framesize 2!”表明应用程序与目标设备的帧大小(framesize)不匹配。这种不匹配可能导致程序在仿真时运行混乱,甚至每次仿真结果不一致。以下是对该问题的详细分析和可能的解决方案。

1. 帧大小(Framesize)的概念
帧大小是指在函数调用时,用于保存局部变量和函数参数的栈帧大小。不同的编译器或目标设备可能对帧大小的定义和处理方式不同。在C251编译器中,帧大小通常由编译器根据函数的局部变量和参数自动计算得出。

2. 警告信息的含义
Application uses framesize 4:应用程序在编译时,编译器为某些函数分配的栈帧大小为4字节。
Target uses framesize 2:目标设备(STC32G12K128)在仿真或运行时,期望的栈帧大小为2字节。

这种不匹配可能导致栈帧的分配和释放出现问题,进而影响程序的正常运行。

3. 可能的原因
编译器设置问题:C251编译器在编译STC32G12K128时,可能未正确配置目标设备的帧大小。
目标设备差异:STC32G12K128与STC8H8K64U在硬件架构或内存管理上存在差异,导致帧大小不一致。
仿真器配置问题:USB仿真器在仿真STC32G12K128时,可能未正确识别或处理目标设备的帧大小。

4. 解决方案
4.1 检查编译器设置
确保C251编译器在编译STC32G12K128时,正确配置了目标设备的帧大小。可以尝试以下步骤:
在编译器设置中,明确指定目标设备的帧大小为2字节。
检查编译器的优化选项,确保没有启用可能导致帧大小不一致的优化。

4.2 调整应用程序代码
如果编译器设置无法解决问题,可以尝试调整应用程序代码,减少局部变量或函数参数的使用,以降低帧大小。具体方法包括:
将局部变量声明为全局变量,减少栈帧的使用。
减少函数的参数数量,或使用指针传递参数。

4.3 检查仿真器配置
确保USB仿真器在仿真STC32G12K128时,正确识别了目标设备的帧大小。可以尝试以下步骤:
更新仿真器的固件或驱动程序,确保其支持STC32G12K128。
在仿真器配置中,明确指定目标设备的帧大小为2字节。

4.4 使用调试工具
使用调试工具(如Keil uVision)对程序进行单步调试,观察栈帧的分配和释放情况,找出导致程序混乱的具体原因。

5. 总结
STC32G12K128仿真时出现的帧大小不匹配警告,可能导致程序运行混乱。通过检查编译器设置、调整应用程序代码、检查仿真器配置以及使用调试工具,可以有效解决该问题。建议从编译器设置入手,逐步排查和解决问题,确保程序在目标设备上正常运行。

希望以上分析和解决方案能帮助您解决仿真过程中遇到的问题。如有进一步疑问,欢迎继续交流。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:162
  • 最近打卡:2025-05-01 06:56:44
已绑定手机

56

主题

1319

回帖

2938

积分

荣誉版主

无情的代码机器

积分
2938
发表于 2025-4-16 11:11:38 | 显示全部楼层
是不是勾选了 截图202504161111192459.jpg
之后没重新编译下载?

点评

+1  发表于 2025-4-16 11:14
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2025-4-16 11:19:54 | 显示全部楼层
USB仿真参考这个帖子步骤执行,特别注意第5步的设置,不要漏了:

32位8051如何仿真,32G12K128自带硬件USB直接仿真,视频讲解回放
https://www.stcaimcu.com/thread-3157-1-1.html
(出处: 国芯技术交流网站)

至于警告没什么影响,可以勾选这个选项试试:
截图202504161117554265.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-04-25 15:52:45
已绑定手机

2

主题

2

回帖

62

积分

注册会员

积分
62
发表于 2025-4-16 13:33:30 | 显示全部楼层
把勾选去掉,仿真不报错,手册上建议勾选
截图202504161332189029.jpg
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 02:06 , Processed in 0.157925 second(s), 85 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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