|
5 | 5 |
|
6 | 6 | import os |
7 | 7 | +import re |
| 8 | + import shutil |
| 9 | + from pathlib import Path |
8 | 10 |
|
9 | | - from runners.core import RunnerCaps, ZephyrBinaryRunner |
10 | | - |
11 | | -@@ -82,6 +83,31 @@ |
12 | | - espidf=args.esp_idf_path, encrypt=args.esp_encrypt, no_stub=args.esp_no_stub, |
13 | | - reset_type=args.reset_type) |
| 11 | +@@ -141,6 +142,31 @@ class Esp32BinaryRunner(ZephyrBinaryRunner): |
| 12 | + Path(prev_bin).parent.mkdir(parents=True, exist_ok=True) |
| 13 | + shutil.copy2(self.app_bin, prev_bin) |
14 | 14 |
|
15 | 15 | + def get_chosen_code_partition_address(self): |
16 | 16 | + edt_path = os.path.join(self.cfg.build_dir, 'zephyr', 'edt.pickle.cmake') |
|
37 | 37 | + def get_app_address(self): |
38 | 38 | + return self.get_chosen_code_partition_address() or self.app_address |
39 | 39 | + |
40 | | - def do_run(self, command, **kwargs): |
| 40 | + @classmethod |
| 41 | + def do_create(cls, cfg, args): |
| 42 | + return Esp32BinaryRunner(cfg, args) |
| 43 | +@@ -184,7 +210,7 @@ class Esp32BinaryRunner(ZephyrBinaryRunner): |
41 | 44 |
|
42 | | - cmd_flash = ['esptool'] |
43 | | -@@ -101,7 +127,10 @@ |
44 | | - self.logger.warning( |
45 | | - '--reset-type is ignored because reset is disabled (--no-reset)') |
46 | | - if self.reset: |
47 | | -- cmd_flash.extend(['--after', self.reset_type or 'hard-reset', 'write-flash', '-u']) |
48 | | -+ cmd_flash.extend(['--after', self.reset_type or 'hard-reset']) |
49 | | -+ else: |
50 | | -+ cmd_flash.extend(['--after', 'no-reset']) |
51 | | -+ cmd_flash.extend(['write-flash', '-u']) |
52 | | - cmd_flash.extend(['--flash-mode', self.flash_mode]) |
53 | | - cmd_flash.extend(['--flash-freq', self.flash_freq]) |
54 | | - cmd_flash.extend(['--flash-size', self.flash_size]) |
55 | | -@@ -109,7 +138,7 @@ |
56 | | - if self.encrypt: |
57 | | - cmd_flash.extend(['--encrypt']) |
| 45 | + self._append_flash_opts(cmd_flash) |
58 | 46 |
|
59 | 47 | - cmd_flash.extend([self.app_address, self.app_bin]) |
60 | 48 | + cmd_flash.extend([self.get_app_address(), self.app_bin]) |
61 | 49 |
|
62 | | - self.logger.info(f"Flashing esp32 chip on {self.device} ({self.baud}bps)") |
63 | | - self.check_call(cmd_flash) |
| 50 | + device_str = self.device if self.device else 'auto-detect' |
| 51 | + self.logger.info( |
0 commit comments