This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR2355:memcpy

Guru**** 2535150 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/964696/msp430fr2355-memcpy

器件型号:MSP430FR2355

我知道这将非常模糊、但有人能不能从经验中告诉我、当我将以下命令放入代码时、什么会使我的板不断复位?

memset (&RXData、'\0'、sizeof (RXData)) 

我正在从射频链路发送和接收数据。  我想使用此行来清除数组 char bcz 中的错误传入数据

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    它取决于什么是 RXData。 如果它只是一个指针,sizeof()可能返回4。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    volatile char RXData[buffer_size]={[ 0 ... Buffer_size-1]= 0xFF}、* rxMssg;
    
    buffer 为32 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我的代码经过初始化、然后将 mssg 传输到接收器、接收器获取消息并将内容传回发送器。  半秒后、我重复一下。  我看到的问题是、经过几轮这之后、我将重新初始化无线电寄存器。  完成此操作的唯一位置是应用程序代码的前端。  我的直觉说我在某个地方步进内存,导致这种“重新启动”……奇怪的是,如果我在配置之后和 LPM3之前放置一个断点,而环路从未中断过,但我的逻辑分析仪正在清除,显示无线电重新配置…

    有什么想法吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    通常的习惯是使用

    memset (RXData...

    或 memset (&RXData[0])

    可以想象、一个裸 RXData 是一个指向存储器其他区域的指针、因此&RXData 指向某个奇怪的位置。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    可能…  RXData 是32个深字符,所以我想&RXData 会增加每个元素的大小,即1字节,即用0.....填充32个字节 不过,我肯定会将其更改为使用标准,因为这肯定是一个问题,比如整数,每个是2字节,在这种情况下,我的内存将用0写入64字节,而不是预期的32字节。。。。

    谢谢