Example #1
0
void t_changePC(unsigned long pcstr, unsigned long spstr)
{
	uint32_t sp = 0;
	uint32_t pc = 0;


	//PC
	t_halt();
	
	swd_read_core_register(13, &sp);
	swd_write_core_register(13, spstr);
	swd_read_core_register(13, &sp);
	swd_write_core_register(13, sp);
	swd_read_core_register(15, &pc);
	swd_write_core_register(15, pcstr);
	swd_read_core_register(15, &pc);
	swd_write_core_register(15, pc);

}
Example #2
0
void t_ReadPC()
{
	uint32_t pc = 0;

	//PC
	t_halt();
	
	swd_read_core_register(15, &pc);
	swd_write_core_register(15, pc);

}
Example #3
0
void programming_sram()
{
    U32 i, size, count, addr = 0x20000000;

    size = sizeof(binraw) / 4;


    for (i = 0; i < size; i += 1024) {
        if ((i + 1024) < size) {
            count = 1024;
        } else {
            count = size - i;
        }
        write_sequential_words(addr + i * 4, count, &binraw[i]);
    }

    write_sequential_words(0xe000ed08, 1, &addr);
    addr = binraw[1] & 0xFFFFFFFE;
    swd_write_core_register(15, &addr);
    addr = binraw[0];
    swd_write_core_register(13, &addr);
    addr = 0xA05F0000;
    write_sequential_words(DHCSR, 1, &addr);
}