我们在连接外部存储器(Alliance AS4C32M16SA-7)时遇到(看似奇怪)问题。 当我们写入外部存储器时、我们有两个问题。 首先是位和字节交换、第二个是当我们写入第一个奇数位置时、所有奇数位置都接收我们刚刚放置在第一个奇数位置的字。
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.
我们在连接外部存储器(Alliance AS4C32M16SA-7)时遇到(看似奇怪)问题。 当我们写入外部存储器时、我们有两个问题。 首先是位和字节交换、第二个是当我们写入第一个奇数位置时、所有奇数位置都接收我们刚刚放置在第一个奇数位置的字。
我的编程器: 第一次写入正常、随后的写入用零覆盖良好数据。
对位于外部存储器中的8位变量进行写入、然后对其进行读回、将得到一个错误的值:
此代码:
volatile unsigned char * ptr =(volatile unsigned char *) 0x80000000U;
UARTprintf ("字节测试\n");
PTR[0]=(无符号字符) 0x12;
UARTprintf ("PTR[0]= 0x%02x\n"、PTR[0]);
PTR[1]=(无符号字符) 0x34;
UARTprintf ("PTR[1]= 0x%02x\n"、PTR[1]);
PTR[2]=(无符号字符) 0x56;
UARTprintf ("PTR[2]= 0x%02x\n"、PTR[2]);
PTR[3]=(无符号字符) 0x78;
UARTprintf ("PTR[3]= 0x%02x\n"、PTR[3]);
PTR[4]=(无符号字符) 0x9a;
UARTprintf ("PTR[4]= 0x%02x\n"、PTR[4]);
ptr[5]=(unsigned char) bb c;
UARTprintf ("PTR[5]= 0x%02x\n"、PTR[5]);
PTR[6]=(无符号字符) 0xde;
UARTprintf ("PTR[6]= 0x%02x\n"、PTR[6]);
PTR[7]=(无符号字符) 0xf0;
UARTprintf ("PTR[7]= 0x%02x\n"、PTR[7]);
输出:
字节测试
PTR[0]= 0x00
PTR[1]= 0x00
PTR[2]= 0x12
PTR[3]= 0x34
PTR[4]= 0x00
PTR[5]= 0x00
PTR[6]= 0x9a
PTR[7]= 0xbc