10.3.1 Command Format – Host MCU to BM70/71 Module
ISDAP Opcode | ISDAP Data Length | ISDAP Data | ||||
---|---|---|---|---|---|---|
Start | Handle | Length | Data | |||
Byte Number | 0 | 1-2 | 3-4 | 5-6 | 7-8 | 9-n |
Size (bytes) | 1 | 2 | 2 | 2 | 2 | 11-n |
Value | 0x02 | 0x0FFF | 0xXXXX | 0x0112 | 0xXXXX | See the following table |
Byte Number | Value | Parameter Description | Length |
---|---|---|---|
7-8 | 0xXXXX | HCI-ISDAP data length field. Bit[15] 1 – Start write continue operation 0 – Normal write operation Bit[14:0] 0x0001:0x7FFF – Packet data length | 2 bytes Reuse the MSb for the Continue flag. The maximum value for any HCI-ISDAP write operation technically can be 32767 bytes in length, but sending the data in each packet is limited by what the BM70/71 module can receive. |
9 | 0x03 | Memory type For the BM70/71 module, this value is fixed to three, indicating Flash memory | 1 byte |
10 | 0x00 | Sub-memory type For the BM70/71 module, this value is fixed to zero, indicating eFlash memory | 1 byte |
11-14 | 0xXXXX_XXXX | Starting address of memory within the specified bank where write operations will begin. The MSb, 16 bits of the address value represents the bank number. The LSb, 16 bits represents the address within the specified bank. | 4 bytes For example, for an address of 0x0000_0800, first send the value to the BM70/71 module LSb, 0x00 0x08 0x00 0x00 |
15-18 | 0xXXXX_XXXX | HCI-ISDAP data length Bit[15] 0 – This field represents the number of bytes to write to memory from only this packet. 1 – This field represents the total number of bytes to write to memory in all subsequent write packets. | 4 bytes For example, for a size of 0x0000_0800, first send the value to the BM70/71 module LSb, 0x00 0x08 0x00 0x00 |
19-n | 0xXX | Any data that is going to be written to memory. | 1-n bytes The length of this field depends on how much data the programmer is writing |