範例程式疑問
您好:我是使用C8051F120-TB外接記憶體AB1,我執行範例程式C:\SiLabs\MCU\Examples\C8051F12x_13x\EMIF\F12x_EMIF_AB1.c,對下面成是片段執行結果有些疑問:
// Write xdata space
pchar = 0x4000;
for (i = 0; i < RAM_SIZE; i++) {
*pchar = ~i;
// Print status to UART0
if ((i % 16) == 0) {
printf ("\nwriting 0x%04x: %02x ", (unsigned) i, (unsigned) ((~i) & 0xff));
} else {
printf ("%02x ", (unsigned) ((~i) & 0xff));
}
pchar++;
}
// Verify
pchar = 0x4000;
for (i = 0; i < RAM_SIZE; i++) {
if (*pchar != ((~i) & 0xff)) {
printf ("Verify error!\n");
while (1);
}
// Print status to UART0
if ((i % 16) == 0) {
printf ("\nverifying 0x%04x: %02x ", (unsigned) i, (unsigned) *pchar);
} else {
printf ("%02x ", (unsigned) *pchar);
}
pchar++;
}
printf ("\n\nTest complete.");
執行完應該是會printf "Test complete"在螢幕上,第一段(// Write xdata space)寫入資料的程式printf出來的值都是正確的,但是第二段(// Verify)比對寫入資料的程式卻比對出錯誤,printf "Verify error!",請教前輩是哪裡有問題阿,謝謝!