CoDePretzel / CoDePretzel_Framework

Una infraestructura libre (O/S) de herramientas, técnicas y configuraciones que nos permita desarrollar software embebido de calidad, con facilidad de replicación, modularidad y con un proceso de desarrollo establecido.
Apache License 2.0
0 stars 0 forks source link

Documentar cómo agregar un framework personalizado a Platformio #19

Closed Karosuo closed 1 year ago

Karosuo commented 1 year ago

Hasta ahora, parece que para lograr dicho objetivo es necesario cumplir con lo siguientes elementos:

Nota: Es posible que por ende, otros issues que originalmente estaban separados, se vean resueltos implicitamente, hay que tener precaución de hacer la nota y la referencia en ellos de que fueron cubiertos por este

emmanuelnunoe commented 1 year ago

Guia para agregar un nuevo framework a PlatformIO https://community.platformio.org/t/adding-a-new-framework-to-platformio/297/2

Karosuo commented 1 year ago

Hasta ahora parece que el instrumento de framework para PlatformIO está bastante asociado a la plataforma donde va a ser usado, al menos en la documentación. Pero, su independencia viene de que es tratado como un package y administrado por el gestor de dependencias de PlatformIO. Por lo tanto agrego dos referencias a

Karosuo commented 1 year ago

Continuando con el comentario anterior Para tener un framework custom disponible en el PlatformIO registry (el lugar donde se suben y administran los packages para que sean públicamente accesibles através de PlatformIO, relacionado con #20 ), es necesario crear un package.

Sin embargo, hay 2 maneras de usarlo.

  1. Incluirlo como parámetro lib_deps en platformio.json, que significaria incluirlo manualmente en cada proyecto.
  2. Incluirlo en un platform custom que ayude a pre instalarlo (y otras dependencias) cada que se seleccione dicho platform en un proyecto nuevo, a través de una board (lo cual significa que también necesita una board custom)

Nota: Es importante saber el platform y la board custom que se mencionan arriba, pueden ser copy/paste de uno existente, por ejemplo atmelmegaavr y AVR128DA48.json respectivamente, solo cambiando las configuraciones pertinentes para que incluyan el nuevo framework

Karosuo commented 1 year ago

Qué pasa si queremos agregar un toolchain custom?, bueno, es bastante confuso pero parece que es configuración entre el framework el platform y los packages que correspondan. https://community.platformio.org/t/distributing-custom-toolchain-platform/24534/2 Aún no llego a esa parte, así que faltan preguntas por resolver.

Karosuo commented 1 year ago

Al parecer me brinqué una documentación importante para entender la configuración de contextos de PlatformIO https://docs.platformio.org/en/latest/scripting/construction_environments.html#scripting-envs También sugieren la documentación de advanced scripting, pero no creo que sea estrictamente necesario para esta parte aún (aunque quizá me equivoque porque para crear los scripts de build para el platform custom, probablemente sí se vaya a requerir)

Karosuo commented 1 year ago

También es importante mencionar que parece que Platformio ya tiene una forma de cómo organizar packages que son dependientes de código de HAL https://docs.platformio.org/en/latest/manifests/library-json/fields/build/extrascript.html

EDIT Esta forma indica la manera de agregar un código HAL que viviría en el arbol de directorios del proyecto, según me parece, no está usando un package externo, no lo está incluyendo en platformio.ini, ni en lib_deps?