TA的每日心情 | 郁闷 2024-4-19 21:57 |
---|
签到天数: 1 天 [LV.1]初来乍到
新手上路
- 积分
- 29
|
以前的项目用的是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后,会溢出,表现的现象要么是死机要么是重复启动,当中断函数只处理少量语句时,可以正常工作
请问各位大佬,这是什么原因?刚才查了两种架构的区别和指令集的区别,没看出所以然来。
|
|