Hi Hansen,
For 1st question, current Kinetis tools and blfwkdll.dll doesn't support to connect multiple USB instances at the same time.
Here is the biref update to support this feature.
1. update peripheral configuration structure.
Add std::string usbPath to struct PeripheralConfig in apps\common\blfwkdll\blfwkdll.h and struct PeripheralConfigData in src\blfwk\src\Bootloader.cpp.
2. update UsbHidPeripheral
Add a member variable "char *path" to this class.
Add an argument "const char *path" in contractor.
And trans PeripheralConfig::usbPath to it when contracting UsbHidPeripheral object in src/blfwk/src/Bootloader.cpp.
3. update UsbHidPeripheral::init function.
if ( usbPath is empty)
m_device = hid_open(.....); // no change
else
m_device = hid_open_path( usbPath);
For 2nd question, I suggest to use the sb file which supports Kinetis bootloader/ROM commands.
HEX/S19 format is also OK. Kinetis Bootloader/ROM tools support multi sessions of HEX/S19.
if you are using bin file, you have to call two times of the API blfwkdll::Updater::flashFirmware()
Best Regards
Yitao Zhang
MCU Software Engineer.