⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 atr_test.cpp

📁 浙江大学的悟空嵌入式系统模拟器
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	( (Core::CPU_32Bit  *)Core::Wukong_Get_System().get_cpu() )->run();
	cpsr = ( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->get_cpsr().convert_to_int();
	CPPUNIT_ASSERT(cpsr == 0x40000000);

	Core::Wukong_Get_System().load_binary((Core::Binary_Loader &)(*loader), "ARM", binary_file_10);
	( (Core::CPU_32Bit  *)Core::Wukong_Get_System().get_cpu() )->run();
	cpsr = ( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->get_cpsr().convert_to_int();
	CPPUNIT_ASSERT(cpsr == 0x20000000);

	Core::Wukong_Get_System().load_binary((Core::Binary_Loader &)(*loader), "ARM", binary_file_11);
	( (Core::CPU_32Bit  *)Core::Wukong_Get_System().get_cpu() )->run();
	cpsr = ( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->get_cpsr().convert_to_int();
	CPPUNIT_ASSERT(cpsr == 0x00000000);

	Core::Wukong_Get_System().load_binary((Core::Binary_Loader &)(*loader), "ARM", binary_file_12);
	( (Core::CPU_32Bit  *)Core::Wukong_Get_System().get_cpu() )->run();
	( (ARM::CPU_7TDMI  *)Core::Wukong_Get_System().get_cpu() )->read_register(0,r0);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(1,r1);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(2,r2);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(3,r3);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(4,r4);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(5,r5);
	( (ARM::CPU_7TDMI  *)Core::Wukong_Get_System().get_cpu() )->read_register(6,r6);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(7,r7);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(8,r8);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(9,r9);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(10,r10);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(11,r11);
	cpsr = ( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->get_cpsr().convert_to_int();
	CPPUNIT_ASSERT(r2 == 0x80000000);
	CPPUNIT_ASSERT(r3 == 0x00000001);
	CPPUNIT_ASSERT(r4 == 0x00000007);
	CPPUNIT_ASSERT(r5 == 0x00000007);
	CPPUNIT_ASSERT(r6 == 0x0000000f);
	CPPUNIT_ASSERT(r8 == 0x00000021);
	CPPUNIT_ASSERT(r9 == 0x00000020);
	CPPUNIT_ASSERT(r10 == 0x00000000);
	CPPUNIT_ASSERT(r11 == 0x00000002);
	CPPUNIT_ASSERT(cpsr == 0x00000000);

	Core::Wukong_Get_System().load_binary((Core::Binary_Loader &)(*loader), "ARM", binary_file_13);
	( (Core::CPU_32Bit  *)Core::Wukong_Get_System().get_cpu() )->run();
	( (ARM::CPU_7TDMI  *)Core::Wukong_Get_System().get_cpu() )->read_register(0,r0);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(1,r1);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(2,r2);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(3,r3);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(4,r4);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(5,r5);
	( (ARM::CPU_7TDMI  *)Core::Wukong_Get_System().get_cpu() )->read_register(6,r6);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(7,r7);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(8,r8);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(9,r9);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(10,r10);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(11,r11);
	cpsr = ( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->get_cpsr().convert_to_int();
	CPPUNIT_ASSERT(r2 == 0x7fffffff);
	CPPUNIT_ASSERT(r3 == 0x80000000);
	CPPUNIT_ASSERT(r4 == 0x00000002);
	CPPUNIT_ASSERT(r5 == 0x00000001);
	CPPUNIT_ASSERT(r6 == 0x00000001);
	CPPUNIT_ASSERT(r8 == 0x00000002);
	CPPUNIT_ASSERT(r9 == 0x00000000);
	CPPUNIT_ASSERT(r10 == 0x00000020);
	CPPUNIT_ASSERT(r11 == 0x00000021);
	CPPUNIT_ASSERT(cpsr == 0x20000000);

	Core::Wukong_Get_System().load_binary((Core::Binary_Loader &)(*loader), "ARM", binary_file_14);
	( (Core::CPU_32Bit  *)Core::Wukong_Get_System().get_cpu() )->run();
	( (ARM::CPU_7TDMI  *)Core::Wukong_Get_System().get_cpu() )->read_register(0,r0);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(1,r1);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(2,r2);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(3,r3);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(4,r4);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(5,r5);
	( (ARM::CPU_7TDMI  *)Core::Wukong_Get_System().get_cpu() )->read_register(6,r6);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(7,r7);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(8,r8);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(9,r9);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(10,r10);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(11,r11);
	cpsr = ( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->get_cpsr().convert_to_int();
	CPPUNIT_ASSERT(r2 == 0x80000000);
	CPPUNIT_ASSERT(r3 == 0x7fffffff);
	CPPUNIT_ASSERT(r4 == 0x00000002);
	CPPUNIT_ASSERT(r5 == 0x00000001);
	CPPUNIT_ASSERT(r6 == 0xfffffffd);
	CPPUNIT_ASSERT(r8 == 0x00000002);
	CPPUNIT_ASSERT(r9 == 0x00000000);
	CPPUNIT_ASSERT(r10 == 0x00000020);
	CPPUNIT_ASSERT(r11 == 0x00000021);
	CPPUNIT_ASSERT(cpsr == 0x80000000);

	Core::Wukong_Get_System().load_binary((Core::Binary_Loader &)(*loader), "ARM", binary_file_15);
	( (Core::CPU_32Bit  *)Core::Wukong_Get_System().get_cpu() )->run();
	( (ARM::CPU_7TDMI  *)Core::Wukong_Get_System().get_cpu() )->read_register(0,r0);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(1,r1);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(2,r2);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(3,r3);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(4,r4);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(5,r5);
	( (ARM::CPU_7TDMI  *)Core::Wukong_Get_System().get_cpu() )->read_register(6,r6);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(7,r7);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(8,r8);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(9,r9);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(10,r10);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(11,r11);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(12,r12);
/*	CPPUNIT_ASSERT(r0 == 0x00007fe0);
	CPPUNIT_ASSERT(r1 == 0xe800e800);
	CPPUNIT_ASSERT(r2 == 0xe7ff0010);
	CPPUNIT_ASSERT(r3 == 0xe800e800);
	CPPUNIT_ASSERT(r4 == 0xe7ff0010);
	CPPUNIT_ASSERT(r5 == 0xe800e800);
	CPPUNIT_ASSERT(r6 == 0xe7ff0010);
	CPPUNIT_ASSERT(r7 == 0xe800e800);
	CPPUNIT_ASSERT(r8 == 0xe59f0004);*/
	CPPUNIT_ASSERT(r9 == 0xe59f0004);
	CPPUNIT_ASSERT(r10 == 0xe9301ffe);
	CPPUNIT_ASSERT(r11 == 0xef123456);
	CPPUNIT_ASSERT(r12 == 0x00008010);

	Core::Wukong_Get_System().load_binary((Core::Binary_Loader &)(*loader), "ARM", binary_file_16);
	( (Core::CPU_32Bit  *)Core::Wukong_Get_System().get_cpu() )->run();
/*
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->get_mmu().access(Core::Memory_32Bit::MEMORY_READ,0x803c,4,buffer);
	Core::Wukong_Get_System().convert_from_bytecode(buffer,value);
	CPPUNIT_ASSERT(value == 0x0000803c);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->get_mmu().access(Core::Memory_32Bit::MEMORY_READ,0x8040,4,buffer);
	Core::Wukong_Get_System().convert_from_bytecode(buffer,value);
	CPPUNIT_ASSERT(value == 0x00000002);
*/
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->get_mmu().access(Core::Memory_32Bit::MEMORY_READ,0x8044,4,buffer);
	Core::Wukong_Get_System().convert_from_bytecode(buffer,value);
	CPPUNIT_ASSERT(value == 0x00000001);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->get_mmu().access(Core::Memory_32Bit::MEMORY_READ,0x8048,4,buffer);
	Core::Wukong_Get_System().convert_from_bytecode(buffer,value);
	CPPUNIT_ASSERT(value == 0x00000002);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->get_mmu().access(Core::Memory_32Bit::MEMORY_READ,0x804c,4,buffer);
	Core::Wukong_Get_System().convert_from_bytecode(buffer,value);
	CPPUNIT_ASSERT(value == 0x00000003);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->get_mmu().access(Core::Memory_32Bit::MEMORY_READ,0x8050,4,buffer);
	Core::Wukong_Get_System().convert_from_bytecode(buffer,value);
	CPPUNIT_ASSERT(value == 0x00000004);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->get_mmu().access(Core::Memory_32Bit::MEMORY_READ,0x8054,4,buffer);
	Core::Wukong_Get_System().convert_from_bytecode(buffer,value);
	CPPUNIT_ASSERT(value == 0x00000005);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->get_mmu().access(Core::Memory_32Bit::MEMORY_READ,0x8058,4,buffer);
	Core::Wukong_Get_System().convert_from_bytecode(buffer,value);
	CPPUNIT_ASSERT(value == 0x00000006);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->get_mmu().access(Core::Memory_32Bit::MEMORY_READ,0x805c,4,buffer);
	Core::Wukong_Get_System().convert_from_bytecode(buffer,value);
	CPPUNIT_ASSERT(value == 0x00000007);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->get_mmu().access(Core::Memory_32Bit::MEMORY_READ,0x8060,4,buffer);
	Core::Wukong_Get_System().convert_from_bytecode(buffer,value);
	CPPUNIT_ASSERT(value == 0x00000008);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->get_mmu().access(Core::Memory_32Bit::MEMORY_READ,0x8064,4,buffer);
	Core::Wukong_Get_System().convert_from_bytecode(buffer,value);
	CPPUNIT_ASSERT(value == 0x00000009);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->get_mmu().access(Core::Memory_32Bit::MEMORY_READ,0x8068,4,buffer);
	Core::Wukong_Get_System().convert_from_bytecode(buffer,value);
	CPPUNIT_ASSERT(value == 0x0000000a);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->get_mmu().access(Core::Memory_32Bit::MEMORY_READ,0x806c,4,buffer);
	Core::Wukong_Get_System().convert_from_bytecode(buffer,value);
	CPPUNIT_ASSERT(value == 0x0000000b);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->get_mmu().access(Core::Memory_32Bit::MEMORY_READ,0x8070,4,buffer);
	Core::Wukong_Get_System().convert_from_bytecode(buffer,value);
	CPPUNIT_ASSERT(value == 0x0000000c);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->get_mmu().access(Core::Memory_32Bit::MEMORY_READ,0x8074,4,buffer);
	Core::Wukong_Get_System().convert_from_bytecode(buffer,value);
	CPPUNIT_ASSERT(value == 0x00008040);

	Core::Wukong_Get_System().load_binary((Core::Binary_Loader &)(*loader), "ARM", binary_file_17);
	( (Core::CPU_32Bit  *)Core::Wukong_Get_System().get_cpu() )->run();
	( (ARM::CPU_7TDMI  *)Core::Wukong_Get_System().get_cpu() )->read_register(0,r0);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(1,r1);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(2,r2);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(3,r3);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(4,r4);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(5,r5);
	( (ARM::CPU_7TDMI  *)Core::Wukong_Get_System().get_cpu() )->read_register(6,r6);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(7,r7);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(8,r8);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(9,r9);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(10,r10);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(11,r11);
	cpsr = ( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->get_cpsr().convert_to_int();
	CPPUNIT_ASSERT(r0 == 0x00008008);
	CPPUNIT_ASSERT(r11 == 0x00000018);
	CPPUNIT_ASSERT(r1 == 0xffff7ff3);
	CPPUNIT_ASSERT(r2 == 0x00010020);
	CPPUNIT_ASSERT(r3 == 0x00010028);
	CPPUNIT_ASSERT(r4 == 0x00018068);
	CPPUNIT_ASSERT(r5 == 0x0001806c);
	CPPUNIT_ASSERT(r6 == 0x00008040);
	CPPUNIT_ASSERT(r7 == 0x00008044);
	CPPUNIT_ASSERT(r8 == 0x00000018);
	CPPUNIT_ASSERT(r9 == 0x00000018);
	CPPUNIT_ASSERT(r10 == 0x00008060);
	CPPUNIT_ASSERT(cpsr == 0x00000000);

	Core::Wukong_Get_System().load_binary((Core::Binary_Loader &)(*loader), "ARM", binary_file_18);
	( (Core::CPU_32Bit  *)Core::Wukong_Get_System().get_cpu() )->run();
	( (ARM::CPU_7TDMI  *)Core::Wukong_Get_System().get_cpu() )->read_register(0,r0);
	cpsr = ( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->get_cpsr().convert_to_int();
	CPPUNIT_ASSERT(r0 == 0xfffffffe);
	CPPUNIT_ASSERT(cpsr == 0x80000000);



	Core::Wukong_Get_System().load_binary((Core::Binary_Loader &)(*loader), "ARM", binary_file_19);
	( (Core::CPU_32Bit  *)Core::Wukong_Get_System().get_cpu() )->run();
	( (ARM::CPU_7TDMI  *)Core::Wukong_Get_System().get_cpu() )->read_register(0,r0);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(1,r1);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(2,r2);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(3,r3);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(4,r4);
	( (ARM::CPU_7TDMI   *)Core::Wukong_Get_System().get_cpu() )->read_register(5,r5);
	( (ARM::CPU_7TDMI  *)Core::Wukong_Get_System().get_cpu() )->read_register(6,r6);
	( (ARM::CPU_7TDMI  *)Core::Wukong_Get_System().get_cpu() )->read_register(7,r7);
	CPPUNIT_ASSERT(r0 == 0x0000803C);
	CPPUNIT_ASSERT(r1 == 0x00000002);
	CPPUNIT_ASSERT(r2 == 0x00000080);
	CPPUNIT_ASSERT(r3 == 0x00000004);
	CPPUNIT_ASSERT(r4 == 0x00000006);
	CPPUNIT_ASSERT(r5 == 0x00000007);
	CPPUNIT_ASSERT(r6 == 0x00000007);
//	CPPUNIT_ASSERT(r7 == 0x04000000);


}

int _tmain(int argc, _TCHAR* argv[])
{
	CppUnit::TextUi::TestRunner runner;
	CppUnit::Test *suite = CppUnit::TestFactoryRegistry::getRegistry().makeTest();
	runner.addTest( suite );
	runner.setOutputter( new CppUnit::CompilerOutputter( &runner.result(),std::cerr ) );
	runner.run();
	int i;
	std::cin>>i;
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -