Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve monitoring #737

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

SergioGasquez
Copy link
Member

@SergioGasquez SergioGasquez commented Jan 31, 2025

  • Adds non-interactive to flash
  • Creates a struct with monitoring config
  • Add the --no-reset flag
  • Use different baudrate for connecting and for monitoring

Copy link
Member Author

@SergioGasquez SergioGasquez left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few open questions/notes:

} else {
115_200
};
monitor_args.baud_rate = 74_880;
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shall we do this for other baudrates too, or shall we let the user input the correct baudrate?

#[non_exhaustive]
pub struct MonitorConfigArgs {
/// Baud rate at which to communicate with target device
#[arg(short = 'r', long, env = "MONITOR_BAUD", default_value = "115_200", value_parser = parse_uint32)]
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure about the name and short, we use baud in ConnectArgs to set the baudrate at which we connect to the target. We could modify any of the two

pub non_interactive: bool,
/// Avoids restarting the device before monitoring
#[arg(long, requires = "non_interactive")]
pub no_reset: bool,
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I got this from espmonitor and I think its useful to have an option where you do --non-intertactive --no-rest for example:

❯ cargo r -r --bin espflash -- flash -M /Users/sergio/Documents/Espressif/tests/monitor/target/riscv32imac-unknown-none-elf/release/monitor --non-interac
tive 
    Finished `release` profile [optimized] target(s) in 0.38s
     Running `target/release/espflash flash -M /Users/sergio/Documents/Espressif/tests/monitor/target/riscv32imac-unknown-none-elf/release/monitor --non-interactive`
...
[2025-01-31T11:58:28Z INFO ] Flashing has completed!
��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ESP-ROM:esp32c6-20220919
...
I (125) boot: Disabling RNG early entropy source...
INFO - Hello world!
INFO - Hello world!
INFO - Hello world!

Note all the noise chars after flashing, if we use no-reset:

❯ cargo r -r --bin espflash -- flash -M /Users/sergio/Documents/Espressif/tests/monitor/target/riscv32imac-unknown-none-elf/release/monitor --non-interac
tive --no-reset
   Compiling espflash v4.0.0-dev (/Users/sergio/Documents/Espressif/forks/espflash/espflash)
    Finished `release` profile [optimized] target(s) in 18.59s
     Running `target/release/espflash flash -M /Users/sergio/Documents/Espressif/tests/monitor/target/riscv32imac-unknown-none-elf/release/monitor --non-interactive --no-reset`
...
[2025-01-31T11:58:15Z INFO ] Flashing has completed!
....
ESP-ROM:esp32c6-20220919
...
INFO - Hello world!
INFO - Hello world!

No noise chars

Comment on lines +143 to +144
#[clap(flatten)]
pub monitor_args: MonitorConfigArgs,
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure how to make this require monitor (I coulndt get requires to work as it flatten), but it doesnt make sense that an user could set the monitor_args and not set monitor. I can only think of a check in the flash method that checks this and throws an error.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Flash and monitor commands do not use the same baudrate source Make --non-interactive usable everywhere
1 participant