I've read a few documentations from STMicro but still not sure what the actual steps to do a proper bootloading. Here is what I understand so far.
1. First the bootloader firmware is already on the uC so I don't have to worry about that part correct? All I have to do is develop a PC program that scan the bin. file and send to the appropriate port such as UART, CAN, I2C ....
2. To download the program, I have to configure the BOOT pin for proper boot loading.
Based on the AN2606, Table 2, there are various options to configure the BOOT pin but which one should I choose?
3. Assuming I have configure the BOOT pins correctly, and assuming I am using CAN port, the next step is to send data to the CAN port with the command stID=0x79 ...
4. But the implementation is complicated. For hardware wise, what type of type of USB to CAN bridge do I need? Is there a ready-made solution? I guess I can use another STboard as the bridge correct?
5. What tool is needed to develop the software? Assuming a GUI is needed, then one has to use Windows Visual Studio to develop the interface. So one has to develop either a driver or some type of command line along with the GUI as well.
I know some are using Keil to develop the bootloader, but I am confused because we are not technically required to develop any firmware correct? We just need a piece of software to send data to the CAN bridge with the correct format so to activate the on-chip bootloader correct? So I can use VisualStudio and probably a USB to CAN driver to develop the GUI to send data to the CAN bus correct?
Well it's just my opinion but let me know if this is correct.
6. Technically the STLink is bootloader correct? But looking at the schematic, I don't see the boot pins being used, so what mechanism is used by the STlink to download the firmware to the chip? Seems like JTAG. On the Nucleo board, the UART pins and JTAG are used. So this might be an obvious question then why a "bootloader" is needed at all because anyone can get a STLink or something similar to download the firmware?
Are there any commercially available bootloaders, both hardware and software, that can be purchased right now? I just want to learn how it is being done.