Neotron bringup steps

NOTE: Some of these links will be file-local for me, and won't work on the web rendered version of this document. Sorry. I'll try and get a hosted version working at some point.

  1. Fill out or stub out each of the BIOS API functions.
    1. api_version_get - Should be easy
    2. bios_version_get - Also easy
    3. serial_get_info - Not sure. Could return None for all calls, might not be useful though. I could probably fake a UART via defmt for output, but might need something for input. I could probably get a USB or TTL UART going from the HAL examples.
    4. serial_configure - I could probably force it to only accept a single configuration, based on whatever serial device I set up. Or it could lie and accept whatever config and just ignore it.
    5. serial_write - Output is easy, on defmt or a serial port.
    6. time_get - We can lie. Or use some clock or something. The 60Hz thing might be weird to handle. 1 frame is 546.133333 LFCLK ticks. 546 ticks would be an error of 0.024%, which is probably fine for now, or 60.015 FPS.
    7. video_memory_info_get - Setting up a framebuffer is probably easy, but the question is what to do with it?
    8. configuration_get - Probably okay to stub? Failing to store it is probably fine.
    9. configuration_set - Storing it in volatile memory to start with is probably fine.
  2. Determine memory layout for BIOS, OS, and apps
    • Probably just chunks of RAM for the OS/apps for now
  3. Write some kind of RAM loader for the OS from the BIOS
    • Maybe just a UART thing? Basic IHEX loader or something?
  4. Figure out how Neotron actually reads from a keyboard, uses audio, sdcard, etc.
    • Video is actually done here: https://github.com/thejpster/vga-framebuffer-rs

Share with Tanks

"How I Teach Embedded Systems"

https://twitter.com/AliAlSaibie/status/1359538612501676033