单片机/MCU论坛
直播中

study875

12年用户 1094经验值
私信 关注
[问答]

ADuCM360能否在flash中单字节存储数据?

在给的flash的例程中:
void WriteToFlash(unsigned long *pArray, unsigned long ulStartAddress, unsigned int uiSize){   unsigned int uiPollFEESTA = 0;   volatile unsigned long *flashAddress;   unsigned int i = 0;      flashAddress = ( unsigned long      *)ulStartAddress;   FeeWrEn(1);   uiPollFEESTA = FeeSta(); // Read Status to ensure it is clear   for (i = 0; i < uiSize; i = i+4)   {       uiPollFEESTA = 0;      *flashAddress++  = *pArray++;      do         {uiPollFEESTA = FeeSta();}       while((uiPollFEESTA   FEESTA_CMDBUSY) == FEESTA_CMDBUSY);   }     FeeWrEn(0);       // disable a write to Flash memory}
这里flashAddress++每次执行后,flash中的地址都加4,每次写入的数据都占四个字节。
但是若将flashAddress定义为uchar后,又无法将正确的地址给它,因为例如地址0x1f000,都超过它的大小,
那么ADUCM360是否能够以每字节为单位存储数据呢?

回帖(1)

张亮

2024-1-12 14:54:44
ADuCM360可以在flash中存储单字节数据。在给定的flash的例程中,数据存储是以4字节为单位进行的。每次写入4字节数据到flash中,因此无法直接写入单字节数据到flash中,需要将数据转换为4字节的形式后再进行存储。这是由于flash存储器的写入操作操作宽度是固定的。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分