EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

Searching for JTAG Flash Programmer for ARM7 and AT29c040a

Started by Daniel March 16, 2004
In article <85f19b17.0403180959.203796ef@posting.google.com>, 
hansch@cms.tecmath.de says...
> Tauno, > > alright. I understand. > > So I need the following: > 1. A programme on the MCU for reading a part of the > MCU's internal RAM and for copying it to the flash > RAM. > 2. A programme which loads parts of my final application > into the internal RAM. > 3. A programme which is breaking up my s-records file (containing > my final application) into multiple parts which fit into > the internal RAM. > > 1 is easy. > 2 I might use m*cgraigors OCD commander which works fine. > 3 hmm. How schould I tell my linker to break it up into > different parts and how to re-allocate them (e.g. branch- > instructions) because they are loaded into a different > part of memory at the end... > > Ideas?
My approach was to write my own host program (using Borland's C++ Builder) which sends the S-Record file one line at a time. The boot loader on the ARM reads the S-Record and puts the binary image in RAM, while saving the address part so it knows the final destination. The boot loader can decide how many lines to load based on available RAM, then stop as required and burn the RAM buffer to flash. The PC host program waits for a confirmation character after each line, so it will wait while the boot loader burns the flash segment. I didn't have to worry about all the parts of this process, since I had as much RAM as Flash and the ARM could read, decode and store in RAM as fast as the serial port could send data at 115KB. With the USB port, there is automatic handshaking. I guess the process would be more complicated if the Flash image was not contiguous---you'd have to note an address jump and start a new segment. I guess it would also be more complicated if the Flash required you to burn complete blocks of a fixed size. <<SNIP>> Mark Borgerson

The 2024 Embedded Online Conference