SMPU MPC5744P PID

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

SMPU MPC5744P PID

14,889 Views
Mennazz
Contributor II

Hello, I want to ask about setting a process ID for a region while configuring the SMPU.

the SMPU_EnableProcessIdentifier () function present in the smpu_hw_access.h uses WORD4, which is undefined in any of the MPC5744P files, so my question is how to set a process ID for every region using SMPU

 

Mennazz_0-1681986343372.png

 

26 Replies

3,096 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

Yes, sure, you can split the regions as needed, there are no restrictions for this.

Regards,

Lukas

0 Kudos
Reply

3,094 Views
Mennazz
Contributor II

Okay, there is a strange behaviour occurring when I divide the RAM into multiple regions., not all regions are configured.

For example
I assigned task ID 1 to Region 1 and task ID 2 to region 2. Only region 2 functions properly, and when I configure region 2 first, then region 1, only region 1 functions properly. Could you please explain why?

0 Kudos
Reply

3,077 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

Not sure if I can understand the description. First rule is that all areas which you access needs to be covered by some descriptor once SMPU is enabled. Access to uncovered area is considered as access violation.

If IVOR2 or IVOR3 is triggered, you should be able to find the reason - you know which access caused the error, so you can check corresponding descriptor.

Regards,

Lukas

0 Kudos
Reply

3,073 Views
Mennazz
Contributor II

The file attached shows how I initialised the CMPU. Regarding regions 3 and 4 initialised in the given file
region 3 from 0x4000 0000 to 0x4002 0000 with task ID 0
region 4 from 0x4002 0000 to 0x4005 FFFF with task ID 2.
When I try to access region 3 with a process ID of 0, IVOR 2 is triggered, but I can access region 4 with a process ID of 2.
If I switched them and initialised region 4 first, then region 3,
I can access region 3 successfully with process ID 0, but when I access region 4 with process ID 2, IVOR 2 is triggered.

0 Kudos
Reply

3,059 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

You use the same ESEL (the same descriptor) for both region 3 and region 4.

So, you initialize the first one - and then you overwrite the same descriptor by another initialization. Then the first one is lost, of course. You need to use two different descriptors - two different ESEL values.

Regards,

Lukas

0 Kudos
Reply

3,189 Views
Mennazz
Contributor II

Okay Great thank you 

0 Kudos
Reply