Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Andy Ayre

There should never be code located at 0x001C - it is reserved for the checksum. If your code is using it then you need to add a directive to reserve it. Andy
It would be best to compare the datasheets of the two devices and look for differences. Andy
ARM Cortex / Re: LPC1833 external SPI flash bootloader
August 19, 2021, 08:53:24 AM
You don't find the RAM location, you choose the RAM location. You can put the bootloader at any location in RAM that you wish. The only requirement is that the start address in the descriptor matches your linker map file. The descriptor tells Flash Magic where in RAM to download the bootloader to and start execution from.

ARM Cortex / Re: LPC1833 external SPI flash bootloader
August 18, 2021, 09:14:32 AM
We provide examples for users to adapt. If you go down the route of adapting then we don't have your changes or your hardware so you will have to debug it yourself. The support for external flash is not plug-and-play because of all of the variables - it's a development task.

ARM Cortex / Re: LPC1833 external SPI flash bootloader
August 17, 2021, 09:02:04 AM
The RAM location is the sixth entry in the descriptor. This is where the interrupt vectors need to start. Andy
You don't program the hex file into flash - it is downloaded to RAM automatically.

It looks from the debug file that you are choosing the LPC1833 rather than your external flash bootloader. In section 1:

Click on Change
Expand External Memory (third item)
Expand UART
Choose your custom bootloader

If you don't see your bootloader then copy it into the Bootloaders\External Memory folder.
The ram start address in the descriptor doesn't match the start address you are actually using. Andy
In your bootloader's descriptor you need to specify how the bootloader gets into the LPC1833, for example:


tells Flash Magic to automatically download the bootloader using SWD via an NXP Link2.

For the LPC1833 the bootloader should be downloaded into RAM not Flash. If you look at the .map file of the included example the code starts at address 0x10000500. This address also appears in the descriptor so that Flash Magic knows where to put it.


What do you mean the "new image is not updated"? That Flash Magic is not sending the bootloader? How are you verifying that?

You will need to change all of the parts related to SPIFI to match your external flash device. Andy
You will need to run your custom bootloader in a debugger, e.g. Keil uVision, to see where it is getting stuck. The error means that Flash Magic is not getting a response.

The example booloader for the LPC4337 uses external SPIFI and that part is the same as the LPC1887 for this purpose, so should be a close enough starting point.

We can also develop this for you as a consulting project - please email us if you want to go down that route.

General Discussion / Re: Python DLL interface file
August 03, 2021, 10:53:03 AM
For python support you will need to download V11 by going to and entering your activation code. Then choose Tools -> Scripts... to access the Python API.

However if you want to add Flash Magic to your own python application then you will need to access the DLL directly using the Python ctypes library.

General Discussion / Re: Python DLL interface file
August 02, 2021, 09:28:04 AM
Depending on which family you are using, it would be something like FlashMagicARMCortex.dll. Andy
We include an example for the LPC18S37 that uses SPIFI. See the Bootloaders\External Memory\LPCxpresso18S37 folder in the installation. It may work out of the box for you or it may need modifying.

We can customize and test this for your hardware as part of a consulting project - please contact us for a quote info at esacademy dot com.

Thanks for the suggestions - we will look into them. Andy