Hi David
1. Which IDE will you be using? If KDS, MCUXpresso or other Eclipse based one you may find this step-by-step video of use: https://www.youtube.com/watch?v=K8ScSgpgQ6M&list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&index=9
It explains the targets, whereby the standard one is the uTaskerV1.4_Flash (for application) or uTaskerSerialLoader_Flash for the serial loader so you will want to build the serial loader one and then the application.
For a written guide see https://www.utasker.com/kinetis/compilers.html
When built you will find binaries in the output directories
\Applications\uTaskerSerialBoot\KinetisDesignStudio\uTaskerSerialLoader_FLASH
and
\Applications\uTaskerV1.4\KinetisDesignStudio\uTaskerV1.4_FLASH
(assuming KDS is used). The first can be loaded to the board and then second then by the serial loader.
2. There is one single project for the application (not multiple examples) and the single project can be configured for any processor, board and many options.
So that one can start simply there is a define in the application's config.h called BLINKY and if you enable it it will automatically reduce the complete project to the simplest case (a single LED output blinking at 2.5Hz - retriggering the watchdog via a task controlled by the SYSTICK interrupt). Choose FRDM_K22F as board and ensure that the Cortex-M4 core (or board/part accordingly) is selected in the IDE and the correct linker script is used (for this board it is K_512_128.ld as also shown here: https://www.utasker.com/kinetis/FRDM-K22F.html)
Once you have the blinky project working you can instead do a "Hello world" one (enable HELLO_WORLD instead) which again will work on any board with no more configuring.
The next step is to remove these two defines and then you have the complete project with USB stack, file system and various other features which can be configured by enabling or disabling the defines in the same file - eg. if you want USB device operation in the proejct just enable USB_INTERFACE and USB_DEVICE_SUPPORT and choice which class(es) should operate (like USE_USB_CDC, USE_USB_MSD, USE_USB_AUDIO, etc.)
Another example: USE_MAINTENANCE will add a command line interface on UART, USB-CDC and Telnet (depending on which are available) with mny menus line low power control, memory monitoring, memory viewing and debugging, etc.). If it is not desired just command out USE_MAINTENANCE.
For HW specific adustments use app_hw_kinetis.h where you can more select HW specific things like the clock and pins used or UART instance used by the command line interface, plus enable or disable peripherals (ADC, DAC, CAN, port interrupts, etc.) so that you can be sure you have only exactly what is really needed by the overall project. (The default will be fine for all development boards and custom target can be may there by copying the closes existing board and changing the details).
The idea is that any board can be configured with many different features without needing to change code or take parts from specific examples and manually mix them to get a complete product. Instead one just configures as much or as little as needed, on which ever board or processor. If the processor is changed there is no more work than select the different board. And if more capability is needed just select an i.MX RT and have the project running there instead.
Once you get to a stage where you want to further customise the project configuration (with new task and application controls) this video [https://www.youtube.com/watch?v=_7Rxdr0NKWE&list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&index=23] shows how to go about that so that the final project shares all common resources but the custom parts can have its own repository.
A playlist of videos showing various topics is here: https://www.youtube.com/playlist?list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q
There are i.MX RT videos too at https://www.youtube.com/watch?v=GXztWg9m6_8&list=PLWKlVb_MqDQEOCnsNOJO8gd3jDCwiyKKe which are more or less identical in the use case so anyone who can build (and develop) for Kinetis can move to i.MX RT without really needing to do anything differently or learn new tools, libraries and code.
Regards
Mark
[uTasker project developer for Kinetis and i.MX RT]