mirror of
https://github.com/MCKero6423/uv-k5-v3-emulator.git
synced 2026-10-02 03:15:36 +00:00
Record that serial receive is not implemented
Found while explaining a DMA channel that stayed permanently armed with cndtr=256 during the flash investigation. It is USART1's receive channel, running in LL_DMA_MODE_CIRCULAR, so never completing is correct behaviour and not a bug. But it exposed a real gap. driver/uart.c derives its write pointer from sizeof(UART_DMA_Buffer) - LL_DMA_GetDataLength(...), and the DMA model only services SPI, so CNDTR never decrements for USART and that expression is always zero. Combined with USART1 being a py32-stub with no chardev backend, nothing can be sent *to* the firmware. The cost is specific: UART_IsCommandAvailable never fires, so the UV-K5 programming protocol in app/uart.c is unreachable -- 0x0514 handshake, 0x051B EEPROM read, 0x051D EEPROM write, 0x05DD reset. CPS/CHIRP-style tools cannot talk to this emulator. Transmit is unaffected, which is why the firmware banner shows up fine and this went unnoticed. Documented rather than fixed: it needs a chardev on USART1 plus circular-mode DMA driven by receive, which is a new feature rather than a repair. The notes say what would be involved so the next person does not have to rediscover the mechanism. Status table also updated to reflect what the flash and DMA fixes settled -- persistence and frequency entry now work.
This commit is contained in:
1 parent
65e50c0065
commit
cdb73f13a0
2 files changed
+25
-1
No files matched your search
@@ -36,8 +36,11 @@ has no public datasheet, so its driver is the only specification available.
|
||||
| --- | --- |
|
||||
| Boot to main loop | works, ~5 s |
|
||||
| LCD contents | readable via `tools/screenshot.py` |
|
||||
| SPI flash, settings, calibration | works |
|
||||
| SPI flash, settings, calibration | works, and persists across power cycles |
|
||||
| Frequency entry | works, stored per band and kept |
|
||||
| Keypad and menu navigation | works, including waking from power save |
|
||||
| Serial output (firmware log) | works, appears in the web UI log |
|
||||
| Serial input / CPS programming | **not implemented**, see [AGENTS.md](AGENTS.md#what-this-cannot-do) |
|
||||
| Timing accuracy | deliberately wrong, see [Timing](#timing) |
|
||||
| Radio/RF behaviour | not modelled |
|
||||
|
||||
|
||||
Reference in new issue
Block a user