robocin / ssl-core

MIT License
10 stars 0 forks source link

Add `embedded` code support #16

Open joseviccruz opened 5 months ago

joseviccruz commented 5 months ago

Overview

Currently, the repository lacks documentation on its development, but some things are certain:

Given these two requirements, to enable the presence of embedded code, we need to make it work under these conditions.

Current Scenario

Goal

We should try to flash some code on one of the ssl boards from a code generated in ssl-core, inside a Dev Container, with the version of C++ we want here (C++20 or newer). It is not necessary to port ssl-embedded at this point.

Proposed Solution

  1. Create a top-level embedded folder
  2. Add an initial Dev Container inside it (it could be initial equal to common/cpp)
  3. Install the latest stable arm-none-eabi toolchain available inside Dev Container
  4. Create an initial CMake project (initially, it doesn't need to make use of the existing rules in this repository)
  5. List all interesting and required extensions related to embedded code on VSCode
  6. Create a very simple example to run a minimum code on one of our boards
  7. Compile and generate the necessary files

If the cross-compiling files are generated, that's enough for us to have succeeded!

References

joseviccruz commented 5 months ago

@lhcavalcanti @jgocm @mhco0

If you think something else would be useful for support, please feel free to add any requirements

mhco0 commented 1 month ago

@lhcavalcanti @jgocm @mhco0

If you think something else would be useful for support, please feel free to add any requirements

We could create a scenario where we emulate the boards, port the cross-compiled code to it, and test the new code before delivering it to the actual boards. However, I also feel this could also be done in another environment, I just feel that it was worth to mention some features like this.

joseviccruz commented 1 month ago

@lhcavalcanti @jgocm @mhco0 If you think something else would be useful for support, please feel free to add any requirements

We could create a scenario where we emulate the boards, port the cross-compiled code to it, and test the new code before delivering it to the actual boards. However, I also feel this could also be done in another environment, I just feel that it was worth to mention some features like this.

Very interesting! Do you have any suggestions for a board emulator?

mhco0 commented 1 month ago

@lhcavalcanti @jgocm @mhco0 If you think something else would be useful for support, please feel free to add any requirements

We could create a scenario where we emulate the boards, port the cross-compiled code to it, and test the new code before delivering it to the actual boards. However, I also feel this could also be done in another environment, I just feel that it was worth to mention some features like this.

Very interesting! Do you have any suggestions for a board emulator?

I'll need to have more knowledge about the hardware that you guys use and the project requirements to give a proper answer, mainly because emulation by itself is a complex topic. However, generally speaking, we could use something like a ISS and test the code on this service. As you mentioned about the arm-none-eabi toolchain, the first thing that came to my mind was to try to run something like the ARMulator. Maybe we could find another specific solution, but I'll need to have more information to search it out.