Commit Graph

725 Commits

Author SHA1 Message Date
Jesse Braham
eeef009aa6 Remove unused defmt-parser dependency (#822) 2025-03-28 10:42:34 +00:00
Jesse Braham
5541355a1c Remove the dependency on xmas_elf (#821) 2025-03-28 10:29:47 +00:00
Jesse Braham
c6c0e9bad0 Remove the dependency on hex (#820) 2025-03-27 12:07:26 +00:00
Jesse Braham
8dea4e67c4 Add chip detection using security info (#814)
* Add the ability to create a `Chip` from its corresponding chip ID

* Attempt to detect chip using security info first, and use magic value if this fails

* Update timeouts in HIL workflow

* Update `CHANGELOG.md`

* Increase more timeouts for HIL
2025-03-26 11:54:18 +00:00
Dániel Buga
a9c1686f30 Handle key events in non-interactive mode, too (#819) 2025-03-25 14:34:53 +00:00
Dániel Buga
17aa6f16af Option to supply custom defmt formats (#818)
* Add output format argument

* Load defmt location data

* Use user-provided defmt format

* Changelog
2025-03-25 14:34:36 +00:00
Dániel Buga
b028c5295e Detect log format metadata (#809)
* Detect log format metadata

* Match section name

* Update HIL test

* Changelog
2025-03-25 09:33:24 +00:00
Dániel Buga
ee954b2c7b Fix connecting to S2 over USB (#813) 2025-03-24 15:00:24 +00:00
Kirill Mikhailov
dc81d8f5be Add ROM version of read-flash command (#812)
* Add `ROM` version of `read-flash` command

* changelog entry

* dumb
2025-03-24 08:04:19 +00:00
Jesse Braham
dad60cf3ad Remove unused dependencies, deduplicate some functions (#811)
* Remove unused dependencies from `cargo-espflash`

* Move common functions from binaries to `cli` module
2025-03-21 07:55:47 +00:00
Juraj Sadel
fa6b970e01 Implement new USB Serial JTAG reset strategy (#779)
* Add watchdog reset experiment

* changelog

* Add bitflags dependency and cleanup

* fix register values, ... again

* Add P4

* reviews

* move connection_is_usb_otg to Connection struct and rename it to is_using_usb_otg

* fix ci

* Use latest version of `bitflags`

* Move and improve the `RtcWdtReset` trait

* Introduce `UsbOtg` trait for targets

* Fix some warnings

* Cleanup

---------

Co-authored-by: Jesse Braham <jesse@beta7.io>
2025-03-12 12:53:55 +00:00
Sergio Gasquez Arcos
ba14587fb0 Fix readmes links (#805)
* docs: Add missing link

* docs: Fix links

* docs: Update docstrings

* docs: fix typo

Co-authored-by: Jesse Braham <jessebraham@users.noreply.github.com>

* docs: Update docstrings

* docs: Udpate usage

---------

Co-authored-by: Jesse Braham <jessebraham@users.noreply.github.com>
2025-03-06 12:07:20 +00:00
Kirill Mikhailov
b7d9849b85 Fix read-flash which didn't work with some lengths (#804)
* wip

* finalize + hil test

hil test

* changelog entry

* fix
2025-03-06 07:28:30 +00:00
Jesse Braham
eb963d709d Refactoring: remove the FirmwareImage trait and eliminate the elf module (#802)
* Use `ElfFile` instead of `dyn FirmwareImage` where able

* Convert the `image_format` module to a directory

* Eliminate the `elf` module, move its contents to `image_format`

* Eliminate the `FirmwareImage` trait

* Update `CHANGELOG.md`
2025-03-05 12:01:48 +00:00
Sergio Gasquez Arcos
6db4b06945 feat: Remove publish to crates.io job (#801) 2025-03-05 08:40:22 +00:00
Jesse Braham
d8ab6ac5d1 Update cargo dependency in cargo-espflash (#800) 2025-03-05 08:35:40 +00:00
Kirill Mikhailov
b1483867b4 add --monitor option to write-bin (#783)
* changelog entry

* rebase

* fix

* update hil test

* increase timeout

increase timeout even more

* Fix CHANGELOG.md

Co-authored-by: Sergio Gasquez Arcos <sergio.gasquez@gmail.com>

* play around timer....

increase timer

---------

Co-authored-by: Sergio Gasquez Arcos <sergio.gasquez@gmail.com>
2025-03-04 12:53:31 +00:00
Sergio Gasquez Arcos
f86b149e81 Update flash size (#797)
* feat: Update flash size if not provided and read from the target

* feat: Move logic inside make_flash_settings

* docs: Udpate changelog

* Don't require passing `Flasher` struct around

---------

Co-authored-by: Jesse Braham <jesse@beta7.io>
2025-03-04 09:59:34 +00:00
Jesse Braham
0df6d25d92 Don't expose PartitionTable struct in public APIs, simplify IdfBootloaderFormat constructor (#798)
* Simplify `IdfBootloaderFormat` constructor, make `default_partition_table` private

* Move `parse_partition_table` to the `cli` module

* Update `CHANGELOG.md`
2025-03-03 12:00:11 +00:00
Jesse Braham
f73fef444f Refactor and simplify the elf module a bit (#796)
* Eliminate the `ElfFirmwareImage` struct

* Eliminate redundant `RomSegment` struct, rename `CodeSegment` to `Segment`

* Re-export types which need to be public from `elf` module

* Update `CHANGELOG.md`

* Remove unused `segments_with_load_addresses` function
2025-02-28 11:01:53 +00:00
Jesse Braham
11a5b7bb83 Minor error handling and function naming improvements (#795)
* Remove unnecessary `Result` from return type, don't leak constants from `connection` module

* Improve error handling when receiving an invalid command response type

* Update `CHANGELOG.md`
2025-02-28 10:06:08 +00:00
Jesse Braham
acf2034f80 Update HIL workflow to use ubuntu-22.04, build in container to resolve GLIBC errors (#791) 2025-02-27 10:41:20 +00:00
Sergio Gasquez Arcos
1b23853a4f [cargo-espflash]: Add write-bin subcommand (#789)
* feat: Add write-bin subcommand

* docs: Update changelog

* docs: Add docstring
2025-02-27 09:47:02 +00:00
Sergio Gasquez Arcos
e41be4f5eb Fix write-bin padding (#788)
* feat: Update the way we pad bins

* tests: Add HIL test for writting bins

* ci: Fix timeouts

* test: Fix HIL write-bin  test

* docs: Update changelog

* docs: Remove outdate file

* feat: Avoid vec allocation
2025-02-26 15:00:50 +00:00
Juraj Sadel
473701c5e6 Fix write-bin for files whose lengths are not divisible by 4 by padding FF bytes (#780)
* Fix write-bin for files whose lengths are not divisible by 4 by pading FF bytes

* changelog
2025-02-25 10:06:10 +00:00
Jesse Braham
7e9662884a Fix typos in error variants names, resolve clippy warnings (#782)
* Fix typos in error variant names

* Resolve clippy errors

* Update `CHANGELOG.md`
2025-02-25 09:48:10 +00:00
Jesse Braham
b5b2e044dd Update addr2line and crossterm dependencies (#778) 2025-02-18 12:12:47 +00:00
Juraj Sadel
e50c880982 Add timeout to HIL tests (#776)
* Add timeout to HIL tests

* Increase timeout for save-image_write-bin test
2025-02-18 10:54:24 +00:00
Juraj Sadel
529b438468 Mention WSL2 in READMEs (#775)
* Mention WSL2 in READMEs

* reviews
2025-02-18 09:59:12 +00:00
Jesse Braham
be1ff81b15 Refactor: make more modules private (#772)
* Move `command` module into `connection` module

* Make the `elf` and `error` modules private

* Don't document the modules/types behind the `cli` feature

* Clean up some imports

* Remove unused code

* Miscellaneous cleanup

* Update `CHANGELOG.md`
2025-02-17 11:23:07 +00:00
Sergio Gasquez Arcos
7495637db0 Improve HIL tests (#773)
* tests: Add log-format test

* ci: Add list-ports test

* feat: Read a larger flash section

* feat: Update how we check the erase-region command

* fix: Elf paths

* fix: Typo

* feat: Add defmt_log level

* feat: Update defmt elf

* docs: Add instructions to build defmt elf

* feat: Change test order to keep a non-defmt elf flashed on c6
2025-02-17 10:45:00 +00:00
Juraj Sadel
403b93d2e2 erase-region: Check if the address and size is multiple of 4096 and add HIL test (#771)
* erase-region: Check if the address and size is multiple of 4096 and add test

* changelog

* reviews

* updated test
2025-02-17 08:41:09 +00:00
AVee
7b6e5e1164 Add list-ports command to show the available serial ports. (#761) 2025-02-14 14:43:25 +00:00
Sergio Gasquez Arcos
e765bd8636 Normalize similar arguments (#759)
* feat: Normalize similar arguments

* feat: Remove unnecesary value_names

* feat: Remove some short version of arguments

* docs: Update changelog

* tests: Fix arguments

* feat: Use elf for MonitorConfigArgs to avoid duplication

* feat: Rename monitor_baud arg

* fix: Allow using log-format with custom runner

* feat: Add help for NoElf error

* clippy: Remove too_many_args expection
2025-02-14 10:30:55 +00:00
Jesse Braham
bba904084f Remove special handling of MUSL Linux now that we no longer use libudev (#749) 2025-02-13 14:29:09 +00:00
Juraj Sadel
158764f82d Add get-security-info command (#758)
* Add get-security-info command

* changelog

* fix clippy

* reviews

* Update HIL for get_security_info

* update changelog

* reviews

* HIL

* reviews

* fmt

* revert

* refactor error handling

* rebase and update S2 response length check

* fix S2 when no-stub flag is used, address comments

* Hack around strange command responses, make security info work with and without stub

---------

Co-authored-by: Jesse Braham <jesse@beta7.io>
2025-02-13 12:50:46 +00:00
Sergio Gasquez Arcos
da99a6df5c Improve monitoring (#737)
* feat: Make non-interactive available in other commands

* feat: Use monitor_args in monitor()

* feat: Move elf arg to MonitorConfigArgs

* docs: Udpate changelog

* docs: Update readmes

* feat: Use parse_u32

* tests: Add espflash flash --monitor tests

* feat: Allow underscores in parse_u32
2025-02-12 11:43:10 +00:00
Jesse Braham
4ee4b59862 Swap out the flasher stubs with the legacy C stubs (#763) 2025-02-12 10:53:05 +00:00
Jesse Braham
d4da01ecc2 Remove the dependency on parse_int in favour of from_str_radix (#756)
* Remove the dependency on `parse_int` in favour of `from_str_radix`

* Add a unit test for the `parse_u32` function
2025-02-11 10:09:32 +00:00
Sergio Gasquez Arcos
6f3c96d11b Improve HIL (#754)
* ci: Use job.env to avoid duplications

* ci: Add erase-region, hold-in-reset, reset and checksum-md5 tests

* ci: Use bash scripts

* cI: Update workflow

* feat: Udpate testing elfs

* test: Read 0x2000 bytes of flash

* docs: Add TODOs for issue #697

* fix: Typo

Co-authored-by: Jesse Braham <jessebraham@users.noreply.github.com>

* docs: Improve the todo comment

---------

Co-authored-by: Jesse Braham <jessebraham@users.noreply.github.com>
2025-02-11 08:20:47 +00:00
Jesse Braham
ad1cb9f03b Remove the dependency on lazy_static in favour of buildt-in LazyLock (#755) 2025-02-10 12:32:31 +00:00
Jesse Braham
c73ea4dbe9 Additional improvements to CI workflow (#750) 2025-02-07 15:25:31 +00:00
Jesse Braham
258e46bef9 Deny missing debug implementation and Rust 2018 idioms (#751)
* Deny missing debug implementations

* Deny Rust 2018 idioms
2025-02-07 10:31:25 +00:00
Jesse Braham
c34197f492 Remove duplicate function definition in cli module (#747) 2025-02-06 13:19:23 +00:00
Jesse Braham
cc7c43df58 Check for conflicting command-line option names in CI (#746)
* Run `completions` subcommand in CI to check for conflicting option names

* Fix conflicting short option name for `checksum-md5` subcommand
2025-02-06 12:43:58 +00:00
Jesse Braham
a105cb01b4 Remove the dependency on libudev and its corresponding feature (#742)
* No longer require `libudev`

* Update `CHANGELOG.md`
2025-02-06 09:33:18 +00:00
Jesse Braham
aab2ad4b2d Add rustfmt.toml and format packages (#744)
* Add `rustfmt.toml`

* Format `cargo-espflash` and `espflash` packages

* Use `nightly` for `rustfmt` checks in CI
2025-02-05 14:52:29 +00:00
Jesse Braham
74f6f807a0 Add Taplo config file and format Cargo manifests (#743) 2025-02-05 14:33:09 +00:00
wcampbell
83d342e54d Use hex fmt for command debug print (#735) 2025-01-30 07:09:32 +00:00
Jesse Braham
3c56608a8a Update license files and top-level README.md, move test binaries to tests/ directory (#734)
* Update license files

* Move the test binaries to the tests/ directory

* Remove outdated notice from top-level `README.md`
2025-01-29 12:33:08 +00:00