Compiler doesn't find function definition [libopencm3]

Yes, you can arbitrarily source framework-libopencm3 from say a Github repo using platform_packages. Note that PlatformIO requires that the package contains a package.json declaring the package name and version. The default current is

{
  "name": "framework-libopencm3",
  "version": "1.10000.211103",
  "description": "Open source ARM Cortex-M microcontroller library",
  "keywords": [
    "framework",
    "arm"
  ],
  "homepage": "http://www.libopencm3.org/",
  "license": "GPL-3.0-or-later",
  "repository": {
    "type": "git",
    "url": "https://github.com/libopencm3/libopencm3"
  }
}

For internals see e.g. here.

1 Like