diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 34 |
1 files changed, 23 insertions, 11 deletions
@@ -18,15 +18,29 @@ At the time of this writing, on Parabola GNU/Linux-libre that means: - arm-none-eabi-binutils 2.42-1 - arm-none-eabi-gcc 14.1.0-1 - arm-none-eabi-newlib 4.4.0.20231231-1 - - picotool 2.0.0-2 + - picotool 2.1.1-1 Then, simply run `make`. This will create -`build/rp2040-*/cmd/sbc_harness/sbc_harness.{bin,uf2,elf}` files. The -`.bin` file is the raw firmware image; the `.uf2` file is that wrapped -into a [USB Flashing Format (UF2)](https://github.com/microsoft/uf2) -container that can be used with the bootrom flasher (yes, the -`.uf2` is expected to be about twice the size of the `.bin`); the -`.elf` is the firmware image plus debugger symbols. +`build/rp2040-*/cmd/sbc_harness/sbc_harness.{elf,bin,hex,uf2}` files: + + - The `.elf` is the firmware image plus debugger symbols and + relocation data. + - The `.bin` file is the raw firmware image (`objcopy -Obinary + INFILE.elf OUTFILE.bin`). + - The `.hex` file is the raw firmware image, encoded in the [Intel + HEX](https://archive.org/details/IntelHEXStandard) format (`objcopy + -Oihex INFILE.elf OUTFILE.hex`). Note that unlike the `.bin`, the + `.hex` may contain gaps/holes; holes are filled with 0x00-bytes in + the `.bin`, but tools for working with the `.hex` may fill them + with other data, causing minor differences when comparing the + `.bin` and `.hex`. (Yes, the `.hex` is expected to be about 2.8 + times the size of the `.bin`; twice for being ASCII-encoded hex, + plus another 13 bytes overhead for every 16 bytes of input.) + - The `.uf2` file is the `.bin` wrapped into a [USB Flashing Format + (UF2)](https://github.com/microsoft/uf2) container that can be used + with the bootrom flasher. (Yes, the `.uf2` is expected to be about + twice the size of the `.bin`; each 128-byte block of input is + wrapped in a 256-byte UF2 block.) There are several ways of putting this firmware file onto the harness: @@ -55,9 +69,7 @@ There are several ways of putting this firmware file onto the harness: The harness uses DHCP to acquire an IPv4 address, then serves the 9P protocol over TCP: - - TCP port: 564 (9P does not have a standard TCP port number, but - this is the default port number used by most 9P-over-TCP clients, - including the Linux kernel's v9fs driver). + - TCP port: 564 - Supported protocol versions: - `9P2000` (base protocol): Yes - `9P2000.u` (Unix extension): Yes, with Linux kernel @@ -82,7 +94,7 @@ library for your programming language of choice. Some notes on choosing a client: - On x86-32, the Linux kernel v9fs driver is known to drop entries - from directory listings; I advise using 9pfuse instead of you want + from directory listings; I advise using 9pfuse instead if you want to mount it on 32-bit systems. - I generally like mounting it as a real filesystem, but this means that you only get errno errors, and the more-helpful error strings |