Calling the STM32 SystemMemory Bootloader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2014-02-03 7:53 AM
I'm trying to launch the SystemMemory Bootloader on a STM32F4 as documented in this video:
http://www.youtube.com/watch?v=cvKC-4tCRgw The PC detects a new device on USB but it does not enumerate. Using the Boot0 pin to get into the bootloader works fine, and USB detects the DFU. I'm using ChibiOS/GCC, but even launching the bootloader before calling halInit() and chSysInit() does not help. Any idea? #bootloader #stm32 #stm32f4-bootloader- Labels:
-
Bootloader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2014-02-03 8:35 AM
Any idea?
Do you have the DFU driver loaded? It's definately possible to initiate the System Loader from an application, I've done it from close to boot conditions (ie no interrupts, HSI clock, ROM mapped at zero)Up vote any posts that you find helpful, it shows what's working..
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2014-02-03 9:49 AM
ROM mapping at zero, good point. I added
SYSCFG->MEMRMP |= 0x01;
but still no USB enumeration. It works with the boot0 pin strapped, so it is not a driver or board issue.
Interrupts disabled, and HSI is clock source.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2014-04-10 6:39 AM
Hi
I experience exactly the same problem. Calling the bootloader with the YouTube Code gives me an unenumerated USB device. Using the Boot pin work fine.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2014-06-04 10:40 PM
Gentle bump, I still could not get this to work...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2014-07-25 12:48 AM
I also had the exact same problem. I could solve the issue if I comment this line:
//__set_PRIMASK(1);
I am however not so sure, it this is the right way to do this.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2014-07-25 7:32 AM
For RTOS implementations where the code is operating in User mode rather than System mode, I'd recommend using an SVC implementation.
[DEAD LINK /public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Flat.aspx?RootFolder=/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Jumping%20to%20Application&FolderCTID=0x01200200770978C69A1141439FE559EB459D7580009C4E14902C3CDE46A77F0FFD06506F5B¤tviews=213]https://my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Flat.aspx?RootFolder=%2Fpublic%2FSTe2ecommunities%2Fmcu%2FLists%2Fcortex_mx_stm32%2FJumping%20to%20Application&FolderCTID=0x01200200770978C69A1141439FE559EB459D7580009C4E14902C3CDE46A77F0FFD06506F5B¤tviews=213 Where you'd change the application address to the base of the ROM There are other thread where I have demonstrated how to enter the F2/F4 ROM's with the right settings to get the USB DFU functionality working.Up vote any posts that you find helpful, it shows what's working..
