Hi all,
I am writing an application on a MPC5516 microcontroler, and I want it to be able to execute some VLE instructions that I manually wrote in flash memory.
I succeed in making PC jump to the address where is stored the code that I want to execute, but they are not recognized as VLE instructions. For exemple, the 32bits VLE instruction
182106E0 e_stwu R1, -32(R1)
is considered illegal.
My guess is that the memory section where are stored my instructions is not 'VLE enabled'. The document "Variable Lenth Encoding (VLE) Programming Environments Manual" indicates that the "set of alternate encodings is selected on a page basis. A single storage bit attribute bit selects between standard instruction encodings and VLE instructions for that page".
Could someone explain me how could I manually enable VLE for a given section of flash memory?
Thanks a lot,
Regards,
Nicolas
Solved! Go to Solution.
It is necessary to set the MMU pages appropriately. There's VLE bit in MAS2 register that says if the code in MMU page is VLE or BOOKE.
I created XLS tool that can help to set the MMU (attached). It generates asm code and also script for Lauterbach debugger.
More details about MMU can be found in
http://www.freescale.com/files/32bit/doc/ref_manual/e200z1RM.pdf
Lukas
It is necessary to set the MMU pages appropriately. There's VLE bit in MAS2 register that says if the code in MMU page is VLE or BOOKE.
I created XLS tool that can help to set the MMU (attached). It generates asm code and also script for Lauterbach debugger.
More details about MMU can be found in
http://www.freescale.com/files/32bit/doc/ref_manual/e200z1RM.pdf
Lukas