Raspberry Pi Pico: What is this obfuscated code(?) doing in its boot ROM?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • pico-bootrom

  • A trampoline in code is something you jump off of - essentially, a redirection snippet. You jump into it and it bounces you somewhere else.

    In this case, the use is documented where it's implemented: https://github.com/raspberrypi/pico-bootrom/blob/master/boot... . It's a custom wrapper to call ROM functions. When the ROM function returns, the trampoline executes a debugger breakpoint. This is done so that the debugger can call into ROM easily without needing to set a hardware breakpoint.

  • abi-aa

    Application Binary Interface for the Arm® Architecture

  • Normally you'd save more than just PC as AAPCS (https://github.com/ARM-software/abi-aa/blob/main/aapcs32/aap...) mandates stack to be aligned to 8 bytes for "public interface" functions. But this is is not a "public" function so it's fine to only save lr here.

    "bx lr" is only used on it's own when the function doesn't call another function (altering lr), and doesn't need to save any registers.

    If you see pop {lr}; bx lr then that's code that's being compiled to explicitly support Armv4 (e.g. Arm7TDMI)

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Ask HN: Anyone knows where to buy a cheap Linux box?

    1 project | news.ycombinator.com | 1 Jun 2024
  • What is the worst AWS service? I vote for Amplify

    1 project | news.ycombinator.com | 31 May 2024
  • Show HN: Terminus – A Free, Versatile, Self-Hosted OS Based on Kubernetes

    1 project | news.ycombinator.com | 31 May 2024
  • How to parse config files with Bash

    1 project | news.ycombinator.com | 31 May 2024
  • A minimal TLS 1.2 implementation in a pure Bash script

    1 project | news.ycombinator.com | 30 May 2024