Skip to content

Self Contained Projects

luni64 edited this page Jul 26, 2020 · 4 revisions

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.

BuildSystem

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

Freezing the Compiler

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.

Freezing the Teensyduino Core

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.

Freeze Third Party Libraries

Freezing third party libraries is easy. Every library (except those from the "Shared Library" repository) will be copied to the project folder per default.

BuildSystem