diff --git a/examples/run_from_ram/run_from_ram.c b/examples/run_from_ram/run_from_ram.c index f7a8d4fa293d22533dd18fdce4512aa7bc573b23..07ecee1374cc75bc023175d7e6ba32d16d633173 100644 --- a/examples/run_from_ram/run_from_ram.c +++ b/examples/run_from_ram/run_from_ram.c @@ -36,6 +36,24 @@ void RamFunction() GPIOC->BSHR = (1<<16); Delay_Ms( 250 ); count++; + + // But we turbo through twiddling a pin. + + asm volatile("\n\ + li a0, 1 | (1<<4)\n\ + li a1, (1<<16) | (1<<(16+4))\n\ + la a2, 0x40011410 /* GPIO D*/ \n\ + c.nop\n\ + c.sw a0, 0(a2)\n\ + c.sw a1, 0(a2)\n\ + c.sw a0, 0(a2) /* Writing out takes 2 cycles from what I can tell*/ \n\ + c.addi a3, 1 /* Insert this for comparative timing, it's 1 cycle */ \n\ + c.sw a1, 0(a2)\n\ + c.sw a0, 0(a2)\n\ + c.sw a1, 0(a2)\n\ + c.sw a0, 0(a2)\n\ + c.sw a1, 0(a2)\n\ + " : : : "a0", "a1", "a2", "a3" ); } }