STM32H750 support #1113
Replies: 4 comments 19 replies
-
Hi there! The Daisy stuff is really awesome! 🎹 I had seen it before, but this time it's too tempting to resist… There's a "referral" field in the checkout page—would you like me to put you as my referral? (There's no indication of what it gives you, though.) Are you using the STM32H750 CMSIS-Pack as the basis, then customizing it from there with the user script? Using a user script as you've done is absolutely a good way to do things. Ideally the CMSIS-Pack would work without workarounds required, at least for internal flash. 😄 Though when you start adding external flash and SDRAM, you inevitably need customization regardless which debug probe you're using. For the DBGMCU registers, you probably can use gdb load failure Flash speed By default pyocd scans (reads) the flash before programming to check if pages are changing, so it can only erase and program those that differ. Depending on how you're using it (programming totally different images versus development), how big the firmware image is, how fast the flash is, etc this can actually slow things down. You can disable this with the Warnings |
Beta Was this translation helpful? Give feedback.
-
Ok, if we figure out what the referral is for, I can send them an email. My board should hopefully be here by the weekend. Because of the use of external flash, and the way the Keil STM32 packs are generally built (I'll need to verify for the H750), you'd probably need a user script anyway to set the flash algo. From a quick look at the gdbserver log, it's running into the notorious "Memory transfer fault (individual memory accesses must not cross memory region boundaries)" error. Using the CMSIS-Pack based target, combined with adding memory regions via the user script, may be causing overlapping regions. You can verify this by running The flash block and page size look good. You can probably increase the page size quite a bit, all the way up to the block size. The larger the page size, the fewer times the flash algo has to be executed. The only downside is that sub-sections of a page cannot be programmed. But given the huge block size, that's not much of a problem. I'll take a closer look at the H750 specs and CMSIS-Pack .pdsc XML. Though I might not be able to get to right away. Btw, the SDRAM region probably isn't accessible until the SDRAM controller is configured. So you should set |
Beta Was this translation helpful? Give feedback.
-
Fyi, shipment of my Daisy was delayed a week or more because of a delay at the case manufacturer… should be here soon, hopefully. 😄 For the QSPI flash algo, the FlashAlgo repo is a framework for building such algos and includes several examples. I can help with this. Does SDRAM work? I assume you'd need to configure the controller registers in the user script as with other devices. |
Beta Was this translation helpful? Give feedback.
-
From the debug sequences in the Keil.STM32H7xx_DFP CMSIS-Pack, it looks like the invalid CoreSight components are caused by a trace clock not being enabled (unsurprising). If you set bit [20] |
Beta Was this translation helpful? Give feedback.
-
Hi,
I've managed to get pyocd to talk to a Daisy Seed that's based on an STM32H750 by creating a pyocd_user.py script.
Without it pyocd was garbling the flash with blocks of FFFFFFF on upload.
For starters I'm using an stlink-v3mini (V3J7M2) and pyocd 0.30.0.
Her's my user script:
pyocd_user.py.txt
Is this the right way to go about this kind of thing?
Flash speed seems kind of slow...
I also can't load from gdb right now:
The following warnings are somewhat concerning, but don't seem to stop flash or debug usage:
Anything to be worried about?
Cheers
Beta Was this translation helpful? Give feedback.
All reactions