Giter VIP home page Giter VIP logo

lpc-pac's People

Contributors

alexismarquet avatar allexoll avatar david-sawatzke avatar dbrgn avatar hannobraun avatar lucab avatar rnestler avatar wt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

lpc-pac's Issues

SVD file contains names with multiple underscores in a row

Original issue: lpc-rs/lpc82x-pac#8


I'm not sure if this is something that should be addressed in the SVD file, but it is a problem for us in so far that the code generated from it compiles only with warnings. We address this in this patch.

As I said, I'm not sure if this needs to be fixed upstream, but as I have to contact NXP about other issues anyway, I'm going to bring it up. The names are weird after all, and it's definitely not intentional, as those names seem to be generated from the human-readable description.


I've reported the issue to NXP: https://community.nxp.com/thread/465465

Are the checked in binaries intentional?

I noticed two directories with binaries commited:

  • lpc54608/bin/
  • lpc54608/bin/

Is that intentional?

If so, when would one want to include binaries or not in a new device?

LPC55S6x?

Hey, I'm wondering whether the LPC5500 series is on your radar? I'm currently exploring options for a Cortex-M33 chip. Also in a more roundabout manner, can you share some experiences/war stories on using LPC from Rust? Things like SVD quality, proprietary tooling, vendor support (one can dream), etc.

SVD files: Vanilla or not?

There are two approaches to managing SVD files:

  • We can commit the original SVD file to the PAC directory and apply patches when generating the bindings
    • Variant: Only download the SVD on demand (risk: it could be offline)
  • We can patch the SVD file directly in the repository and commit the fixes

The latter is basically the same as the former, but instead of using diff and patch to apply the patches, we use git. The applied patches can then be listed using git log. The only prerequisite for this is that the vanilla SVD file is committed before the patches are applied.

What are your opinons, @hannobraun and @rnestler? I tend towards the second approach, simply patching the SVD file directly and committing the result. It leads to less work when generating the bindings, since patches have already been applied.

The name of this repository

Thanks for creating this repository, @rnestler! Since you didn't leave any work for me, I figured I'd get in on some bikeshedding :)

I'd prefer it if this repository was just called lpc-pac, for two reasons:

  • I think the current name with the two dashes looks a bit noisy. lpc-pac would be easier to parse.
  • There's already an -rs in the organization name, so having it again in the repository name is redundant.

I don't feel that strongly though, so if any of you disagree, feel free to close this issue.

SRAM initialisation for LPC546XX family

I'm starting to build the PACs for the (rest) LPC546XX family, but there is still an issue with needing to enable the SRAM banks. I opened an issue over at cortex-m-rt in this regard (#303 but i think that par is missing from the LPC54606-pac crate.

Have you figured out a way to include it?

track merging onf lpc81x

after discussing it in #75 , we might be able to include the lpc81x pac in here.

there is a lot of differences between the patched 0.2 SVD (0.3? xml says 0.2), and the v1 SVD that is currently in this repository.

As I don't have a board with that MCU, it would be hard to test, and to see what would need to be fixed for a new version of the lpc81x-hal crate as well. @apparentlymart seems to be the owner of the HAL.

I don't think this would be an issue since both the PAC and the HAL have not been updated for a long time (3 and 2 years respectively). current new LPC pacs are on version 0.2.1, so they would not break current version of the hal, which relies on lpc-81x v0.1.0.

if @lucab is fine with moving the lpc81x pac here, that can be done by just publishing the current release (v0.2.1) that is generated by the current files for LPC81x.

  • publish lpc81x-hal crate

Problem in lpc82x.svd about PDRUNCFG register

For register PDRUNCFG, bit SYSOSC_PD, WDTOSC_PD, SYSPLL_PD and ACMP is wrong in svd. It should be be POWERED and POWERED_DOWN, but in svd it's DISABLED and ENABLED, totally flipped.

Problems in LPC845 SVD file from MCUXpresso SDK 2.6.0

All of the following problems have been fixed. None of them have been reported to NXP so far.

  • 7220929: Fix reset mask of INTVAL in MRT0
  • 53b6b46: Remove duplicate interrupts
  • 23d4432: Fix reset value of SYSMEMREMAP in SYSCON
  • e90d462: Fix reset mask of TIMER in MRT0
  • 811c801: Fix reset mask of TRM in ADC
  • b7bfd8e: Fix reset value/mask of INTSTAT in USART0
  • e8cffc0: ACTIVE0 and BUSY0 are read-only
  • ba4b99f: Remove non-existing registers
  • f5a024e: Fix value name/description of CTRL in WKT
  • a0782e3: Fix access field of STAT fields in USART

USART.FCR register missing from lpc11uxx

The USART FCR and IIR registers both live at the same address - one is write-only, the other is read-only. The LPC11UXX crate currently only defines one of those - the iir register - and makes it read-only. The SVD does define both, so I guess this might be an svd2rust issue?

MRT registers have wrong bit range for timer value

Original issue: lpc-rs/lpc82x-pac#16


The MRT timer has a resolution of 31 bits, but the following registers only specify a width of of 24 bits:

  1. INTVAL (IVALUE field)
  2. TIMER (VALUE field)

This needs to be fixed by patching the SVD file, as it causes incorrect behavior. The timer value is truncated when reading to or writing from these fields. To remind me to add that patch, I'm not adding the "upstream" tag until that has been done.

A workaround for this is to bypass the field API by reading/writing the bits directly using the bits method on the register (not the ones in the field API).


I've reported this issue to NXP: https://community.nxp.com/thread/465465

Integrate lpc82x-pac

I've moved lpc82x-pac into this organization, but I've not integrated it into this repository yet. @rnestler, you mentioned that you moved the other PAC crates here with all their history. Could you do the same for lpc82x-pac?

If it's too much of a hassle, don't bother. I can either figure out how to do it myself, or just copy lpc82x-pac here without the history. Please let me know what you think.

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.