Update K82 MPU regions during runtime

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Update K82 MPU regions during runtime

611 Views
EugeneHiihtaja
Senior Contributor I

Hello !

I try to study usage of K82 MPU for FreeRTOS like OS.

I can see in original FreeRTOS MPU few places where all 4 regions of generic ARM MPU is updated on fly.

Prepared valued are copied directly to MPU registers.

/* ARM generic */
" ldr r2, =0xe000ed9c \n" /* Region Base Address register. */
" ldmia r1!, {r4-r11} \n"     /* Read 4 sets of MPU registers. */
" stmia r2!, {r4-r11} \n"     /* Write 4 sets of MPU registers. */

In K82 case, one region is represented by 4 dwords and prepared MPU region values from TCB ( for 4 regions ) can

be copied by operations like this :

/* K82 */
" ldr r2, =0x4000D410 \n" /* Region Base Address register. */ // 1,2
" ldmia r1!, {r4-r11} \n"      /* Read 2 sets of MPU registers. */
" stmia r2!, {r4-r11} \n"      /* Write 2 sets of MPU registers. */
" ldr r2, =0x4000D430 \n"  /* Region Base Address register. */ // 3,4
" ldmia r1!, {r4-r11} \n"      /* Read 2 sets of MPU registers. */
" stmia r2!, {r4-r11} \n"      /* Write 2 sets of MPU registers. */

In case of ARM, priviliged/nonprivileged mode is switched in control register.

But what in case of K82 ?

How I can update MPU region entries during runtime ?

Should I also disable MPU or current way of FreeRTOS is sufficient for K82 as well ?

I can see the next MPU region scheme :

Region 0 is reserved for debug purposes and should be invalidated when it is no need.

Regions 1-4 are preconfigured one time for protect static flash/data regions

Regions 5-8 are updated during runtime when task switch happens.

Regions 9-12 are invalidated at start up and set to 0.

So MPU is always enabled.

How-to properly and in what mode update regions  5-8 ?

Thank you !

Eugene

0 Kudos
3 Replies

489 Views
EugeneHiihtaja
Senior Contributor I

Hi Jing Pan !

So MPU registers area should be enabled for USER in region and also via AIPS.

Looks like MPU is not enought. Is this so ?

Regards,

Eugene

0 Kudos

489 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi Eugene,

I think it's depend on your application. After reset, all address range is opened to USER mode.  You are free to manage it by yourself.

Regards,

Jing

0 Kudos

489 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi,

Please look 23.7 at page 501 and 502 in reference manual.

If the MPU register address is not protected, you can modify it either in supervisor mode or user mode. Otherwise you have to obey the setting in MPU register.

Regards,

Jing 

0 Kudos