Place slave code in Flash memory LPC55S69

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

Place slave code in Flash memory LPC55S69

1,628 Views
naga
Contributor III

Hi,

I use the LPC55S69-EVK development board (LPCXpresso55S69) and IDE V11.

How can I place the slave code in flash memory using the "New Project ..." command?


In this way, to create a new master / slave project, the IDE places the slave executable code in SRAMX without the option of being placed in Flash memory.

Can you solve this problem?

Neculai

Labels (1)
4 Replies

1,417 Views
lpcxpresso_supp
NXP Employee
NXP Employee

You should be able to do this if you split the flash available on this device into two "partitions" using the IDE's Memory Configuration Editor. You will then need to ensure that the master and the slave projects list the appropriate flash partition first in their memory configurations.

However doing so is definitely not going to be good from a performance point of view, as you will get bus contention from the two cores both trying to access the flash at the same time.

Regards,

MCUXpresso IDE Support

0 Kudos

1,417 Views
naga
Contributor III

Hi,

Placing the code in SRAM or Flash memory involves advantages and disadvantages in each case.

To make a brief presentation, I only add a few disadvantages of placing the code in SRAM:
- Memory space is simultaneously used, with the same code in SRAM and Flash
- An electromagnetic pulse can alter the executable code information in SRAM that is only restored to a new reset.
- The size of the executable code is limited to the SRAMX size

These are the reasons why I want to place both master / slave codes in Flash memory.

The "LPC55S6x product data sheet" document should specify power consumption performance and computing performance when both cores are active and work at 12, 48 and 96 MHz frequencies, similar to the tables
- Table 15. CoreMark score,
- Table 16. Static characteristics: Power consumption in active and sleep modes,
- Table 16 next. Static characteristics: Power consumption in active and sleep modes

The expression "not going to be good from a performance point of view" is relative, while design engineers need absolute data.

So I'm interested in what exactly are the steps to be taken in case of a new dual core project in IDE so that the codes are placed exclusively in Flash memory.

Regards,

Neculai

0 Kudos

1,417 Views
Alexis_A
NXP TechSupport
NXP TechSupport

Hi Neculai,

Sorry for the late replay.

I finally found how this is done. Please check the instructions bellow:

First you will need to create the SLAVE Project. In the Quickstart Panel select the option New Project, select the SDK from the LPC5556x. In the next window select the option for Slave core:

pastedImage_1.png

Press the next button and in the next window, split the flash memory and delete the first and third RAM section. Also in the driver for the flash controller select the LPC55xx_S.cfx. After that press the Finish button

pastedImage_3.png

You'll need to create now the master core project. Follow the same process and in the next window select the option for master core:

pastedImage_5.png

In the following window split the flash memory, and select in the Slave project for M33Slave the project you previously create. Doesn't matter the Link section since we'll change it. Also the driver leave it as it is. Press the finish button.

pastedImage_7.png

After that, we'll need to set the second flash section as the one used for the slave core. Access to the properties of the project -> C/C++ Build -> Settings ->MCU Linker -> Multicore and in the Master Memory select the second section of the flash.

pastedImage_9.png

After that, always start the debug session of the master core and after the second core.

I hope this helps you.

Best Regards,

Alexis Andalon

1,417 Views
Alexis_A
NXP TechSupport
NXP TechSupport

Dear Neculai,

The image of the slave code is placed in RAM but the primary code will boot the secondary core and place the image in flash. 

pastedImage_1.png

If you check the .map file you can see something like this that says where is loaded the slave core image.

I hope this helps you.

Best Regards,

Alexis Andalon

0 Kudos