打印

unsigned char变为 unsigned int 后程序跑飞了,完全不能执行

[复制链接]
2487|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
aimie|  楼主 | 2013-8-21 20:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁有遇到类似的情况,用的是STC12C5A32.。。。介绍说有1200字节的RAM 应该不至于这样的变化之后就跑飞。。

原来在程序没有扩充之前 也这样测试过,前面几段 数组unsigned char A[  ]是正常的,,但是往后的几段数据是跑飞的,之后扩充了程序,,现在这样切换之后,程序完全跑飞了。。。不能正常运行。。。。

Program Size: data=119.4 xdata=96 code=3075

因为char有255 的大小限制,想换成 int 的的。。  看就这样了。。。。有谁遇到过类似的情况。。。

相关帖子

沙发
highgear| | 2013-8-21 23:54 | 只看该作者
多半是程序的问题。
要特别注意哪些中断与普通模块共享的变量。

使用特权

评论回复
板凳
liang5319| | 2013-8-21 23:58 | 只看该作者
程序问题~~~~

使用特权

评论回复
地板
ayb_ice| | 2013-8-22 08:01 | 只看该作者
这样分析问题得出的结论很难说是对的

使用特权

评论回复
5
jisjklala| | 2013-8-22 08:14 | 只看该作者
这感觉看不出什么的

使用特权

评论回复
6
sunhq02| | 2013-8-22 08:43 | 只看该作者
肯定是程序问题
仔细确定下跑飞的位置
还有注意下stack

使用特权

评论回复
7
ningling_21| | 2013-8-22 08:51 | 只看该作者

肯定是程序问题

尽量使用外部RAM...

使用特权

评论回复
8
123654789| | 2013-8-22 09:45 | 只看该作者
没有具体的程序代码   没有办法分析

使用特权

评论回复
9
aimie|  楼主 | 2013-8-22 10:28 | 只看该作者
问题 已经 解决   但是还是有 遇到奇怪的问题。。。。
这个问题的本事是因为
extern unsigned char keybuf[17];
unsigned char KeyBuf[17] = {0};
一个定义了char 一个定义int

非常奇怪已经有一个 公共变量了,,可是在其中以个C文件里面也有加载“extern unsigned char keybuf[17];
”的点H文件,如果不去定义unsigned char KeyBuf[17] = {0};
,编译的时候 所有  keybuf 都会丢失。。。。所以只好在2个文件中都有这个定义,而且如果C文件的大写KeyBuf修改成 keybuf之后会冲突。。

后来解决的办法就是同时是修改改了这2 个数据类型的定义

使用特权

评论回复
10
xiaoliping1945| | 2013-8-22 10:43 | 只看该作者
程序都没贴上来,咋个看哪里有问题???

使用特权

评论回复
11
Regsen| | 2013-8-22 10:48 | 只看该作者
全局变量定义过多,用户使用的空间不能满足相关变量所需空间,会有编译报错的问题

使用特权

评论回复
12
tergy2012| | 2013-8-22 11:59 | 只看该作者
学习了。

使用特权

评论回复
13
wolension| | 2013-8-23 08:23 | 只看该作者
extern unsigned char keybuf[17];
unsigned char KeyBuf[17] = {0};

??
我看到的是两个不同的变量啊. keybuf == KeyBuf ??

使用特权

评论回复
14
coody| | 2013-8-23 10:49 | 只看该作者
程序问题,如果使用了指针,或者参数传递,要注意。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

123

帖子

2

粉丝