SMPU MPC5744P PID

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

SMPU MPC5744P PID

14,890件の閲覧回数
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 返答(返信)

3,097件の閲覧回数
lukaszadrapa
NXP TechSupport
NXP TechSupport

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

Regards,

Lukas

0 件の賞賛
返信

3,095件の閲覧回数
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 件の賞賛
返信

3,078件の閲覧回数
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 件の賞賛
返信

3,074件の閲覧回数
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 件の賞賛
返信

3,060件の閲覧回数
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 件の賞賛
返信

3,190件の閲覧回数
Mennazz
Contributor II

Okay Great thank you 

0 件の賞賛
返信