Flashing AIR001 fails with “Memory transfer fault” on pyOCD > 0.36.0 but works on 0.36.0
Describe the bug When using pyOCD versions higher than 0.36.0, flashing AIR001 fails with a memory transfer error. The same command works correctly on pyOCD 0.36.0.
Command:
pyocd flash --erase chip --target air001 fw.hex
Error message:
C Memory transfer fault (write) @ 0x20001000-0x2000107f [__main__]
Using pyocd 0.36.0, the flashing completes successfully without any issues.
To reproduce
-
Install pyOCD >= 0.37.0
-
Run the command:
pyocd flash --erase chip --target air001 fw.hex -
Observe the memory transfer fault error.
Expected behavior The firmware should flash normally as it does in version 0.36.0.
Actual behavior Flashing fails with a “Memory transfer fault (write)” error.
Environment
- pyOCD version: 0.36.0 (works), >0.36.0 (fails)
- Target: AIR001
- OS: Windows 10 22H2 19045.5737
- Python version: 3.11.5
- ST-Link:V2J45M30
Additional context It looks like something changed after 0.36.0 that affects AIR001 memory writes (possibly RAM region config or flash algorithm behavior).
0.36.0 Log:
C:\Users\lhw>pyocd flash --erase chip --target air001 c:\GITHUB\Air001_GCC_Temp\build\Project.hex -vvv
0000994 D Project directory: C:\Users\lhw [session]
0001134 D Project directory: C:\Users\lhw [session]
0001141 D STLink probe 003600264E0000134E514137 firmware version: V2J45M30 [stlink]
0001144 D Fetching mounted devices from disk service registry entry [windows]
0001144 D Fetching usb storage devices from USBSTOR service registry entry [windows]
0001145 D target_id_usb_id -> mount_point mapping: {'003600264E0000134E514137': 'E:'} [windows]
0001145 D Unknown capabilities from the following ids: ['usb\\class_ff&subclass_ff&prot_ff', 'usb\\class_ff&subclass_ff', 'usb\\class_ff'] [windows]
0001146 D Composite device subdevice key SYSTEM\CurrentControlSet\Enum\USB\VID_0483&PID_374B&MI_03 was not found, skipping [windows]
0001146 D Composite device subdevice key SYSTEM\CurrentControlSet\Enum\USB\VID_0483&PID_374B&MI_04 was not found, skipping [windows]
0001156 D STLink probe 003600264E0000134E514137 firmware version: V2J45M30 [stlink]
0001158 I Target type is air001 [board]
0001172 D STLink probe 003600264E0000134E514137 firmware version: V2J45M30 [stlink]
0001173 D Running task load_svd [sequencer]
0001173 D Running task pre_connect [sequencer]
0001173 D Running task dp_init [sequencer]
0001175 D Running task lock_probe [sequencer]
0001176 D Running task get_probe_capabilities [sequencer]
0001178 D Running task connect [sequencer]
0001200 D Default wire protocol selected; using SWD [dap]
0001201 I DP IDR = 0x0bc11477 (v1 MINDP rev0) [dap]
0001202 D Running task clear_sticky_err [sequencer]
0001202 D Running task power_up_debug [sequencer]
0001203 D Running task check_version [sequencer]
0001204 D Running task unlock_probe [sequencer]
0001205 D Running task unlock_device [sequencer]
0001205 D Running task create_discoverer [sequencer]
0001205 D Running task discovery [sequencer]
0001206 D Running task find_aps [sequencer]
0001207 D Running task create_aps [sequencer]
0001207 D Running task create_ap.0 [sequencer]
0001209 D Using accelerated memory access interface for AHB-AP#0 [ap]
0001209 D AHB-AP#0 default HPROT=3 HNONSEC=0 [ap]
0001210 D AHB-AP#0 implemented HPROT=3 HNONSEC=0 [ap]
0001211 I AHB-AP#0 IDR = 0x04770031 (AHB-AP var3 rev0) [discovery]
0001211 D Running task find_components [sequencer]
0001211 D Running task init_ap.0 [sequencer]
0001214 I AHB-AP#0 Class 0x1 ROM table #0 @ 0xe00ff000 (designer=43b:Arm part=4c0) [rom_table]
0001216 I [0]<e000e000:SCS v6-M class=14 designer=43b:Arm part=008> [rom_table]
0001218 I [1]<e0001000:DWT v6-M class=14 designer=43b:Arm part=00a> [rom_table]
0001219 I [2]<e0002000:BPU v6-M class=14 designer=43b:Arm part=00b> [rom_table]
0001220 D Running task create_cores [sequencer]
0001221 D Creating SCS component [discovery]
0001221 D selected core #0 [soc_target]
0001224 I CPU core #0: Cortex-M0+ r0p1, v6.0-M architecture [cortex_m]
0001225 D Running task create_components [sequencer]
0001225 D Creating DWT component [discovery]
0001226 I 2 hardware watchpoints [dwt]
0001228 D Creating BPU component [discovery]
0001229 I 4 hardware breakpoints, 0 literal comparators [fpb]
0001230 D fpb has been disabled [fpb]
0001232 D Running task check_for_cores [sequencer]
0001232 D Running task halt_on_connect [sequencer]
0001233 D halting core 0 [cortex_m]
0001233 D Running task post_connect [sequencer]
0001236 D Running task post_connect_hook [sequencer]
0001236 D Running task create_flash [sequencer]
0001236 D Running task notify [sequencer]
0001238 I Loading C:\GITHUB\Air001_GCC_Temp\build\Project.hex [load_cmd]
0001246 D Using double buffer chip erase program [builder]
0001246 D 0 of 90 pages have erased data [builder]
[ ] 0%0001247 D halting core 0 [cortex_m]
0001248 D set reset catch, core 0 [cortex_m]
0001249 D halting core 0 [cortex_m]
0001252 D reset, core 0, type=SW_SYSTEM [cortex_m]
0001365 D clear reset catch, core 0 [cortex_m]
0001394 D resuming core 0 [cortex_m]
0001394 D added=[] removed=[] [manager]
0001394 D bps after flush={} [manager]
0001404 D resuming core 0 [cortex_m]
0001404 D added=[] removed=[] [manager]
0001404 D bps after flush={} [manager]
0001408 D target.get_state probe timeout [flash]
0001419 D resuming core 0 [cortex_m]
0001419 D added=[] removed=[] [manager]
0001420 D bps after flush={} [manager]
[ ] 1%0001427 D halting core 0 [cortex_m]
0001440 D resuming core 0 [cortex_m]
0001440 D added=[] removed=[] [manager]
0001441 D bps after flush={} [manager]
0001454 D resuming core 0 [cortex_m]
0001454 D added=[] removed=[] [manager]
0001455 D bps after flush={} [manager]
[= ] 3%0001472 D resuming core 0 [cortex_m]
0001472 D added=[] removed=[] [manager]
0001472 D bps after flush={} [manager]
[= ] 4%0001489 D resuming core 0 [cortex_m]
0001490 D added=[] removed=[] [manager]
0001490 D bps after flush={} [manager]
[== ] 5%0001507 D resuming core 0 [cortex_m]
0001508 D added=[] removed=[] [manager]
0001508 D bps after flush={} [manager]
[== ] 6%0001525 D resuming core 0 [cortex_m]
0001526 D added=[] removed=[] [manager]
0001526 D bps after flush={} [manager]
[=== ] 7%0001544 D resuming core 0 [cortex_m]
0001544 D added=[] removed=[] [manager]
0001544 D bps after flush={} [manager]
[==== ] 8%0001561 D resuming core 0 [cortex_m]
0001562 D added=[] removed=[] [manager]
0001562 D bps after flush={} [manager]
[==== ] 9%0001579 D resuming core 0 [cortex_m]
0001579 D added=[] removed=[] [manager]
0001580 D bps after flush={} [manager]
[===== ] 10%0001597 D resuming core 0 [cortex_m]
0001597 D added=[] removed=[] [manager]
0001598 D bps after flush={} [manager]
[===== ] 11%0001615 D resuming core 0 [cortex_m]
0001616 D added=[] removed=[] [manager]
0001616 D bps after flush={} [manager]
[====== ] 12%0001634 D resuming core 0 [cortex_m]
0001634 D added=[] removed=[] [manager]
0001635 D bps after flush={} [manager]
[====== ] 13%0001651 D resuming core 0 [cortex_m]
0001652 D added=[] removed=[] [manager]
0001652 D bps after flush={} [manager]
[======= ] 15%0001669 D resuming core 0 [cortex_m]
0001669 D added=[] removed=[] [manager]
0001669 D bps after flush={} [manager]
[======= ] 16%0001687 D resuming core 0 [cortex_m]
0001687 D added=[] removed=[] [manager]
0001687 D bps after flush={} [manager]
[======== ] 17%0001705 D resuming core 0 [cortex_m]
0001705 D added=[] removed=[] [manager]
0001705 D bps after flush={} [manager]
[======== ] 18%0001722 D resuming core 0 [cortex_m]
0001723 D added=[] removed=[] [manager]
0001723 D bps after flush={} [manager]
[========= ] 19%0001740 D resuming core 0 [cortex_m]
0001740 D added=[] removed=[] [manager]
0001741 D bps after flush={} [manager]
[========== ] 20%0001757 D resuming core 0 [cortex_m]
0001757 D added=[] removed=[] [manager]
0001758 D bps after flush={} [manager]
[========== ] 21%0001775 D resuming core 0 [cortex_m]
0001775 D added=[] removed=[] [manager]
0001775 D bps after flush={} [manager]
[=========== ] 22%0001793 D resuming core 0 [cortex_m]
0001793 D added=[] removed=[] [manager]
0001793 D bps after flush={} [manager]
[=========== ] 23%0001810 D resuming core 0 [cortex_m]
0001810 D added=[] removed=[] [manager]
0001810 D bps after flush={} [manager]
[============ ] 24%0001827 D resuming core 0 [cortex_m]
0001827 D added=[] removed=[] [manager]
0001827 D bps after flush={} [manager]
[============ ] 26%0001845 D resuming core 0 [cortex_m]
0001846 D added=[] removed=[] [manager]
0001846 D bps after flush={} [manager]
[============= ] 27%0001862 D resuming core 0 [cortex_m]
0001863 D added=[] removed=[] [manager]
0001863 D bps after flush={} [manager]
[============= ] 28%0001881 D resuming core 0 [cortex_m]
0001881 D added=[] removed=[] [manager]
0001882 D bps after flush={} [manager]
[============== ] 29%0001899 D resuming core 0 [cortex_m]
0001899 D added=[] removed=[] [manager]
0001900 D bps after flush={} [manager]
[============== ] 30%0001917 D resuming core 0 [cortex_m]
0001917 D added=[] removed=[] [manager]
0001918 D bps after flush={} [manager]
[=============== ] 31%0001936 D resuming core 0 [cortex_m]
0001936 D added=[] removed=[] [manager]
0001936 D bps after flush={} [manager]
[================ ] 32%0001953 D resuming core 0 [cortex_m]
0001953 D added=[] removed=[] [manager]
0001954 D bps after flush={} [manager]
[================ ] 33%0001971 D resuming core 0 [cortex_m]
0001971 D added=[] removed=[] [manager]
0001972 D bps after flush={} [manager]
[================= ] 34%0001989 D resuming core 0 [cortex_m]
0001989 D added=[] removed=[] [manager]
0001990 D bps after flush={} [manager]
[================= ] 35%0002007 D resuming core 0 [cortex_m]
0002007 D added=[] removed=[] [manager]
0002007 D bps after flush={} [manager]
[================== ] 36%0002024 D resuming core 0 [cortex_m]
0002024 D added=[] removed=[] [manager]
0002025 D bps after flush={} [manager]
[================== ] 38%0002042 D resuming core 0 [cortex_m]
0002042 D added=[] removed=[] [manager]
0002042 D bps after flush={} [manager]
[=================== ] 39%0002059 D resuming core 0 [cortex_m]
0002059 D added=[] removed=[] [manager]
0002060 D bps after flush={} [manager]
[=================== ] 40%0002077 D resuming core 0 [cortex_m]
0002077 D added=[] removed=[] [manager]
0002077 D bps after flush={} [manager]
[==================== ] 41%0002094 D resuming core 0 [cortex_m]
0002094 D added=[] removed=[] [manager]
0002094 D bps after flush={} [manager]
[==================== ] 42%0002111 D resuming core 0 [cortex_m]
0002112 D added=[] removed=[] [manager]
0002112 D bps after flush={} [manager]
[===================== ] 43%0002128 D resuming core 0 [cortex_m]
0002129 D added=[] removed=[] [manager]
0002129 D bps after flush={} [manager]
[====================== ] 44%0002146 D resuming core 0 [cortex_m]
0002146 D added=[] removed=[] [manager]
0002146 D bps after flush={} [manager]
[====================== ] 45%0002163 D resuming core 0 [cortex_m]
0002163 D added=[] removed=[] [manager]
0002164 D bps after flush={} [manager]
[======================= ] 46%0002181 D resuming core 0 [cortex_m]
0002182 D added=[] removed=[] [manager]
0002182 D bps after flush={} [manager]
[======================= ] 47%0002199 D resuming core 0 [cortex_m]
0002199 D added=[] removed=[] [manager]
0002199 D bps after flush={} [manager]
[======================== ] 49%0002216 D resuming core 0 [cortex_m]
0002217 D added=[] removed=[] [manager]
0002217 D bps after flush={} [manager]
[======================== ] 50%0002234 D resuming core 0 [cortex_m]
0002235 D added=[] removed=[] [manager]
0002235 D bps after flush={} [manager]
[========================= ] 51%0002253 D resuming core 0 [cortex_m]
0002253 D added=[] removed=[] [manager]
0002253 D bps after flush={} [manager]
[========================= ] 52%0002272 D resuming core 0 [cortex_m]
0002272 D added=[] removed=[] [manager]
0002273 D bps after flush={} [manager]
[========================== ] 53%0002290 D resuming core 0 [cortex_m]
0002290 D added=[] removed=[] [manager]
0002291 D bps after flush={} [manager]
[=========================== ] 54%0002309 D resuming core 0 [cortex_m]
0002309 D added=[] removed=[] [manager]
0002309 D bps after flush={} [manager]
[=========================== ] 55%0002327 D resuming core 0 [cortex_m]
0002327 D added=[] removed=[] [manager]
0002328 D bps after flush={} [manager]
[============================ ] 56%0002345 D resuming core 0 [cortex_m]
0002345 D added=[] removed=[] [manager]
0002346 D bps after flush={} [manager]
[============================ ] 57%0002363 D resuming core 0 [cortex_m]
0002363 D added=[] removed=[] [manager]
0002364 D bps after flush={} [manager]
[============================= ] 58%0002381 D resuming core 0 [cortex_m]
0002382 D added=[] removed=[] [manager]
0002382 D bps after flush={} [manager]
[============================= ] 59%0002399 D resuming core 0 [cortex_m]
0002399 D added=[] removed=[] [manager]
0002400 D bps after flush={} [manager]
[============================== ] 61%0002416 D resuming core 0 [cortex_m]
0002417 D added=[] removed=[] [manager]
0002417 D bps after flush={} [manager]
[============================== ] 62%0002434 D resuming core 0 [cortex_m]
0002434 D added=[] removed=[] [manager]
0002434 D bps after flush={} [manager]
[=============================== ] 63%0002451 D resuming core 0 [cortex_m]
0002451 D added=[] removed=[] [manager]
0002451 D bps after flush={} [manager]
[=============================== ] 64%0002468 D resuming core 0 [cortex_m]
0002468 D added=[] removed=[] [manager]
0002468 D bps after flush={} [manager]
[================================ ] 65%0002485 D resuming core 0 [cortex_m]
0002486 D added=[] removed=[] [manager]
0002486 D bps after flush={} [manager]
[================================= ] 66%0002503 D resuming core 0 [cortex_m]
0002503 D added=[] removed=[] [manager]
0002504 D bps after flush={} [manager]
[================================= ] 67%0002521 D resuming core 0 [cortex_m]
0002521 D added=[] removed=[] [manager]
0002521 D bps after flush={} [manager]
[================================== ] 68%0002538 D resuming core 0 [cortex_m]
0002538 D added=[] removed=[] [manager]
0002538 D bps after flush={} [manager]
[================================== ] 69%0002556 D resuming core 0 [cortex_m]
0002556 D added=[] removed=[] [manager]
0002557 D bps after flush={} [manager]
[=================================== ] 70%0002574 D resuming core 0 [cortex_m]
0002574 D added=[] removed=[] [manager]
0002574 D bps after flush={} [manager]
[=================================== ] 72%0002592 D resuming core 0 [cortex_m]
0002592 D added=[] removed=[] [manager]
0002592 D bps after flush={} [manager]
[==================================== ] 73%0002609 D resuming core 0 [cortex_m]
0002609 D added=[] removed=[] [manager]
0002610 D bps after flush={} [manager]
[==================================== ] 74%0002626 D resuming core 0 [cortex_m]
0002626 D added=[] removed=[] [manager]
0002627 D bps after flush={} [manager]
[===================================== ] 75%0002644 D resuming core 0 [cortex_m]
0002644 D added=[] removed=[] [manager]
0002644 D bps after flush={} [manager]
[===================================== ] 76%0002661 D resuming core 0 [cortex_m]
0002662 D added=[] removed=[] [manager]
0002662 D bps after flush={} [manager]
[====================================== ] 77%0002679 D resuming core 0 [cortex_m]
0002680 D added=[] removed=[] [manager]
0002680 D bps after flush={} [manager]
[======================================= ] 78%0002697 D resuming core 0 [cortex_m]
0002698 D added=[] removed=[] [manager]
0002698 D bps after flush={} [manager]
[======================================= ] 79%0002715 D resuming core 0 [cortex_m]
0002715 D added=[] removed=[] [manager]
0002715 D bps after flush={} [manager]
[======================================== ] 80%0002732 D resuming core 0 [cortex_m]
0002732 D added=[] removed=[] [manager]
0002732 D bps after flush={} [manager]
[======================================== ] 81%0002749 D resuming core 0 [cortex_m]
0002750 D added=[] removed=[] [manager]
0002750 D bps after flush={} [manager]
[========================================= ] 82%0002767 D resuming core 0 [cortex_m]
0002767 D added=[] removed=[] [manager]
0002767 D bps after flush={} [manager]
[========================================= ] 84%0002784 D resuming core 0 [cortex_m]
0002784 D added=[] removed=[] [manager]
0002784 D bps after flush={} [manager]
[========================================== ] 85%0002801 D resuming core 0 [cortex_m]
0002802 D added=[] removed=[] [manager]
0002802 D bps after flush={} [manager]
[========================================== ] 86%0002819 D resuming core 0 [cortex_m]
0002819 D added=[] removed=[] [manager]
0002819 D bps after flush={} [manager]
[=========================================== ] 87%0002836 D resuming core 0 [cortex_m]
0002836 D added=[] removed=[] [manager]
0002837 D bps after flush={} [manager]
[=========================================== ] 88%0002854 D resuming core 0 [cortex_m]
0002855 D added=[] removed=[] [manager]
0002855 D bps after flush={} [manager]
[============================================ ] 89%0002871 D resuming core 0 [cortex_m]
0002872 D added=[] removed=[] [manager]
0002872 D bps after flush={} [manager]
[============================================= ] 90%0002889 D resuming core 0 [cortex_m]
0002889 D added=[] removed=[] [manager]
0002889 D bps after flush={} [manager]
[============================================= ] 91%0002906 D resuming core 0 [cortex_m]
0002906 D added=[] removed=[] [manager]
0002906 D bps after flush={} [manager]
[============================================== ] 92%0002924 D resuming core 0 [cortex_m]
0002925 D added=[] removed=[] [manager]
0002925 D bps after flush={} [manager]
[============================================== ] 93%0002941 D resuming core 0 [cortex_m]
0002942 D added=[] removed=[] [manager]
0002942 D bps after flush={} [manager]
[=============================================== ] 95%0002959 D resuming core 0 [cortex_m]
0002960 D added=[] removed=[] [manager]
0002960 D bps after flush={} [manager]
[=============================================== ] 96%0002977 D resuming core 0 [cortex_m]
0002977 D added=[] removed=[] [manager]
0002977 D bps after flush={} [manager]
[================================================ ] 97%0002993 D resuming core 0 [cortex_m]
0002994 D added=[] removed=[] [manager]
0002994 D bps after flush={} [manager]
[================================================ ] 98%0003011 D resuming core 0 [cortex_m]
0003011 D added=[] removed=[] [manager]
0003011 D bps after flush={} [manager]
[================================================= ] 99%0003028 D resuming core 0 [cortex_m]
0003028 D added=[] removed=[] [manager]
0003029 D bps after flush={} [manager]
[==================================================] 100%
0003041 D resuming core 0 [cortex_m]
0003041 D added=[] removed=[] [manager]
0003042 D bps after flush={} [manager]
0003047 D set reset catch, core 0 [cortex_m]
0003047 D halting core 0 [cortex_m]
0003049 D reset, core 0, type=SW_SYSTEM [cortex_m]
0003163 D clear reset catch, core 0 [cortex_m]
0003167 I Erased chip, programmed 11520 bytes (90 pages), skipped 0 bytes (0 pages) at 5.85 kB/s [loader]
0003167 D uninit session <pyocd.core.session.Session object at 0x00000229374CE290> [session]
0003167 D uninit board <pyocd.board.board.Board object at 0x00000229378D7F10> [board]
0003168 D resuming core 0 [cortex_m]
0003168 D added=[] removed=[] [manager]
0003169 D bps after flush={} [manager]
V0.41.0 Log:
C:\Users\lhw>pyocd flash --erase chip --target air001 c:\GITHUB\Air001_GCC_Temp\build\Project.hex -vvv
0001045 D Project directory: C:\Users\lhw [session]
0001182 D Project directory: C:\Users\lhw [session]
0001185 D STLink probe 003600264E0000134E514137 firmware version: V2J45M30 [stlink]
0001189 D Fetching mounted devices from disk service registry entry [windows]
0001189 D Fetching usb storage devices from USBSTOR service registry entry [windows]
0001189 D target_id_usb_id -> mount_point mapping: {'003600264E0000134E514137': 'E:'} [windows]
0001190 D Unknown capabilities from the following ids: ['usb\\class_ff&subclass_ff&prot_ff', 'usb\\class_ff&subclass_ff', 'usb\\class_ff'] [windows]
0001190 D Composite device subdevice key SYSTEM\CurrentControlSet\Enum\USB\VID_0483&PID_374B&MI_03 was not found, skipping [windows]
0001190 D Composite device subdevice key SYSTEM\CurrentControlSet\Enum\USB\VID_0483&PID_374B&MI_04 was not found, skipping [windows]
0001201 D STLink probe 003600264E0000134E514137 firmware version: V2J45M30 [stlink]
0001204 I Target type is air001 [board]
0001217 D STLink probe 003600264E0000134E514137 firmware version: V2J45M30 [stlink]
0001218 D Running task load_svd [sequencer]
0001219 D Running task pre_connect [sequencer]
0001219 D Running task dp_init [sequencer]
0001221 D Running task lock_probe [sequencer]
0001222 D Running task get_probe_capabilities [sequencer]
0001224 D Running task connect [sequencer]
0001246 D Default wire protocol selected; using SWD [dap]
0001247 I DP IDR = 0x0bc11477 (v1 MINDP rev0) [dap]
0001247 D Running task clear_sticky_err [sequencer]
0001247 D Running task power_up_debug [sequencer]
0001249 D Running task check_version [sequencer]
0001249 D Running task unlock_probe [sequencer]
0001249 D Running task unlock_device [sequencer]
0001250 D Running task create_discoverer [sequencer]
0001250 D Running task discovery [sequencer]
0001250 D Running task find_aps [sequencer]
0001252 D Running task create_aps [sequencer]
0001252 D Running task create_ap.0 [sequencer]
0001253 D Using accelerated memory access interface for AHB-AP#0 [ap]
0001254 D AHB-AP#0 default HPROT=3 HNONSEC=0 [ap]
0001255 D AHB-AP#0 implemented HPROT=3 HNONSEC=0 [ap]
0001256 I AHB-AP#0 IDR = 0x04770031 (AHB-AP var3 rev0) [discovery]
0001256 D Running task find_components [sequencer]
0001256 D Running task init_ap.0 [sequencer]
0001259 I AHB-AP#0 Class 0x1 ROM table #0 @ 0xe00ff000 (designer=43b:Arm part=4c0) [rom_table]
0001262 I [0]<e000e000:SCS v6-M class=14 designer=43b:Arm part=008> [rom_table]
0001264 I [1]<e0001000:DWT v6-M class=14 designer=43b:Arm part=00a> [rom_table]
0001267 I [2]<e0002000:BPU v6-M class=14 designer=43b:Arm part=00b> [rom_table]
0001267 D Running task create_cores [sequencer]
0001267 D Creating SCS component [discovery]
0001268 D selected core #0 [soc_target]
0001271 I CPU core #0: Cortex-M0+ r0p1, v6.0-M architecture [cortex_m]
0001272 D Running task create_components [sequencer]
0001272 D Creating DWT component [discovery]
0001273 I 2 hardware watchpoints [dwt]
0001275 D Creating BPU component [discovery]
0001275 I 4 hardware breakpoints, 0 literal comparators [fpb]
0001276 D fpb has been disabled [fpb]
0001278 D Running task check_for_cores [sequencer]
0001279 D Running task halt_on_connect [sequencer]
0001279 D halting core 0 [cortex_m]
0001280 D Running task post_connect [sequencer]
0001281 D Running task post_connect_hook [sequencer]
0001281 D Running task create_flash [sequencer]
0001282 D Running task notify [sequencer]
0001282 D set reset catch, core 0 [cortex_m]
0001282 D removing all breakpoints before reset [manager]
0001282 D halting core 0 [cortex_m]
0001284 D reset, core 0, type=DEFAULT [cortex_m]
0001400 D clear reset catch, core 0 [cortex_m]
0001401 D disabling hardware breakpoints after reset [manager]
0001405 I Loading C:\GITHUB\Air001_GCC_Temp\build\Project.hex [load_cmd]
0001413 D 0 of 90 pages have erased data [builder]
0001414 D halting core 0 [cortex_m]
0001440 D resuming core 0 [cortex_m]
0001440 D added=[] removed=[] [manager]
0001441 D bps after flush={} [manager]
0001450 D resuming core 0 [cortex_m]
0001451 D added=[] removed=[] [manager]
0001451 D bps after flush={} [manager]
0001455 D target.get_state probe timeout [flash]
0001465 D resuming core 0 [cortex_m]
0001465 D added=[] removed=[] [manager]
0001466 D bps after flush={} [manager]
[ ] 1%0001470 D halting core 0 [cortex_m]
0001485 D resuming core 0 [cortex_m]
0001486 D added=[] removed=[] [manager]
0001486 D bps after flush={} [manager]
0001494 D uninit session <pyocd.core.session.Session object at 0x000001D1CCCB0C10> [session]
0001494 D uninit board <pyocd.board.board.Board object at 0x000001D1CC839090> [board]
0001495 D resuming core 0 [cortex_m]
0001495 D added=[] removed=[] [manager]
0001496 D bps after flush={} [manager]
0001500 C Memory transfer fault (write) @ 0x20001000-0x2000107f [__main__]
Traceback (most recent call last):
File "C:\Users\lhw\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyocd\__main__.py", line 161, in run
status = cmd.invoke()
^^^^^^^^^^^^
File "C:\Users\lhw\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyocd\subcommands\load_cmd.py", line 161, in invoke
programmer.program(filename,
File "C:\Users\lhw\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyocd\flash\file_programmer.py", line 173, in program
self._loader.commit()
File "C:\Users\lhw\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyocd\flash\loader.py", line 294, in commit
perf = builder.program(chip_erase=chipErase,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\lhw\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyocd\flash\builder.py", line 530, in program
flash_operation = self._chip_erase_program(progress_cb)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\lhw\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyocd\flash\builder.py", line 747, in _chip_erase_program
self.flash.program_page(page.addr, page.data)
File "C:\Users\lhw\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyocd\flash\flash.py", line 395, in program_page
self.target.write_memory_block8(self.begin_data, bytes)
File "C:\Users\lhw\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyocd\core\soc_target.py", line 235, in write_memory_block8
return self.selected_core_or_raise.write_memory_block8(addr, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\lhw\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyocd\coresight\cortex_m.py", line 636, in write_memory_block8
self.ap.write_memory_block8(addr, data)
File "C:\Users\lhw\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyocd\utility\concurrency.py", line 29, in _locking
return func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\lhw\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyocd\coresight\ap.py", line 1334, in _accelerated_write_memory_block8
self._accelerated_memory_interface.write_memory_block8(addr, data,
File "C:\Users\lhw\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyocd\probe\stlink_probe.py", line 377, in write_memory_block8
self._link.write_mem32(addr, data[idx:idx + aligned_size], self._apsel, csw)
File "C:\Users\lhw\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyocd\probe\stlink\stlink.py", line 493, in write_mem32
self._write_mem(addr, data, Commands.JTAG_WRITEMEM_32BIT, self.MAXIMUM_TRANSFER_SIZE, apsel, csw)
File "C:\Users\lhw\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyocd\probe\stlink\stlink.py", line 481, in _write_mem
raise exc
pyocd.core.exceptions.TransferFaultError: Memory transfer fault (write) @ 0x20001000-0x2000107f
Fix:
Please modify line 60 in the file .\pyocd\target\builtin\target_Air001.py as follows:
Change to:
'begin_data' : 0x20000000 + 0x270,