The helloworld example for vsCode is HUGE

Over the holidays I have been playing with vsCode and your helloworld example. It kinda works for me now. ( vsCode is definately nicer than the eclipse stuff)

But it strikes me that the helloworld repository is HUGE. 5894 files accounting for 332MB - for a helloworld program. The repo contains part of a build chain and a lot of library code.
Yet, some of cypress HAL seems not to be there.

In contrast to this I need to keep my projects tidy and clean, rigorously cleansed for stuff that does not belong there.

The distance between the two poles seems long.


  • Am I the only one to see this as a problem?
  • What can be done to mitigate the “conflict” ?
  • Am I missing something completely obvious?

The issue with this is that really a lot of dependencies are put into this single project pack (to make it really convenient to use).

I understand working this way with multiple projects is not a good way to go. Therefore I’m creating another Helloworld project which contains the all the source code ONLY, and I have made an accompanying pack (Linux, Windows and macOS) which contains the additional dependencies (tools, Cypress PDL etc).

The Helloworld project will be around 150K. Better? :smiley:

1 Like

@rolf you are a star!

Size is just the symptom. The problem is the “blob” is confusing - a lot of things that can go wrong.

Will give it a go when my current I2C battle is over…

There’s a PDL (Cypress HAL) which is already 58MB. This PDL contains the library files supporting a lot of PSoC6 variants (there’s a header file per PSoC6 with all register defines of 126KB each). Only the needed header and source for your project will end up in your final build.

Then there is the tools folder making up 186MB for the Windows, Linux and macOS tools. These are OpenOCD, the CyMCU ELF tool, the configuration tool and the bash executable for Windows.

Together with the contents of the .git folder (95MB), it’s already 339MB without a single line of source code.

The solution I will provide is to use the dependencies pack, containing the OS specific tools plus the PDL at a separate location and therefore keeping your project files clean.

I know it’s a complex setup with lots of files and dependencies. It was overwhelming for me as well when I first started with PSoC6 (I’m a long-term PSoC user but this was new for me).

I’m happy to help you get a grip op the project structure and help you on I2C as well (I did several projects with I2C on our module already).