Flash Update Process / In-Application Programming IAP - Does AN10256 apply for the LPC43xx series as well?

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

Flash Update Process / In-Application Programming IAP - Does AN10256 apply for the LPC43xx series as well?

1,483 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Tony Mach on Mon Nov 24 06:22:20 MST 2014
Hello,

we are considering to migrate one of our products to a new processor. One of the candidates is the LPC4310, as it is a very interesting processor. However there is one topic where I need to gather more information: The update process for the flash. Unfortunately we need to update the flash "by hand", as we get the firmware image from an external component.

Here are the details of what we need to do:
Our product will include a 8 Mbyte Flash for the program (with less than 512 KByte of program) and data (with about 7 MByte of data), plus a 32 MByte SDRAM for runtime data. During a firmware update, we will receive the flash image from a external component and store it in SDRAM. Currently (with a processor from another company) we have to switch execution over to the SDRAM, in order to be able to program the flash - this is tedious and not well supported. When porting our application, we would need to find a solution for the update process.

As I see it, we have two alternatives when using NXP:
A. Switch execution over to the SDRAM, then write new image to flash.
or
B. Switch execution over to another area of the flash, then write new image to area of current flash program.

Before we can commit to the LPC4310 processor, we need some form of information (e.g. an application note or an reference implementation) from NXP that shows that what we want to do is possible and (somewhat) supported. Unfortunately I have not found much information about this, possibly because I looked in the wrong area.

If someone could point me to information from NXP about the flash update process, and how we can realize our custom update scheme, it would be most appreciated.

Kindest regards,
Tony

[u]Update 2014-11-26:[/u]
I found while looking at other LPC the application note AN10256, and specifically for the LPC1700 the application note AN11071 - do they apply for the LPC43xx as well? It would be really helpful to include some application notes about IAP for the LPC43xx as well, I found [s]nothing [/s] a different application note (AN11248) here: http://www.lpcware.com/node/11538/104
Labels (1)
0 Kudos
Reply
4 Replies

1,387 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by lpcxpresso-support on Thu Dec 04 05:02:09 MST 2014
IAP is for Internal flash only. It does not even exist on flash-less parts.
0 Kudos
Reply

1,387 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Tony Mach on Thu Dec 04 04:14:24 MST 2014
Thank you for your reply!

Indeed, the LPC4310 is flash-less, and we want to choose explicitly a flash-less MCU because of the price advantage over a MCU with internal flash (as we have a external flash in our product anyway).

The documentation supplied by NXP with regards to booting from external flash, and execute in place from external flash explains most of the things we need to accomplish with a flash-less MCU.

However, regardless whether we use internal flash or external flash, we would need to be able to update the content of the flash while running program code from said memory. I don't know if the term "IAP" applies only to internal flash, but isn't the problem more or less the same when running from external memory, and wanting to update that external memory?

I haven't had time to fully study the documentation on IAP by NXP, but I will do so in the next days.

In the meantime, could you tell me if there is anything about the IAP process, that applies only to internal memory, and would hinder us from using it to update external flash? Or the other way around, Is it possible to use the "internal" IAP process (with maybe some modifications) to update the external flash?

Possibly I could have written my question better, however I am new to these specific questions and need to ask for apology if I could not make myself clear enough.
0 Kudos
Reply

1,387 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by lpcxpresso-support on Wed Nov 26 03:37:32 MST 2014
Well in the first place, you should note that the LPC4310 has no internal flash, thus you can't use IAP to program it!

http://www.nxp.com/products/microcontrollers/cortex_m4/lpc4300/#description

Normally, you would use external flash with these parts (typically SPIFI) - which you can program using LPCOpen lpcspifi lib:

http://www.lpcware.com/SPIFI

[A new version of this support a wider range of devices is expected to be released in the near future]. Note that in order to update SPIFI, you will need to be running from other memory (RAM or internal flash).

If you want to use a part with internal flash (e.g. LPC4357), then these can be programmed using IAP in a similar way to other NXP LPC parts. And example of this is provided as part of the LPCOpen package for these parts

http://www.lpcware.com/lpcopen
http://www.lpcware.com/content/nxpfile/lpcopen-software-development-platform-lpc43xx-packages

However our internal flash is currently limited to two banks of 512KB each on the LPC43xx family. You can run from one bank, and program the other if required. Parts with internal flash do also support the use of external flash too.

Regards,
LPCXpresso Support
0 Kudos
Reply

1,387 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Tony Mach on Wed Nov 26 03:14:16 MST 2014
I found some documents and put an update on my original post.

However it is still necessary for us to have some sort of official information on the IAP of the LPC43xx series before we can commit to the NXP LPC43xx chip.
0 Kudos
Reply