e200z0 and e200z7 instruction set

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for Show only | Search instead for Did you mean: e200z0 and e200z7 instruction set ‎07-23-2015 06:54 AM 3,125 Views Contributor I

Please let me know the instruction set are same for e200z0 and e200z7 core. If the compiler supports for e200z0 based SOC the same one will support for e200z7 based SOC.

General

‎07-24-2015 03:48 AM 2,255 Views

davidtosenovjan

NXP TechSupport

Basic VLE instruction set is the same (note that z7 also support BookE) but there are several possible differences given by

1) presence of EFPU/SPE

2) also instructions specified by Engineering Bulletin “New VLE Instructions for Improving Interrupt Handler Efficiency” are not present on all e200 cores (however there are present on all z7 and z0 cores):

These instruction only affects ISRs and can be enabled by following pragma:

Note that this pragma without vle_multiple option means these instruction will not be used:

3) also there are possible difference not given by instruction set, but core differences itself. Understandably you cannot configure cache with core that does not have cache, for instance.

Some e200 core comparison:

‎07-27-2015 10:55 PM 2,255 Views Contributor II

I'm using PowerPC MPC5553. I'm compiling an application that uses setjmp/longjmp. The code compiles fine but when executing the code.
It runs for several cycles in which setjump/longjump being called for context switching. Below are the macro being called in application.

#define RTS_CPU_STORE_CONTEXT(context, piResult) /*lint -e64 */(*((int*)piResult) = setjmp(context))
#define RTS_CPU_RESTORE_CONTEXT(context, parameter) longjmp(context, parameter)

There after Controller get memory crash & does not give even watchdog reset.

So in above case as wll I should use __declspec(interrupt vle_multiple) as in setjump macro is uses the VLE instruction?

If yes then where to declare above macro?