打印

MSP430单片机有严重的问题

[复制链接]
2518|14
手机看帖
扫描二维码
随时随地手机跟帖
沙发
rhenwf| | 2011-8-12 15:00 | 只看该作者
是有问题!

使用特权

评论回复
板凳
jiangzhe8525|  楼主 | 2011-8-12 15:59 | 只看该作者
我定义两个变量,对一个变量赋值,另一个变量变了,不知道里面的RAM怎么操作的,出现这么严重的问题。

使用特权

评论回复
地板
jiangzhe8525|  楼主 | 2011-8-12 16:31 | 只看该作者
类型定义如下
typedef struct
{
        unsigned short usFlag;
}Menu_TypeDef;
Menu_TypeDef tMenu;
Menu_TypeDef* ptMenu;
ptMenu=&tMenu;

typedef struct
{
        unsigned short usSelNum;
}Database_TypeDef;
Database_TypeDef tDatabase;
Database_TypeDef* ptDatabase;
ptDatabase=&tDatabase;

在一个while(1)循环里,我多次ptDatabase->usSelNum++;等操作后,
改变了ptMenu->usFlag的值,直接成了对ptMenu->usFlag进行操作了。

看看是什么原因。

使用特权

评论回复
5
永远的不知| | 2011-8-12 17:02 | 只看该作者
3# jiangzhe8525

定义的都是全局变量?看看map文件吧,看看两个变量对应的地址。
这个和430单片机没关系吧,就算有问题也是编译器的问题,况且iar的编译器那也是非常专业的。
如果你的c语言写的没问题,不会出这种情况的。

使用特权

评论回复
6
jiangzhe8525|  楼主 | 2011-8-12 17:08 | 只看该作者
是全局变量,只是用指针操作的,现在好啦,把软件不优化就好啦,不会真是优化的问题吧。

使用特权

评论回复
7
jiangzhe8525|  楼主 | 2011-8-12 17:22 | 只看该作者
还真实优化的问题啊,不知道还真折磨人啊,大家要注意了。

使用特权

评论回复
8
永远的不知| | 2011-8-12 20:23 | 只看该作者
6# jiangzhe8525

嵌入式C的编译优化,在做嵌入式开发时,是经常遇到的问题。

使用特权

评论回复
9
jiangzhe8525|  楼主 | 2011-8-13 08:30 | 只看该作者
8# 永远的不知

你说经常碰到的事情是指要经常优化还是说优化后有问题啊,有的时候看优化了那些。

使用特权

评论回复
10
bnyuli| | 2011-8-13 10:13 | 只看该作者
经常看到的次序要求有多少

使用特权

评论回复
11
jiangzhe8525|  楼主 | 2011-8-13 17:32 | 只看该作者
10# bnyuli

什么次序要求啊,我那个优化后出问题是经常的,不出问题才不正常。奇怪了

使用特权

评论回复
12
qin552011373| | 2011-8-15 13:18 | 只看该作者
不会吧

使用特权

评论回复
13
永远的不知| | 2011-8-15 14:59 | 只看该作者
9# jiangzhe8525

做嵌入式C语言要注意编译器的优化问题,比如使用volatile关键字等,比如循环延时的时间控制等;如果不需要优化,可以把编译器的优化关掉。

使用特权

评论回复
14
永远的不知| | 2011-8-15 15:00 | 只看该作者
11# jiangzhe8525

经过编译器的优化之后,如果你没有考虑优化问题,有时候会出现的现象可能跟你想的就不太一样了。

使用特权

评论回复
15
lxn78| | 2011-8-19 10:24 | 只看该作者
版主说得,都是应验之谈啊。确实有时候在开发时碰到一些莫名其妙的问题,以后注意了。

使用特权

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

本版积分规则

3

主题

175

帖子

3

粉丝