Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
probe: stlink: Fix 1-byte transfers (#1476)
Internally the 1-byte transfers are handled in 3 phases: 1. read/write 8-bit chunks until the first aligned address is reached, 2. read/write 32-bit chunks from all aligned addresses, 3. read/write 8-bit chunks from the remaining unaligned addresses. Size of the first unaligned read/write is set to the result of address alignment check (4-byte) and can be either 1, 2, or 3 bytes (the value of `unaligned_count` calculated as `addr & 0x3`). This is incorrect and every transfer with the requested size smaller than `unaligned_count` is terminated with the following error: Unhandled exception in handle_message (b'm'): result size (3) != requested size (1) [gdbserver] Skip the first unaligned transfer if the requested size is so small that phase-1 would not even reach aligned address. Handle the whole request in the second unaligned read/write (phase-3).
- Loading branch information