diff options
author | David Crocker <dcrocker@eschertech.com> | 2018-04-01 18:49:43 +0300 |
---|---|---|
committer | David Crocker <dcrocker@eschertech.com> | 2018-04-01 18:49:43 +0300 |
commit | 97e7b46202b9f71075101ed86b6967904f87fa98 (patch) | |
tree | 4852f94f2497ae43f6f2ba69c6a72ace6f1f7fd0 /src/RTOS work pending.txt | |
parent | 4d151a5d02a8bca3810e4a75bf225136548fa1ab (diff) |
More RTOS work
Refactored mutex and task interface
Output channels, tool list and message box data are now thread safe
Diffstat (limited to 'src/RTOS work pending.txt')
-rw-r--r-- | src/RTOS work pending.txt | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/RTOS work pending.txt b/src/RTOS work pending.txt new file mode 100644 index 00000000..6edb4475 --- /dev/null +++ b/src/RTOS work pending.txt @@ -0,0 +1,36 @@ +Changes to RRF for RTOS + +[done] Include FreeRTOS library in the link library list and run RRF as a single FreeRTOS task +[done] Run Heat as a separate task +[done] Replace delay() by a version that calls FreeRTOS +[done] Have hsmciIdleFunc suspend the calling task pending an interrupt +[done] Use a mutex to protect fatfs from being reentered, preferably a separate mutex for each volume +[done] Use a mutex to protect the shared SPI subsystem from reentrant calls, and use it the filesystem and the temperature sensor reading system +[done] Use a mutex when allocating file handles +[done] Use a mutex to protect the find first/next buffer +[done] make getting file info thread safe +[done] buffer allocation needs to be thread safe +[done] tool list traversal to be thread safe +[done] make USB and serial out channels thread safe +[done] make message box output thread safe +[done except for mutexes on network and telnet] Make Platform::Message thread safe +Are there any aspects of Platform that are not thread-safe? e.g. GCodes setting stuff while network reports it? +Get rid of shared scratchString +Run Network as a separate task +Run Move as a separate task. Probably needs a mutex to protect calls into it, e.g. babystepping and pause. +Use DMA for SharedSPI transfers, suspend the calling task while waiting on a transfer +Do a SAM4S version of FreeRTOS, then do a SAM4S_RTOS build of RRF +Stop allocating file buffers on the stack? +Find maximum stack sizes and optimise stacks +Run all network responders as separate tasks? Would need mutex on network interface access + +Bugs + +[done] IAP fails to update firmware +M122 output is too big for the available buffers, unless the Network task reads the output fast enough +[done] Disconnects when getting file info forCandyBowlx8comments.gcode when running RTOS build +File upload speed is a little lower when using RTOS - may be fixed when network is a separate task + +Deferred + +Use a mutex to protect HSMCI from reentrant calls (only needed if/when we support more than one HSMCI volume, which is unlikely but possoible on the SAME70) |