Part Number: AM263P4
Other Parts Discussed in Thread: SYSCONFIG
Hi,
I have a couple of questions regarding multi-core projects.
- The 'empty' example in the AM263 MCU+ SDK uses the same source code (main.c and empty.c) for each of the four R5 cores. This is all well and good; however, main.c calls multiple board initialization functions like System_init() and Board_init(). To me, this means that System_init() and Board_init() are called by each R5 core, meaning that System_init would be called four times. Is this intentional?
- In the multi-core SysConfig view, it seems like there are multiple places where MPPA can be set. The first place is in DPL->MPU ARMv7, where you can create MPU regions and set MPPA for these regions. The second place is in the Memory Configurator->Memory Region, where you can set the attributes (MPPA) within a given memory region. My question is, which of these takes precedence? For example, if I declare a memory region in the memory configurator with start address 0x0, length 0x40, and rwx permissions, and I declare an MPU region in MPU ARMv7 with a start address of 0x0, length 32 B, and 'Supervisor Block, User Block' permissions, which permissions setting takes precedence? Can I write and read to 0x0?
- In regards to MPU regions, what happens when different cores create overlapping MPU regions with different permissions? It is my understanding that the MPU distinguishes between different initiators (cores) via the privilege ID of a transfer; does this mean MPU regions in SysConfig are core specific? Also, it seems that it is possible to create overlapping MPU regions in the same core with different permissions. For example, I can create 'CONFIG_MPU_REGION_0' with start address 0x0, length 32B, and user/supervisor rw permissions. I can then create 'CONFIG_MPU_REGION_1' with the same start address and length, but no rw permissions. In this case, which region takes precedence? The TRM states that "In other words, the final permission is the lowest of each type of permission from any hit range." Does this mean that if there are overlapping SysConfig MPU regions, the region with the lowest privileges will take precedence?
- The TRM states that "The granularity of the MPU in this device is 1KB"; however, SysConfig allows granularity down to 32 B. How does TI handle this inconsistency? If I create a 32 B MPU region, am I actually creating a 1KB region under the hood, or am I misinterpreting the TRM?
Thanks for your help,
Jared Weyer
