找回密码
 立即注册
查看: 694|回复: 1

STC15W4K56S4 升级到STC32G12K128的问题

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-05-19 16:34:01

5

主题

21

回帖

115

积分

注册会员

积分
115
发表于 2024-4-19 21:52:44 | 显示全部楼层 |阅读模式
以前的项目用的是STC15W4K56S4,用的资源比较多,flash和ram都要满了,近期增加功能,厂家建议使用STC32G12K128,做完硬件调试程序时发现下面问题:
1、原本C51下的定义,
文件一中:u8 xdata sys_counter1=0,sys_counter2=0,sys_counter3=0,sys_counter4=0;
文件二中:extern u8 xdata sys_counter1,sys_counter2,sys_counter3,sys_counter4;
上面的定义时被允许的,但是在C251编译器下就报错
修改为如下就正常,
文件一中:u8 xdata sys_counter1,sys_counter2,sys_counter3,sys_counter4;
文件二中:extern u8 xdata sys_counter1,sys_counter2,sys_counter3,sys_counter4;
即定义的时候不能赋值,请问大佬们这是为啥?



2、因系统需要,原T0定时器25us中断一次,中断函数中对若干变量的计数,移植到STC32G12K128后,会溢出,表现的现象要么是死机要么是重复启动,当中断函数只处理少量语句时,可以正常工作

请问各位大佬,这是什么原因?刚才查了两种架构的区别和指令集的区别,没看出所以然来。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:441
  • 最近打卡:2025-06-17 01:35:04
已绑定手机

17

主题

714

回帖

1245

积分

金牌会员

积分
1245
发表于 2024-4-20 07:42:21 | 显示全部楼层
变量在定义时赋值应该是可以的
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-17 20:50 , Processed in 0.159736 second(s), 54 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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