USB Improvements
* Introduce shell module for basic serial shell with argument parsing * Introduce shell_cmd_list module for basic compile-time command registration * Harden USB handling to hang less and drop fewer inputs - Service tud_task() with periodic TC0 timer interrupt - Service cdc_task() with periodic TC1 timer interrupt - Handle shell servicing in main app loop - Add a circular buffering layer for reads/writes * Change newline prints to also send carriage return * Refactor filesystem commands for shell subsystem * Introduce new shell commands: - 'help' command - 'flash' command to reset into bootloader - 'stress' command to stress CDC writes Testing: * Shell validated on Sensor Watch Blue w/ Linux host * Shell validated in emscripten emulator * Tuned by spamming inputs during `stress` cmd until stack didn't crash
This commit is contained in:
@@ -96,9 +96,10 @@ bool filesystem_write_file(char *filename, char *text, int32_t length);
|
||||
*/
|
||||
bool filesystem_append_file(char *filename, char *text, int32_t length);
|
||||
|
||||
/** @brief Handles the interactive file browser when Movement is plugged in to USB.
|
||||
* @param line The command that the user typed into the serial console.
|
||||
*/
|
||||
void filesystem_process_command(char *line);
|
||||
int filesystem_cmd_ls(int argc, char *argv[]);
|
||||
int filesystem_cmd_cat(int argc, char *argv[]);
|
||||
int filesystem_cmd_df(int argc, char *argv[]);
|
||||
int filesystem_cmd_rm(int argc, char *argv[]);
|
||||
int filesystem_cmd_echo(int argc, char *argv[]);
|
||||
|
||||
#endif // FILESYSTEM_H_
|
||||
|
||||
Reference in New Issue
Block a user