@@ -44,6 +44,16 @@ Flash with specific MCU:
4444bmlab-flash < firmware_file> --mcu STM32F765ZG
4545```
4646
47+ Flash multiple devices via IP addresses (parallel):
48+ ``` bash
49+ bmlab-flash firmware.bin --ip 192.168.1.100 192.168.1.101 192.168.1.102 --mcu STM32F765ZG
50+ ```
51+
52+ Flash multiple devices via USB serial (sequential due to USB driver limitations):
53+ ``` bash
54+ bmlab-flash firmware.bin --serial 123456 789012 345678 --mcu STM32F103RE
55+ ```
56+
4757Specify programmer explicitly:
4858``` bash
4959bmlab-flash < firmware_file> --programmer jlink --serial 123456
@@ -88,13 +98,42 @@ bmlab-rtt -v
8898
8999# Specify programmer explicitly (default: jlink)
90100bmlab-rtt --programmer jlink --serial 123456
101+
102+ # Monitor multiple devices via IP (parallel, saves logs to files)
103+ bmlab-rtt --ip 192.168.1.100 192.168.1.101 192.168.1.102 --output-dir rtt_logs --timeout 10
104+
105+ # Monitor multiple devices via USB (sequential, saves logs to files)
106+ bmlab-rtt --serial 123456 789012 --mcu STM32F103RE --output-dir rtt_logs --timeout 10
91107```
92108
109+ ** Note:** Multiple devices require ` --output-dir ` . Logs are saved as ` rtt_192_168_1_100.log ` or ` rtt_serial_123456.log ` .
110+
93111Get RTT help:
94112``` bash
95113bmlab-rtt --help
96114```
97115
116+ ### Erasing Flash Memory
117+
118+ Erase flash memory on a device:
119+
120+ ``` bash
121+ # Erase with auto-detected device
122+ bmlab-erase --mcu STM32F103RE
123+
124+ # Erase specific device by serial
125+ bmlab-erase --serial 123456 --mcu STM32F103RE
126+
127+ # Erase device via IP
128+ bmlab-erase --ip 192.168.1.100 --mcu STM32F765ZG
129+
130+ # Erase multiple devices via IP (parallel)
131+ bmlab-erase --ip 192.168.1.100 192.168.1.101 192.168.1.102 --mcu STM32F103RE
132+
133+ # Erase multiple devices via USB (sequential)
134+ bmlab-erase --serial 123456 789012 345678 --mcu STM32F103RE
135+ ```
136+
98137### Scanning for Devices
99138
100139Scan for USB-connected JLink devices:
@@ -114,65 +153,6 @@ bmlab-scan --network 192.168.1.0/24 --start-ip 100 --end-ip 150
114153bmlab-scan --network 192.168.1.0/24 --log-level DEBUG
115154```
116155
117- ### Parallel Flashing
118-
119- Flash multiple devices simultaneously using the provided script:
120-
121- ``` bash
122- # Flash multiple IPs from command line
123- examples/parallel_flash.sh firmware.bin 192.168.1.100 192.168.1.101 192.168.1.102
124-
125- # Flash with specific MCU type
126- examples/parallel_flash.sh --mcu STM32F765ZG firmware.bin 192.168.1.100 192.168.1.101
127-
128- # Flash from IP list file
129- cat > ips.txt << EOF
130- 192.168.1.100
131- 192.168.1.101
132- 192.168.1.102
133- EOF
134-
135- examples/parallel_flash.sh firmware.bin $( cat ips.txt)
136- ```
137-
138- The script outputs simple status for each device:
139- ```
140- 192.168.1.100 OK
141- 192.168.1.101 OK
142- 192.168.1.102 FAULT
143- ```
144-
145- ### Parallel RTT Reading
146-
147- Read RTT from multiple devices simultaneously and save to log files:
148-
149- ``` bash
150- # Read RTT from multiple devices (default 10 seconds)
151- examples/parallel_rtt.sh 192.168.1.100 192.168.1.101 192.168.1.102
152-
153- # Read for 30 seconds with specific MCU
154- examples/parallel_rtt.sh --mcu STM32F765ZG --timeout 30 192.168.1.100 192.168.1.101
155-
156- # Read indefinitely until Ctrl+C
157- examples/parallel_rtt.sh --timeout 0 192.168.1.100 192.168.1.101
158-
159- # Read from IP list file
160- examples/parallel_rtt.sh $( cat ips.txt)
161- ```
162-
163- Output:
164- ```
165- Output directory: rtt_logs_20251214_143052
166-
167- 192.168.1.100 OK (saved to rtt_logs_20251214_143052/rtt_192.168.1.100.log)
168- 192.168.1.101 OK (saved to rtt_logs_20251214_143052/rtt_192.168.1.101.log)
169- 192.168.1.102 FAULT (see rtt_logs_20251214_143052/rtt_192.168.1.102.log)
170-
171- All RTT sessions completed
172- ```
173-
174- Log files are saved in a timestamped directory with ANSI color codes removed for clean text output.
175-
176156### Python API
177157
178158#### Flashing
0 commit comments