#include "exsys_msgs.h" // prototypes for halt functions #include "exsys_ahbmap.h" // address map defines #include <zsp_util.h> // THIS IS ESSENTIAL FOR INTERRUPTS CASE #include "usr_zsp_util.h" #include "functions.h" #include "c_print.h" void main(){ unsigned int i; c_printf("test the memory space of DMEM\n"); for(i=DMEM_BASE; i <= 0x0013FFFF;i=i+4){ reg32_write(i, 0x12345678); reg32_check(i, 0x12345678); } CASE_PASS }修改上述代码使之能够验证内存空间Boot-ROM (full range read with compare)
时间: 2024-02-23 14:01:22 浏览: 89
ExSyS-开源
以下是修改后的代码:
```c
#include "exsys_msgs.h"
#include "exsys_ahbmap.h"
#include <zsp_util.h>
#include "usr_zsp_util.h"
#include "functions.h"
#include "c_print.h"
#define BOOTROM_BASE 0x00000000 // define BOOTROM_BASE constant
void main(){
unsigned int i;
c_printf("Testing the memory space of Boot-ROM\n");
for(i = BOOTROM_BASE; i <= 0x0001FFFF; i += 4){
reg32_check(i, *(volatile unsigned int*)i);
}
CASE_PASS;
}
```
这样就定义了一个 `BOOTROM_BASE` 常量,并在循环中使用它来测试内存空间。循环从 `BOOTROM_BASE` 开始,一直到 `0x0001FFFF`,每次增加 4 个字节,然后读取和检查该地址上的值是否与实际值相同。注意,在读取时需要使用 `volatile` 关键字,以确保编译器不会优化掉这些读取操作。
阅读全文