Code Monkey home page Code Monkey logo

Comments (6)

pat-rogers avatar pat-rogers commented on September 23, 2024

That approach (automatic generation) seems inapplicable in this case, though, does it not?

from ada_drivers_library.

pat-rogers avatar pat-rogers commented on September 23, 2024

Well, in the immediate case I think we are in hand-generated mode, but what are the possibilities down the road that you see?

from ada_drivers_library.

pat-rogers avatar pat-rogers commented on September 23, 2024

What would you think of having the package private part generated, containing the register declarations? Or if not the actual package text, maybe just generate the text of the register decls themselves, and then we could manually copy/paste them into a package declaration.

from ada_drivers_library.

Matthias-R avatar Matthias-R commented on September 23, 2024

All registers of a specific processor are described in its CMSIS-SVD file. Unfortunately, some fields of the description are optional. If all optional information were there, a fully automatic generation of .ads-files with the register definitions would probably be possible. But even with not-so-complete SVD files (e.g. definitions of enumerations are completely missing in SVD files from STM) a fair amount of tedious work can be done automatically. My proof-of-concept SVD to ads converter generates a skeleton with record definitions for the registers. It leaves some manual work with type definitions for the fields in the register (especially if the type should be an enumeration - as I mentioned before, enumerations are missing in the files from STM). Some special constructs in the SVD files aren't recognized at all - but as I said, it is a proof of concept, far away from being complete.
I already had some discussions about the topic 'SVD to Ada converter' with Quentin. I'm not sure if this is the right place to discuss details of such a converter or if there should be another place?!

Regarding your last comment: Copy/paste could be a possibility if there is manual work to do anyway.
Nevertheless, I would prefer a clean separation between the register definitions (= the part with a direct correspondence to the UM of the processor, ideally autogenerated, in reality perhaps with some manual finishing) and functions/procedures based on these definitions. Even if this means that someone has to find even more sensible package names... ;-)
I don't like the idea of hiding the definitions in a private part. I would keep the possibility to access the registers directly - using the convenience functions should not be mandatory.

from ada_drivers_library.

pat-rogers avatar pat-rogers commented on September 23, 2024

Yes, you should work with Fabien.

I would very much welcome automatic generation, even if incomplete. Deciding whether or not to generate it within the text of a package declaration is a secondary matter.

from ada_drivers_library.

lambourg avatar lambourg commented on September 23, 2024

Hello Matthias,

The transition of this drivers repository to make use of the SVD branch is now almost complete. Only one step left (merge the 'svd' branch with the 'master' branch). Il will thus close this Issue.

Best regards,

  • Jerome

from ada_drivers_library.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.