Hi
Q1) Is it exact to say that there are actually 3 bootloaders available ?
*mbed bootloader (default with the board)
*P&E bootloader (.SDA) file
*uTasker bootloader (uTaskerSerialBoot_FRDM-K64F_KBOOT_HID_UART_MSD_SDHC.bin). (a.k.a uTasker Serial Loader)
The first two are present in the K20 based OpenSDA part, which is used to program the K64, as debugger and also as USB-CDC UART bridge.
The third is a "standalone" boot loader that, once programmed to the K64, allows applications to be updated.
Real products (not evaluation boards) would not normally use the OpenSDA (requires board space, costs additional money and current consumption) and so only the third would be used - programmed using a JTAG or SWD adapter.
Q2) If I program the "uTaskerSerialBoot_FRDM-K64F_KBOOT_HID_UART_MSD_SDHC.bin" file to the FRDM-K64F with the mbed bootloader then do I loose the current mbed bootloader ?
(Is it overwritten?)
Otherwise, is there any co-habitation between the mbed and the utasker bootloader ?
The uTaskerSerialBootxxx.bin is programmed to the K64 and not the K20 (OpenSDA where mbed boot loader is present), therefore the boot loader/debugger in the K20 device is not modified. It still allows further applications (or serial loaders) to be programmed. Therefore the mbed (or P&E) loader is ALWAYS present and can ALWAYS be used - it will never be impacted by loading any K64 code.
Q3) Can I use the KDS flash utility with uTasker Serial loader or do I need to change the bootloader to the P&E bootloader (.SDA) while doing development in KDS ?
I don't think the the mbed boot loader includes debugging capability for KDS, therefore the P&E one can be loaded (to the K20 based OpenSDA). Then the uTasker serial loader can be programmed using KDS's Flash utility.
Once the uTasker serial loader is programmed you can use it to upload application code so in fact the KDS Flash utility is not necessary any more: it is only needed to load the uTasker serial loader or to load 'standalone' applications.
Q4) What happens if I use KDS to program a .S19 generated by the uTasker project while having the uTasker serial loader present in the FRDM-K64F.
Do I loose the uTasker bootloader ?
Where is the uTasker bootloader located in memory ?
For now, I suppose the uTasker bootloader is not erased because the uTasker project settings does not erase and write to the specific zone of memory where the uTasker bootloader is located. Right ?
If this is true, then it should be possible to send the .S19 with the serial bootloader (when in the field) or with the KDS Flash Utility (while doing development).
If you load an application with KDS Flash utility is "may" overwrite the uTasker serial loader (I think that there are options to not erase all flash though so it depends). Once the uTasker serial loader is installed there is no reason to use the KDS flashing utility normally so this is not an issue anyway - the USB-MSD loader, for example, is many times faster that the KDS Flashing utility, and easier and quicker to use, so it is simplest to just work with it....
Q5) At some point my goal is to have a robust bootloader that I can use in the field for remote update. (Over Serial or Ethernet)
I suppose that the mbed bootloader or the P&E bootloader are more lab's development tools that actual 'in the field' bootloader.
Therefore, I'm leaning toward replacing the mbed bootloader by the utasker bootloader as quickly as possible. (So I will be closer to my final 'in the field' configuration)
Do you consider that the utasker bootloader (for Kinetis) is reliable enough to be used in the field for remote / in the field update ?
That is correct (the points I made above - it is not worth the expense of having a debugger on the board (OpenSDA) in a final target) - the OpenSDA device is an inbuilt debugger for the developer and I know of no HW products that add it.
The uTasker serial loaders (over serial, USB, SD card, memory stick and Ethernet) has been used for over 10 years on many parts (Coldfire, Atmel, STM32, Luminary Micro) and for 5 years in various Kinetis based products, so can be considered mature (only memory stick use is fairly new) and there are no know issues. It was developed expressly for in-field remote updates (there is also the "Bare-Minimum" loader which is often used for 'very' remote Ethernet based upgrading with fail-safe characteristics) and reliability was/is of course paramount.
Regards
Mark