Kinetis K8x MPU regions overlaping rules

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Kinetis K8x MPU regions overlaping rules

ソリューションへジャンプ
422件の閲覧回数
EugeneHiihtaja
Senior Contributor I

Hello !

K82 MPU have 12 regions and  while definitions it can be overlaping when the same address space fragments have different access right for User and Supervisor modes.

 During each access MPU state machine scan all valid regions what is enabled.

I undestand ,  each region can be enabled/disabled individually and enable/disabled regions can be allocated in any order and all valid entries is taken to calculation for one access right rule for user and one access rule right for supervisor modes.

Is this so ? Or some other priorities/rules exists ?

Do I undestang right and lesser rule are taken in use ?

*! @brief SYSMPU access rights in supervisor mode for bus master 0 ~ 3. */
typedef enum _sysmpu_supervisor_access_rights
{
kSYSMPU_SupervisorReadWriteExecute = 0U, /*!< Read write and execute operations are allowed in supervisor mode. */
kSYSMPU_SupervisorReadExecute =        1U, /*!< Read and execute operations are allowed in supervisor mode. */
kSYSMPU_SupervisorReadWrite =             2U, /*!< Read write operations are allowed in supervisor mode. */
kSYSMPU_SupervisorEqualToUsermode = 3U /*!< Access permission equal to user mode. */
} sysmpu_supervisor_access_rights_t;

/*! @brief SYSMPU access rights in user mode for bus master 0 ~ 3. */
typedef enum _sysmpu_user_access_rights
{
kSYSMPU_UserNoAccessRights = 0U, /*!< No access allowed in user mode. */
kSYSMPU_UserExecute =              1U, /*!< Execute operation is allowed in user mode. */
kSYSMPU_UserWrite =                   2U, /*!< Write operation is allowed in user mode. */
kSYSMPU_UserWriteExecute =     3U, /*!< Write and execute operations are allowed in user mode. */
kSYSMPU_UserRead =                 4U, /*!< Read is allowed in user mode. */
kSYSMPU_UserReadExecute =    5U, /*!< Read and execute operations are allowed in user mode. */
kSYSMPU_UserReadWrite =         6U, /*!< Read and write operations are allowed in user mode. */
kSYSMPU_UserReadWriteExecute = 7U /*!< Read write and execute operations are allowed in user mode. */
} sysmpu_user_access_rights_t;

Or address regions shouln't be overlaped and defined sequentially ?

What kind of  MPU protection  is defined for address space what is not covered by MPU descriptors ?

Can supervisor/user have any type of access what is not covered by any descriptor ?

Or it cause BusFault ?

Please clarify a bit. How-to calculate overlapping rules and what access right has regions what is not covered by any MPU descriptors . e.g some peripherals spaces for example ?

Regards,

Eugene

0 件の賞賛
1 解決策
365件の閲覧回数
jingpan
NXP TechSupport
NXP TechSupport

Hi,

All the rules are listed in 23.5.1. There is no other rule else. The address which is not covered by any region is opened to all master, read, write, execute.

Regards,

Jing

元の投稿で解決策を見る

0 件の賞賛
1 返信
366件の閲覧回数
jingpan
NXP TechSupport
NXP TechSupport

Hi,

All the rules are listed in 23.5.1. There is no other rule else. The address which is not covered by any region is opened to all master, read, write, execute.

Regards,

Jing

0 件の賞賛