Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handle multiple PDSC entries for a single part in the vendor list #202

Open
Oozlum opened this issue Jan 18, 2023 · 1 comment
Open

Handle multiple PDSC entries for a single part in the vendor list #202

Oozlum opened this issue Jan 18, 2023 · 1 comment

Comments

@Oozlum
Copy link

Oozlum commented Jan 18, 2023

I have a problem when using pyOCD with an ATSAMD21G18A chip. The vendor file lists two PDSC entries for that part:

  1. Keil.SAMD21_DFP 1.3.1 (deprecated 2020-10-21)
  2. Microchip.SAMD21_DFP 3.6.144

cmsis-pack-manager seems to key its cache purely off the part number (ATSAMD21G18A), so it is unable to handle multiple entries for the same part. There also doesn't seem to be an option to filter out deprecated entries.

It would be nice if the cache key could be augmented with the vendor (and possibly version) in the event that multiple entries are found, so in this instance I would see two possible entries:

  • ATSAMD21G18A.Keil
  • ATSAMD21G18A.Microchip

This was a problem for me because cmsis-pack-manager happened to find the Keil entry first, and that PDSC appears to be broken. I couldn't find a way to force the Microchip version other than manually hacking the files.

@lukaskuzmiak
Copy link

+1. This is problematic for e.g. CY8C6347FMI-BLD53 that is only found in the old Cypress.PSoC6_DFP 1.2.0 pack and it completely misses the Infineon.CAT1A_DFP.1.5.0.

Both are contained in the cache directory:

% cd ~/Library/Application\ Support/cmsis-pack-manager
% grep -rl CY8C6347FMI-BLD53 .
Cypress.PSoC6_DFP.1.2.0.pdsc
Infineon.CAT1A_DFP.1.5.0.pdsc
Infineon.PSoC6_DFP.1.4.0.pdsc
index.json

But inside of index.json the part CY8C6347FMI-BLD53 only contains a reference to the Cypress' pack.

    "from_pack": {
      "vendor": "Cypress",
      "pack": "PSoC6_DFP",
      "version": "1.2.0",
      "url": "https://github.com/cypresssemiconductorco/cmsis-packs/raw/master/PSoC6_DFP/"
    },

Only half-decent workaround I found was to use the .pack manually within pyOCD. I did not find a way to install the proper Infineon pack within pyOCD as the cache of cmsis-pack-manager does not index it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants