eclipse-plugins icon indicating copy to clipboard operation
eclipse-plugins copied to clipboard

CMSIS-Pack: store compressed on disk

Open flit opened this issue 5 years ago • 7 comments

Description

CMSIS-Packs should be stored on disk in compressed form in order to reduce disk usage, which can be considerable if you have many packs installed.

Ideally, files in a pack would be extracted in memory at runtime. Next best would be to extract a pack to a temporary directory while it's in use.

flit avatar Feb 03 '19 22:02 flit

In my oppinion, CMSIS-Pack design is flowed in many ways, including by favouring huge packages.

For now, only SVD files are used from the CMSIS Packs, and possibly the manuals, although I doubt there are many users who know how to access them.

I'm afraid I'll have no resources for more CMSIS Pack development in the foreseeable future.

ilg-ul avatar Feb 03 '19 22:02 ilg-ul

As of version 0.16.0, pyOCD now has support for using CMSIS Packs to add device support. I was planning on updating the GME plugin to automatically pass the pack and device selected in the project build settings to pyOCD. Right now pyOCD requires a compressed .pack file, though I'll be adding support for exploded packs specifically to support them in the GME plugin.

flit avatar Feb 07 '19 21:02 flit

as you wish.

the original packs are anyway in the .cache folder, you can get them from there, but I do not guarantee that the location will remain unchanged.

ilg-ul avatar Feb 07 '19 21:02 ilg-ul

and what do you plan to use from CMSIS Packs?

I don't know if you noticed, but the other debug plug-ins can use a separate *.svd (or *-xsvd.json) files, without the need to have an associated CMSIS Pack.

this is one solution to avoid the huge packs.

the other solution I'm considering is repacking the svd files (possibly converted to json) in separate xpacks, grouped by vendor, so there will be no need for CMSIS Packs at all.

ilg-ul avatar Feb 07 '19 21:02 ilg-ul

FYI, in v4.6.1 the default location of the CMSIS Packs folder changed.

Anyway, you should not use it directly, but read the configuration variable.

ilg-ul avatar Sep 29 '19 10:09 ilg-ul

A quick update, I'm migrating more and more content to the xPacks, for example the STM32F4 package now has the interrupt vectors in C, not assembly.

  • https://github.com/micro-os-plus/devices-stm32f4-xpack/tree/develop

In the same packages I'll add the SVD files (most probably in compressed format, since the new plug-ins already accept .svd.zip), so, at least for my use case, there will be no need for the CMSIS Packs at all.

ilg-ul avatar Dec 21 '20 21:12 ilg-ul

Fyi, I'm looking again at integrating the pyocd plugin with Embed CDT's DFP support. Currently pyocd uses the device information from the PDSC (memory regions, etc) and the .FLM flash algo files. I'm also working on supporting debug sequences in the PDSC for any required custom device connect/etc logic (more and more vendors are starting to define debug sequences for their devices when they require custom logic). It will also support the .dbgconf files at some point.

Btw, I totally agree with your concern about the size of certain packs. The Keil packs for STM32 devices are the primary offender since they include STM32Cube. On the opposite end, the NXP packs are quite small and focused on single devices, and split DFP from BSP.

flit avatar Dec 29 '20 21:12 flit