-
Notifications
You must be signed in to change notification settings - Fork 11
Self Contained Projects
General life experience shows that software that works perfectly today can cause problems a few years later. Usually, the issues start after compiler, libraries or IDEs have been replaced by newer versions. For small fun projects this is not a big deal. However, if you depend on the software remaining maintainable for a long time, it is important to keep the build environment under control. In the following I describe how such problems can be prevented with VisualTeensy.
First you need to activate the expert setup in the Project-Tab which exposes the possibility to freely choose the location of the Hardware Folder (Teensyduino core libraries) and the location of the used compiler.
This in principle would allow you to freeze the complete toolchain (compiler + Teensyduino) by copying it to your project folder. However, this would certainly be an overkill. Instead, I suggest to setup a toolchain folder containing subfolders for current and historic compilers as well as so far used Teensyduino versions and uploaders like the TyTools or Teensy.exe.
Here an example of such a toolchain folder:
toolchain
├── gcc
│ ├── gcc-arm-none-eabi-4_8-2014q3-20140805-win32
│ ├── gcc-arm-none-eabi-5_4-2016q3-20160926-win32
│ └── LLVM
├── Teensyduino
│ ├── current_clone
│ ├── td_141
│ ├── td_142
│ ├── td_146
│ ├── td_147
│ └── td_150
├── TyTools
│ ├── TyTools-0.8.11-16-gc874426-win64
│ ├── TyTools-0.9.0-7-g3825182-win64
│ └── TyTools-0.9.0-win64
└── VisualTeensy
To freeze the compiler used in your project you can either
- Copy it from your Arduino installation
Arduino\hardware\tools\
(copy the complete arm subfolder) - Download it from the ARM developer site
- Download GCC from Launchpad which keeps older versions < v7.0.
After that point the compiler setting to the corresponding folder in the toolchain directory.
The same applies for the Teensyduino core libraries. Just copy the folder \Arduino\hardware\teensy\avr
to your toolchain folder, rename it accordingly and point the
Hardware Folder setting to it.
Freezing third party libraries is easy. Every library (except those from the "Shared Library" repository) will be copied to the project folder per default.
VisualTeensy - Project generator for PJRC Teensy boards