Skip to content

Files

Latest commit

 

History

History

bootloader10

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
This is a very simple bootloader.  Yes the pico makes it easy to run
programs in flash or ram, but anyway...

GPIO 0 UART0 TX
GPIO 1 UART0 RX
115200 N81

Can use another pico as a picoprobe.

Pico Probe GP4/UART1 TX -> Pico Target GP1/UART0 RX
Pico Probe GP5/UART1 RX -> Pico Target GP0/UART0 TX

This bootloader is expecting motorola s-record formatted data.

en.wikipedia.org/wiki/SREC_(file_format)

arm-whatever-objcopy --srec-forceS3 notmain.elf -O srec notmain.srec

It is specifically expecting S3 records

S00F00006E6F746D61696E2E737265631F
S3150000800002D9A0E3050000EBFEFFFFEA001080E5C1
S315000080101EFF2FE1000090E51EFF2FE11EFF2FE15E
S3150000802010402DE9A4009FE5F9FFFFEB0E16C0E313
S31500008030021681E394009FE5F3FFFFEB90009FE5B6
S315000080400219A0E3F0FFFFEB0040A0E30400A0E16B
S31500008050014084E2F0FFFFEB020754E3FAFFFF1A48
S3150000806070009FE50219A0E3E7FFFFEB0040A0E3E5
S315000080700400A0E1014084E2E7FFFFEB020754E3BE
S31500008080FAFFFF1A48009FE50219A0E3DEFFFFEBA7
S315000080900040A0E30400A0E1014084E2DEFFFFEB24
S315000080A0020754E3FAFFFF1A28009FE50219A0E32E
S315000080B0D5FFFFEB0040A0E30400A0E1014084E20D
S315000080C0D5FFFFEB030654E3FAFFFF1ADAFFFFEAD8
S311000080D0100020202C0020202000202082
S705000080007A

Not S1 records

S00D000068656C6C6F2E7372656303
S113800002D9A0E3050000EBFEFFFFEA001080E5C3
S11380101EFF2FE1000090E51EFF2FE11EFF2FE160
S113802010402DE9A4009FE5F9FFFFEB0E16C0E315
S1138030021681E394009FE5F3FFFFEB90009FE5B8
S11380400219A0E3F0FFFFEB0040A0E30400A0E16D
S1138050014084E2F0FFFFEB020754E3FAFFFF1A4A
S113806070009FE50219A0E3E7FFFFEB0040A0E3E7
S11380700400A0E1014084E2E7FFFFEB020754E3C0
S1138080FAFFFF1A48009FE50219A0E3DEFFFFEBA9
S11380900040A0E30400A0E1014084E2DEFFFFEB26
S11380A0020754E3FAFFFF1A28009FE50219A0E330
S11380B0D5FFFFEB0040A0E30400A0E1014084E20F
S11380C0D5FFFFEB030654E3FAFFFF1ADAFFFFEADA
S10F80D0100020202C0020202000202084
S90380007C

It only supports S0, S3, and S7 records.  You can certainly add more
support.

Using minicom you download by selecting ascii instead of xmodem
or kermit or whatever.  This just sends the file as is.  If using
some other terminal emulator you have to just figure it out.  Or
cut and paste it from an editor like the program above and paste
it into your dumb terminal window.

Minicom spawns other programs to do the downloads so there is or
can be a dead period after downloading before minicom receives data
so to deal with that once downloaded you press the letter g to go or
run the program.  This way you or at least I dont lose any characters
from the downloaded program.

The bootloader is loaded from flash to 0x20040000 to be well out of
the way of ram based programs at 0x20000000.

You can for example take notmain.srec from the blinker01 directory
download it and run it using this bootloader.