I have created a simple set of functions to utilize ISP. I have successfully done the following:
Read device signature
Read high&low fuse bits
Read calibration bits
But I am having issues trying to understand the read/write from program memory. Mainly it says its uploaded by word/page.
Word is just a 16 bit right? Whats a page?
I setup a simple function trying to read the first 3 'words' from a traget device; I get the following results: (ProgMem1:3)
[M32] >> Received response from target, gathering data... [M32] >> [M32] >> DeviceSig: 91 [M32] >> [M32] >> LockByte: ff [M32] >> [M32] >> lFuse: ee [M32] >> [M32] >> hFuse: df [M32] >> [M32] >> exFuse: ff [M32] >> [M32] >> CaliByte: 58 [M32] >> [M32] >> ProgMem1: c074 [M32] >> [M32] >> ProgMem2: c081 [M32] >> [M32] >> ProgMem3: c080 [M32] >> [M32] >> Done.
This was just a shot in the dark; but I did get data which is nice. But; here is the first few line from the .hex file on the target2313:
:1000000094C0A1C0A0C09FC09EC09DC09CC01EC186 :1000100047C199C098C097C096C095C094C093C07E :1000200092C091C090C00A0D3E3E20436F6D706C2F :100030006574652E0A0D003E3E4F55545055543A96 :1000400020003A00213E204552524F523A204E6F36 :100050002070726573656E636520666F756E642EC1
I dont understand how they translate; or am I way off here? Could anyone provide me some information on how the read/write to program memory and EEPROM are performed? and if those first 3 'words' look correct..
*edit: Also; am I correct in thinking the .hex file is what is uploaded to the AVR? For somereason I have that in my head; of course I do not have extended knowledge of the innerworkins of the AVR-GCC libc toolchan or the programming interface avrdude; or how they work.