Age | Commit message (Collapse) | Author |
|
subject to the same forces that made it a good idea in the first place.
commit 2b6b9f8
Change RPC UART to have a high-priority thread monitoring a large(ish) DMA
buffer, because we've observed out-of-order receives under load.
|
|
Clean up Makefiles and initialization code.
|
|
Required minor manual intervention to resolve merge issues git had no
way of understanding: git is clever, but not quite clever enough to
understand that a commit in branch had removed the entire RTOS that a
commit in the other branch was using. No big deal, just a couple of
osDelay() calls needing conversion to HAL_Delay() or task_delay().
|
|
|
|
There are no priorities and no preemption, so tasks run in a round-robin
fashion, and explicitly yield control.
|
|
|
|
|
|
buffer, because we've observed out-of-order receives under load.
|
|
If hal_rpc_server_dispatch() returns an XDR decode error because the
request packet was too short, don't call Error_Handler() and kill the
dispatch thread, just drop the request.
Add more ibuf_queue entries, but don't panic and kill the dispatch thread
if we can't get one, just drop the incoming character (which will lead to
an XDR decode error if/when we finally get an ibuf).
|
|
|
|
Drag in UART-related changes from master.
|
|
|
|
receive buffer with half-complete callbacks, and raise the dma priority.
|
|
(dropped characters, improper handoff of message buffers).
Fixed by
a) changing the uart receiver from interrupt to DMA mode, and
b) replacing the dispatch mutex and rpc semaphore with a mail queue
(memory pool + message queue).
|
|
|
|
|
|
Also, if the UART receive callback fails to re-enable receive (because
dispatch_thread is in the middle of transmitting a response), signal
dispatch_thread to re-enable receive after it's done.
|
|
|
|
|
|
client handle in all responses.
|
|
|
|
Also, it turns out the linker wants to include initializers for sdram
variables in the .elf and .bin files, even though it should handle it like
bss. So now we manage sdram directly with a pseudo-malloc.
|
|
Also rearchitect the way we handle RPC requests - have a bunch of waiting
dispatch threads rather than continually creating and deleting threads.
|
|
|