The detailed results: a function which contains only ''simple'' instructions like add is up to 15 times slower. Other operations like multiplikations, branches, RAM access and mixed functions are about 11 times slower. For the tests I've set DataSetupTime to 0x06 and AddressHoldTime/ AddressSetupTime to 0x00 as described in AN2784. It would be nice if somebody could confirm my results.
Does your test exercise a variety of functions - so that a particularly good or ''bad'' one does not skew your results? Suppose that you could always copy/move code from external to internal flash. May enable you to use a smaller ST32 - but with cost/size penalties. I don't have an ''E'' board yet - perhaps others could repeat your test and report...
i've played around with the extern NOR-Flash code execution example from the STM3210E Eval Board. I've found out that code execution from external flash is more than 11 times slower than from internal Flash. Could this be correct? I planed to use the external Flash to execute some code. But if the perfomance is so slow it would be unusable for me. Is there a way to speed the performance up?
Hi & thanks - have an ''E'' on order - not in yet. One simple way to do this is to set a port bit just upon entry to the test code. Clear this bit upon exit. A scope or simple timer then monitors the duration of this bit. I'd repeat the measurement several times to insure consistency. Interested in your findings...
I ve got a STM3210E eval board. And I m running my code from the external NOR flash. I don t mind to do a quick test. But you have to explain me how to check the speed comparaison between internal flash and external flash.
Please note that High Density devices (having FSMC and up to 512K of Flash) are rev Z and no other revisions are available. Rev Y silicon is only for medium density devices : Please have a look at our Data sheets and erratas. Cheers, STOne-32.
Re: Test to contrast internal/external code speed execution:
Like your simple while() - suggest that you xor PF6. (monitor pin) Please try to include a variety of instructions as a ''too short'' test will magnify any loop overheads. Still have not received our EVAL-E - will perform these tests with IAR and report...
I just made a while(1) setting and resetting the PF6 pin. One is done in internal flash using Raisonance toolchain. One is done in external NOR flash using Keil toolchain. It s quite quicker in internal flash. I should do another test runing in external RAM. But I ll redo all test using the same toolchain. Shouldn't make a lot of difference but... I ll put the result in this post.