打印

F2812 DSP CCS 编译,结构体成员为指针,竟然传递不进来。。。

[复制链接]
4701|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zealane|  楼主 | 2008-1-8 10:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
struct QueueBuffer{
    Uint16 *aBufferStart;
    Uint16 *aBufferEnd;
    Uint16 *pIn;
    Uint16 *pOut;
    unsigned int  mCount;
};

struct QueueBuffer *Queue_Register(Uint16 *pQueueBufArry,unsigned int  mSize)
{
         struct QueueBuffer *pQueueBuffer;
    Uint16 sQueue_size;
    //分配记录队列信息的结构变量
    pQueueBuffer=(struct QueueBuffer *)Memory_Malloc(sizeof(struct QueueBuffer)); 

    sQueue_size=sizeof(struct QueueBuffer);
    //记录队列信息的结构变量清0
    Memory_Memset((unsigned char *) pQueueBuffer,0,sQueue_size);

//分配队列所需内存,这里使用编译器自动分配的内存
    pQueueBuffer->aBufferStart=pQueueBuffer->pIn=pQueueBuffer->pOut=pQueueBufArry;
    //队列结束指针
    pQueueBuffer->aBufferEnd=pQueueBuffer->aBufferStart+mSize;
    return pQueueBuffer;
}
看这句话
pQueueBuffer->aBufferStart=pQueueBuffer->pIn=pQueueBuffer->pOut=pQueueBufArry;
在这个语句中, pQueueBufArry的值是0x00010003,但是给pQueueBuffer->aBufferStart  aBufferStart=pQueueBuffer->pIn赋值之后,pQueueBuffer->aBufferStart变成0x00030001.。。。。不知道为什么赋值不对?

相关帖子

沙发
zealane|  楼主 | 2008-1-8 10:47 | 只看该作者

感觉是高8位和低8位交换了位置。。。。

使用特权

评论回复
板凳
DSP动力| | 2008-1-8 20:35 | 只看该作者

忌讳这种写法

pQueueBuffer->aBufferStart=pQueueBuffer->pIn=pQueueBuffer->pOut=pQueueBufArry;

分成3步付值,结构清晰要简单;
这种写法付值先后次序不明朗,以后移植也是问题。

使用特权

评论回复
地板
zealane|  楼主 | 2008-1-8 22:14 | 只看该作者

这个是初始化里的。只在开头调用一次。

关键不是这个原因。也分步试过,但是还是传递变错。。。
本人对汇编又不是很了解,所以很郁闷。。。不知道是什么原因

使用特权

评论回复
5
liudewei| | 2008-1-12 17:52 | 只看该作者

语法的问题

*pQueueBuffer->aBufferStart=*pQueueBuffer->pIn=*pQueueBuffer->pOut=*pQueueBufArry

使用特权

评论回复
6
zealane|  楼主 | 2008-1-14 14:39 | 只看该作者

这是什么语法?

*pQueueBuffer->aBufferStart=*pQueueBuffer->pIn=*pQueueBuffer->pOut=*pQueueBufArry

我要的是传递指针值,你的这句只是将pQueueBufArry指针指向的存储区内容赋给前面变量啊。。

使用特权

评论回复
7
hitajian| | 2008-1-17 23:14 | 只看该作者

工程贴上来看看

我用你的程序简单做了个工程,看结果是对的.
把你的工程打包上来看看,可能是别的原因造成的.

使用特权

评论回复
8
zealane|  楼主 | 2008-1-19 20:36 | 只看该作者

那就奇怪了???

使用特权

评论回复
9
ghostvip| | 2011-7-18 13:16 | 只看该作者
我遇到了同样的问题

使用特权

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

本版积分规则

31

主题

249

帖子

1

粉丝