Anyone recognise this bootloader?

Go To Last Post
7 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Client has a bootloader which accepts code download in the following form:

%!xxxx...

Where 'xxxx' is a hex address, and 512 bytes of data follow. Each byte is encoded as a pair of ASCII characters representing the Hex value.

Also:

%/xxxx

Erases 512 bytes of memory, starting at address 'xxxx'

And that's about all the information that seems to be available :shock: :!:

Do those forms look familiar to anyone :?:

Just wondering - in case it is a "known" product from somewhere...

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

awneil wrote:
%!xxxx...

Google tends to ignore the %! and just search for "xxxx" - which gives some, err, "intersting" results... :oops:

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You could extract the code and search for any ASCII strings (assuming it might report some text messages?) then Google for those messages which might find the source.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

If the chips weren't locked.

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

No, I don't recognise that format.

Mind you, it would be simple enough to create this format from a regular hex file.

Personally, I would replace the bootloader with a more conventional one.

David.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

awneil wrote:
... 512 bytes of data follow. Each byte is encoded as a pair of ASCII characters

Actually, I think it's 512 characters representing 256 bytes.

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Well, you can just look at the %/xxxx lines and compare with the %!xxxx blocks.

I would guess that the strategy is byte orientsted, but you only need to inspect the %!0000 block and whether it is followed by a %/0100, %!0100.....

Either you have ISP access to your client's AVR and can install a regular bootloader.
Or you pre-process a regular HEX file into the required format. Then use the custom bootloader.

David.