void test_datawatchpoint_TestCase_ReadByte_LDRB() { uint32_t pc = 0 ; writeCoreRegister(CORE_REG_PC,0x080003F0); setDataWatchpoint_MatchingOneComparator(COMPARATOR_0,0x2000045C,WATCHPOINT_MASK_NOTHING,0x11223344,WATCHPOINT_BYTE,WATCHPOINT_READ); setCoreMode(CORE_DEBUG_MODE); pc = readCoreRegister(CORE_REG_PC); // TEST_ASSERT_EQUAL(0x080003FC,pc); }
void xtest_datawatchpoint_TestCase_WriteWord_STR() { uint32_t pc = 0 ; setDataWatchpoint_MatchingOneComparator(COMPARATOR_0,0x2000045C,WATCHPOINT_MASK_NOTHING,0x11223344,WATCHPOINT_WORD,WATCHPOINT_WRITE); writeCoreRegister(CORE_REG_PC,0x080008A0); setCoreMode(CORE_DEBUG_MODE); while(!hasDWTTrapDebugEventOccured()); pc = readCoreRegister(CORE_REG_PC); // TEST_ASSERT_EQUAL(,pc); }
void xtest_datawatchpoint_TestCase_ReadByte_LDR() { uint32_t pc = 0 ; setDataWatchpoint_MatchingOneComparator(COMPARATOR_0,0x2000045C,WATCHPOINT_MASK_NOTHING,0x44,WATCHPOINT_BYTE,WATCHPOINT_READ); writeCoreRegister(CORE_REG_PC,0x080005F0); setCoreMode(CORE_DEBUG_MODE); while(!hasDWTTrapDebugEventOccured()); pc = readCoreRegister(CORE_REG_PC); // TEST_ASSERT_EQUAL(,pc); }
void test_setDataWatchpoint_MatchingOneComparator() { uint32_t configData = 0 ; configData = (2 << 16) + (2 << 12) + (WATCHPOINT_WORD << 10) + (DATA_COMPARISON << 8) + WATCHPOINT_WRITE ; //Faking CSW to Byte Size cswDataSize = CSW_BYTE_SIZE ; //Enable Global enable for DWT emulateSwdRegisterWrite(TAR_REG,SWD_AP,4,0xE000EDFF); emulateSwdRegisterWrite(DRW_REG,SWD_AP,4,ENABLE_DWT_ITM <<24 ); //Set CSW to Word Size emulateSwdRegisterWrite(SELECT_REG, SWD_DP, OK, SELECT_BANK0); emulateSwdRegisterWrite(CSW_REG, SWD_AP, OK, (CSW_DEFAULT_MASK | CSW_WORD_SIZE)); //Disable matching comparator emulateSwdRegisterWrite(TAR_REG,SWD_AP,4,(uint32_t)(&DWT_COMP[2].FUNCTION)); emulateSwdRegisterWrite(DRW_REG,SWD_AP,4,0); //Program matching comparator emulateSwdRegisterWrite(TAR_REG,SWD_AP,4,(uint32_t)(&DWT_COMP[2].COMP)); emulateSwdRegisterWrite(DRW_REG,SWD_AP,4,0xFFFFFFFF); //Program matching mask emulateSwdRegisterWrite(TAR_REG,SWD_AP,4,(uint32_t)(&DWT_COMP[2].MASK)); emulateSwdRegisterWrite(DRW_REG,SWD_AP,4,WATCHPOINT_MASK_BIT14_BIT0); //Disable comparator emulateSwdRegisterWrite(TAR_REG,SWD_AP,4,(uint32_t)(&DWT_COMP[1].FUNCTION)); emulateSwdRegisterWrite(DRW_REG,SWD_AP,4,0); //Program comparator emulateSwdRegisterWrite(TAR_REG,SWD_AP,4,(uint32_t)(&DWT_COMP[1].COMP)); emulateSwdRegisterWrite(DRW_REG,SWD_AP,4,0xABCDEF12); //Program mask emulateSwdRegisterWrite(TAR_REG,SWD_AP,4,(uint32_t)(&DWT_COMP[1].MASK)); emulateSwdRegisterWrite(DRW_REG,SWD_AP,4,WATCHPOINT_MASK_NOTHING); //Program function emulateSwdRegisterWrite(TAR_REG,SWD_AP,4,(uint32_t)(&DWT_COMP[1].FUNCTION)); emulateSwdRegisterWrite(DRW_REG,SWD_AP,4,configData); TEST_ASSERT_EQUAL(0,setDataWatchpoint_MatchingOneComparator(COMPARATOR_2,0xFFFFFFFF,WATCHPOINT_MASK_BIT14_BIT0, 0xABCDEF12,WATCHPOINT_WORD,WATCHPOINT_WRITE)); }