改進演算法mnx 如下所示,^ : 表示順序寫入;不帶^表示逆序:
^(w0); ^(r0,w1); (r1,w0);(r0)
偽**,m表示讀取,m表示寫入:
for (i = 0; i < n; i++)
for (i = 0; i < n; i++)else
}for (i = n-1; i >=0; i--)else
}for (i = n-1; i >=0; i--)else
}
c實現,其中start_addr, finish_addr是ram的開始位址與結束位址;而march_data_code為背景資料;
以32bit為示例,可以選擇如下一項或者幾項進行覆蓋測試。
/*
* background data list:
* 1. 0x00000000
2. 0x33333333
3. 0x55555555
4. 0x0f0f0f0f
5. 0x00ff00ff
6. 0x0000ffff
* _sram_err_region 指示err區域位址以及content
* detect_ram_en : 是否檢測到首次就直接退出,或者全部掃測完成
*/uint32 _sram_marchx ( uint32* start_addr, uint32* finish_addr, uint32 march_data_code )
for ( paddr32 = start_addr; paddr32 < finish_addr; paddr32 ++ )
else
}for ( paddr32 = finish_addr - 1; paddr32 >= start_addr + 1; paddr32 -- )
else
}for ( paddr32 = finish_addr - 1; paddr32 >= start_addr + 1; paddr32 -- )
else
}return res;
}
微控制器的ROM與RAM
rom read only memory 程式儲存器 在微控制器中用來儲存程式資料及常量資料或變數資料,凡是c檔案及h檔案中所有 全域性變數 區域性變數 const 限定符定義的常量資料 startup.asm檔案中的 類似arm中的bootloader或者x86中的bios,一些低端的微控制器是沒...
10 4 51微控制器RAM區域的劃分
前邊介紹微控制器資源的時候,我們提到過 stc89c52 共有 512 位元組的 ram,是用來儲存資料的,比如我們定義的變數都是直接存在 ram 裡邊的。但是微控制器的這 512 位元組的 ram在地位上並不都是平等的,而是分塊的,塊與塊之間在物理結構和用法上都是有區別的,因此我們在使用的時候,也...
STC89C52微控制器RAM模式
stc89c52 微控制器內變數 函式引數等資料在ram中的儲存模式 small compact large 前邊介紹微控制器資源的時候,我們提到過 stc89c52 共有 512 位元組的 ram,是用來儲存資料的,比如我們定義的變數都是直接存在 ram 裡邊的。但是微控制器的這 512 位元組的...