pine64 / OpenPineBuds

Community maintained firmware for PineBuds Pro
148 stars 18 forks source link

Model or documentation ? #51

Open Fofeu opened 1 year ago

Fofeu commented 1 year ago

Hello,

I wanted to get an idea of how the firmware works and ... the Makefile alone is other 1k lines.

I can’t find any model or documentation of the firmware. Maybe I’m looking at the wrong place, in which case I’d like to know where to look. But if it isn’t the case, I’d like to help.

Right now, it seems that few people have a very deep knowledge of the platform. I’m not sure how my help would be appreciated, but worst case I can always poke them with questions and write everything down inside the project wiki, trying to get an idea of what is happening at different levels of abstraction.

Later, I can pull out my researcher hat and offer a lot of ideas. My field of research is programming languages for embedded real-time systems, so you can guess that I’d want to write a (more or less) formal model of the system and offload as much as possible to a DSL compiler. But that might come in a second step.

gamelaster commented 1 year ago

Hi @Fofeu , all what you see there is what all we have, together with stuff which are available on wiki.pine64.org .

There is actually nobody with deep knowledge about SDK and platform. There is only @Ralim , which have some skills, as he made most of the work on community firmware, still, he does all based on reading existing code.

So, best thing at the moment is to try to research the SDK and project.

Ralim commented 1 year ago

Hia @Fofeu,

I'm probably one of the few that have done any sort of deep dive on the firmware. We have no docs other than the wiki notes or what comments I've added as I've explored the firmware. There is no model, and making one would be rather hard was large portions of the "interesting" code is binary blobs that we dont have the source to. (Doesnt mean its a bad idea, just be a little forewarned it would be an uphill battle at times).

Happy to help you or answer any questions; I can be found in the community chat for the Pinebuds 👋🏼 .

Fofeu commented 1 year ago

Thanks, I’ve looked at the build process last week (for me, it’s usually the best first step to get a framework of what is happening). If I have time, I’ll ping you and maybe you can answer some of my questions :)

Regarding the model. I know that the Model-Driven Engineering people have a very strict definition of what a "model" is, but imho a poor model is better than no model at all. For instance, we may not know how blob B does functionality F, but if we know that it does it by registering a task τ with function f, with start date O, priority P and period T, that’s already a good start. We are missing information (most notably communications and purity), but we switched from a total black box to basically the base real-time task model !