This page has deprecated and moved to the new documentation framework of the main Bitcraze website. Please go to [[https://www.bitcraze.io/documentation/system/]]
======Bootloader client implementation ======
====== Bootloader file format ======
In order to make bootloading easier across platforms the different firmwares are packaged together in a ZIP file that contains a manifest describing which files are used for what. Here's an example of a manifest, it should be called //manifest.json//:
{
"version": 1,
"files": {
"cflie.bin": {
"platform": "cf2",
"target": "stm32",
"type": "fw"
},
"nrf_cf2.bin": {
"platform": "cf2",
"target": "nrf51",
"type": "fw"
},
"nrf_cload.bin": {
"platform": "cf2",
"target": "nrf51",
"type": "bootloader"
},
"s110.bin": {
"platform": "cf2",
"target": "nrf51",
"type": "softdevice"
}
"cf2_lua.bin": {
"platform": "cf2",
"target": "stm32",
"type": "userapp",
"origin": 524288
}
}
}
Each entry in the file describes one file, with the following attributes:
| **Attribute** | **Values** | **Comments** |
| platform | cf1, cf2 | Select the target platform |
| target | stm32, nrf51 | Select the target MCU on the target platform |
| type | fw, bootloader, softdevice, userapp | Describe what's contained in the binary |
| origin | N/A | Set the address where the app should be flashed |
Currently only platform=cf2, target=stm32, target=nrf51 and type=fw is supported.