我正在尝试为 NXT 编写内存测试程序,因为我有几个内存单元已烧毁,并且想确定哪些 NXT 无法使用。该程序旨在通过以下方式测试内存中每个字节的完整性:
- 将 64 位分配给线性反馈移位寄存器随机化器
- 向内存指针添加另一个字节
- 将随机数据写入选定的存储单元
- 验证数据是否正确回读
然而,通过这些尝试,我发现NXT实际上并不支持指针操作。因此,我不能简单地迭代指针字节并读取其位置进行测试。
如何在没有指针的情况下迭代内存中的索引?
我认为问题在于您并没有真正在 NBC/NXC 或 RobotC 中获得直接内存访问。
据我所知,两者都在 NXT 固件模拟器上运行;所以从你的程序的角度来看,坏的内存地址[es]可能会改变(假设模拟器使用虚拟内存)。
要实际运行裸机,我建议使用 John Hansen 修改后的固件的 NXTBINARY 功能,如下所述:
http ://www.tau.ac.il/~stoledo/lego/nxt-native/
可以在以下位置找到增强的固件:http:
//bricxcc.sourceforge.net/test_releases/