qqzgq 发表于 2024-4-19 21:52:44

STC15W4K56S4 升级到STC32G12K128的问题

以前的项目用的是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后,会溢出,表现的现象要么是死机要么是重复启动,当中断函数只处理少量语句时,可以正常工作

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

小飞侠 发表于 2024-4-20 07:42:21

变量在定义时赋值应该是可以的
页: [1]
查看完整版本: STC15W4K56S4 升级到STC32G12K128的问题