Hi all,
the MCF52259 docs contain no data about the speed for accesses to internal peripherals (IPS). Since the MCF5213 was extremly slow in this respect: Does anybody know whether the MCF52259 is faster?
IOW how fast can the MCF52259 toggle a port pin (by software control)? The MCF5213 needed 12 cycles for consecutive accesses to "off platform peripherals" like port registers, so the loop couldn't be executed in less than 24 cycles, resulting in 3,3MHz at 80MHz bus speed.
If there is still a difference: Is there a list of "platform peripherals" and "off platform peripherals" in the 5225x?
Oliver
That seems to be exactly the number I see on a MCF52259 running at 80MHz accessing GPIO with this code, and optimizations turned on:
MCF_GPIO_PQSPAR = 0;
MCF_GPIO_DDRQS = 0x01;
while (1) {
MCF_GPIO_SETQS = 0x01;
MCF_GPIO_CLRQS = ~0x01;
}
Some of the MCF52259 peripherals (mini-flexbus, uarts, i2c, spi, dma timers, etc. -- see the excellent figure 7-1 in the Reference Manual) are clocked before the "fsys divide by 2", so if you can get them involved somehow, you might do better; GPIO is clocked after the "fsys divide by 2".
One thing to keep in mind is that my understanding is that the "flash speculation" works on the MCF52259, so I no longer disable it (i.e., no longer set FLASHBAR[6] = 1) during startup, and as a result I see a 10% performance increase, clock-for-clock, on CPU intensive work vs. MCF5222x and MCF5223x.
-- Rich