I can program the board using the 'debug' menu. I want to release the executable to production. How do I program the board outside the IDE? I could not find anything in the manual. I am using an LPC4537.
Send a hex file to the factory and have them use FlashMagic?
Thanks. Its a low volume job. We have the ulink-me icd. Is there a utility which works with the ulink-me (other than Keil licenced) Our application is quite large & I don't want to pay for another licence just to programme. Our purchasing loop is also painful & slow so using the ulink-me (if possible) is preferred.
Regards
Check Segger's offerings, the ULink's are tied to Keil.
Thanks.
To summarise AFAUK: 1) The ulink-me will only work with Keil 2) There is not a standalone Keil programmer which may be run licence free
and therefore I should look to another's product.
Thanks
3) Create your own programming/test strategy
If the board can be programmed using a serial cable and FlashMagic, then FlashMagic can be replaced by own software. FlashMagic is free for personal use but costs money when used in a factory.
Hi, The board is normally programmed using a ulink-me within uVision. The board (LPC4537) is programmed using ARM JTAG, SWCLK, SWDIO, TDI, SWO
In the PIC world the development environment comes with a standalone programming application which does not have licence restrictions. I could also buy an PIC ICD which would allow me to program a hex file without licence restriction.
It seems very odd that I cannot just buy a programming piece of hardware that comes complete with a standalone application which allows me to program a board without licence issues. Its just JTAG after all??
www.segger.com/j-flash-release-notes.html www.segger.com/production-programmers.html www.segger.com/flasher-arm.html
In the PIC world, you are buying the programming tools from the chip manufacturer.
While Keil is an ARM company, they focus on tools for developing software. And their products were developed before ARM bought them.
In the ARM world, different chips gets programmed differently since the chips comes from a large number of chip manufacturers. And some chips can be programmed by letting the processor run a program that programs the chip. Or having the JTAG adapter perform the actions. Other processors requires that boot loader code in the chip is used for flashing - in which case the JTAG adapter would normally have to send a program to RAM and then send the data to this program and have the program use the IAP functionality in the chip.
So if you have a tool that supports a specific JTAG adapter and comes with the required algorithms - or know how to write the algorithms - then you can use that tool. But companies aren't so interested in selling a cheap JTAG adapter with a license-free software when they need to invest a large amount of time to get the software to support the large range of ARM chips in existence. Microchip makes their money from selling processors. Keil doesn't make money from selling any processors.
For the products I work with, we really do not use any JTAG interface for factory-programming of the chips. We use the UART-based IAP route. It is fast. It is easy. And FlashMagic is a software from NXP - the chip manufacturer. And the tool recommended by NXP - the chip manufacturer. At €400 for a license for production use, it really isn't that expensive.
How do you get the IAP into the chip in the first place?
I agree; IAP is the way to go but I have to write it first.
PS I am/was not ARM knocking. Having used MPLAB-X & uVision then I know which side my debugging bread is buttered on even when using a cheap ME debugger. It's because of this difference that I am surprised that the standalone option isn't there.
IAP is already in the chip. In ROM.
You have twice written LPC4537. Are you sure that is correct and that it isn't LPC4357 you mean?
The LPC4357 does have a boot ROM, that has support for ISP and IAP. ISP can be handled from the outside. IAP requires that you run a program that calls the IAP functions to write to the internal flash.
See chapter 5 of this document: www.nxp.com/.../UM10503.pdf
When you use Keils Ulink, it will use a flash algorithm that is a little helper program. So the program is sent to this helper program and the helper program uses the internal IAP to write into the flash. But FlashMagic can use ISP to send the program directly to flash without an IAP helper program in RAM.
Thanks. LPC4357, typing on a laptop & not checking!
We are very low volume & so a manual programming using the FlashMagic would be best. E400 is not many hours of NRE....
I will look into the ISP option route if/when we produce high volumes.
FlashMagic does support ISP.
Depending on how you configure your boot pins you normally automatically get an empty chip to wait in the ROM monitor program for FlashMagic or other program to connect and perform ISP. If using an UART, then all you need is a RS232-to-TTL of suitable voltage level. Or maybe a USB-to-3V3 logic-level RS232 cable for maybe $15.
So FlashMagic works both for low volume 1-10 boards or high volume. And is free for development but requires a not too expensive license for factory use - or for field programming. And the licensed versions has scripting support.
But you reall have quite a number of options besides JTAG with that specific LPC4357.
It is even possible to send a programming cable to a customer and have them download FlashMagic and pretend to be developer if you want them to do a full factory reprogramming of a device, i.e. replace everything including the boot loader.