Code Monkey home page Code Monkey logo

memory_map_manager's People

Contributors

mrkevinweiss avatar yegorich avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

memory_map_manager's Issues

Add params to the python interface

Add parameters such as default values, invalid values, and addresses to the python interface to help with writing tests. It would be good to know what parameters and how they should be accessed. @smlng may want to comment.

Generate python output as well

Generate python classes for the parameters using typedict or dataclass so there is documentation and autocomplete when coding with python.

Add documentation

Improve documentation to better describe how to use the MMM and what is can be used for.

Optional C verification of min/max

  • Separate functions that can be called but also a verify map function.
  • Flag to make it a ceiling or floor vs error return (and possibly not update value)

Duplicate fields in the yaml file are not errored

It seems that when there are two fields in the element section that have the same name it just overwrites...

typedefs:
  sys_t:
    description: System settings for PHiLIP
    elements:
     - access: read-only
        description: The philip device designator - A constant number to identify philip firmware
        name: device_num
        type: uint32_t
        default: 17061
        description: The frequency of the system clock in Hz
        access: read-only
        name: sys_clk
        type: uint32_t

name just overwrites... No error or anything.

Application level support

A number of things that may not be related to the generator or output but would be good to have in the schema so that application interfaces may be able to use them.

  • cache_time -> time that the value with be retrieved from system memory rather than from the device
  • volatile -> Changes without input, use for auto-tests and possibly for hashes of configs for ignoring commit changes
  • non_volatile -> Paired with submap, basically something indicating values persist through reset
  • validate_regex -> If a string is being written, this applies validates it. Can also be applied after reads for tests.
  • immediate_apply -> Record does not need commit for it to work.
  • sub_maps -> Flag record across typedefs or bitfields for a sub_map typedef that auto-copies info back and forth.
  • alias -> Allow different names for record lookups
  • display_name -> More human readable name that may be used for GUIs or end user facing strings.

Support sub-map flag in the map config schema

  • This would add a number of parameters across many types to it's own map.
  • Use case: non-volatile storing of data -> create a map for all the non-volatile records in the generated map
  • Auto get/set of sub map to map
  • Also use case for device parameters, if only some need to be changed at commit.

Add CI

figure out what CI to add...

Add map discovery for structure

It would be nice to request the map information from the firmware directly. If there is some sort of way to iterate over the structure, maybe also output the variable names that would be cool.

How to manage overwriting properties in nested typedefs

For example I have a timestamp_t where access can be 1 but I don't want access for the build time. Should the higher level dictate the access rights or should it be given to the lowest level? Should there be a default or empty level that basically allows overwriting?

Add map hash parameter at the start of every map

If we enforce the hash to be available at the start of every map than we do not have to depend on a special way of checking the hash (was get version) which mean interfaces such as modbus would not have to rely on that and would be able to just read the known offset,

Add a web interface

A web interface would be good to edit and view the structures (json). This could provide verification and remove some need for documentation.

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.