pyocd / pyocd/pyOCD

Flashing IMXRT1160

Open
#1,456 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
1.5k
Forks
560
Avg merge
1h 41m
Merged PRs (30d)
3

Description

Hello,

To my understanding pyOCD does not yet have the functionality for programming the IMXRT1160. I'm just trying to build a simpler workflow for myself without having to use MCUXpresso. However, when I attempt to flash it, it seems that everything goes fine (I've tried flashing without -a 0x30000000, but just wanted to try to see if there was a mismatch in the destination address). I'm quite new to the development board, so I've might have missed something.

$ armgcc pyocd load -a 0x30000000 debug/hello_world_demo_cm7.elf -v
0000762 I Target type is mimxrt1170_cm7 [board]
0000820 I DP IDR = 0x6ba02477 (v2 rev6) [dap]
0000826 I AHB-AP#0 IDR = 0x84770001 (AHB-AP var0 rev8) [ap]
0000839 I AHB-AP#0 IDR = 0x84770001 (AHB-AP var0 rev8) [ap]
0000868 I AHB-AP#1 IDR = 0x24770011 (AHB-AP var1 rev2) [ap]
0000878 I APB-AP#2 IDR = 0x54770002 (APB-AP var0 rev5) [ap]
0000896 I AHB-AP#0 Class 0x1 ROM table #0 @ 0xe00fd000 (designer=00e:NXP part=88c) [rom_table]
0000899 I [0]<e00fe000:ROM class=1 designer=43b:Arm part=4c8> [rom_table]
0000900 I   AHB-AP#0 Class 0x1 ROM table #1 @ 0xe00fe000 (designer=43b:Arm part=4c8) [rom_table]
0000933 I   [0]<e00ff000:ROM class=1 designer=43b:Arm part=4c7> [rom_table]
0000933 I     AHB-AP#0 Class 0x1 ROM table #2 @ 0xe00ff000 (designer=43b:Arm part=4c7) [rom_table]
0000936 I     [0]<e000e000:SCS v7-M class=14 designer=43b:Arm part=00c> [rom_table]
0000939 I     [1]<e0001000:DWT v7-M class=14 designer=43b:Arm part=002> [rom_table]
0000941 I     [2]<e0002000:FPB v7-M class=14 designer=43b:Arm part=00e> [rom_table]
0000944 I     [3]<e0000000:ITM v7-M class=14 designer=43b:Arm part=001> [rom_table]
0000947 I   [1]<e0041000:ETM M7 class=9 designer=43b:Arm part=975 devtype=13 archid=4a13 devid=0:0:0> [rom_table]
0000952 I   [2]<e0042000:CTI class=9 designer=43b:Arm part=906 devtype=14 archid=0000 devid=40800:0:0> [rom_table]
0000957 I [1]<e0043000:CSTF class=9 designer=43b:Arm part=908 devtype=12 archid=0000 devid=28:0:0> [rom_table]
0000964 I AHB-AP#1 Class 0x1 ROM table #0 @ 0xe00ff000 (designer=43b:Arm part=4c4) [rom_table]
0001005 I [0]<e000e000:SCS v7-M class=14 designer=43b:Arm part=00c> [rom_table]
0001008 I [1]<e0001000:DWT v7-M class=14 designer=43b:Arm part=002> [rom_table]
0001010 I [2]<e0002000:FPB v7-M class=14 designer=43b:Arm part=003> [rom_table]
0001011 I [3]<e0000000:ITM v7-M class=14 designer=43b:Arm part=001> [rom_table]
0001015 I [5]<e0041000:ETM M4 class=9 designer=43b:Arm part=925 devtype=13 archid=0000 devid=0:0:0> [rom_table]
0001019 I [7]<e0043000:CSTF class=9 designer=43b:Arm part=908 devtype=12 archid=0000 devid=28:0:0> [rom_table]
0001024 I [8]<e0042000:CTI class=9 designer=43b:Arm part=906 devtype=14 archid=0000 devid=40800:0:0> [rom_table]
0001030 I CPU core #0 is Cortex-M7 r1p2 [cortex_m]
0001033 I FPU present: FPv5-D16-M [cortex_m]
0001037 I 4 hardware watchpoints [dwt]
0001039 I 8 hardware breakpoints, 1 literal comparators [fpb]
0001092 I 4 hardware watchpoints [dwt]
0001093 I 6 hardware breakpoints, 4 literal comparators [fpb]
0001102 I Loading /home/simengangstad/Downloads/imx-gcc/boards/evkmimxrt1160/demo_apps/hello_world/cm7/armgcc/debug/hello_world_demo_cm7.elf at 0x30000000 [load_cmd]
[==================================================] 100%
0002474 I Erased 0 bytes (0 sectors), programmed 24232 bytes (0 pages), skipped 0 bytes (0 pages) at 17.29 kB/s [loader]

The image is not updated on the board however after reset, so something funky is going on. Another weird issue is that the reported board is the IMXRT1170, even though I'm working on the IMXRT1160:

$ pyocd list

#   Probe/Board             Unique ID                                          Target
---------------------------------------------------------------------------------------------------
  0   ARM DAPLink CMSIS-DAP 02440b030209e95700000000000000000000000097969905   ✔︎ mimxrt1170_cm7
      MIMXRT1170-EVK

If there is anything I can do to make this possible I'm more than happy to help!

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the pyocd load and pyocd list entry points and compare the reported mimxrt1170_cm7 target with the IMXRT1160 board and the 0x30000000 load address. Reproduce the command and reset behavior, then determine what target support or identification is missing; done means the IMXRT1160 image is updated and the board is reported correctly.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
embedded-iot, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.