-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ability to flash F7 devices when in dual-bank mode #1174
Comments
@DaveBerkeley Does your feature branch fully address this topic? If your approach is satisfiable, it would be great if you could share it with opening a pull request. ;-) |
It is a bit of a hack. I added a --dual-bank switch on the command line (but not to --help) and use a table to look up the sectors to erase. I've only tested it on stm32f797 and stm32f767 parts that I have available. I have not look ed at other stm32f7 parts. |
Ok, so are there any volunteers around? (I can't help with the F7 series at all nor do I have appropriate HW around.) |
I've removed the --dual-bank option and added code to read the optcr reg for stm32f76x devices. Now in /~https://github.com/DaveBerkeley/stlink/tree/f7_integrate branch. I have tested it on a Nucleo F767 board. Will try and test on my F779 target next week. |
I have access to a NUCLEO-H753 board as well as a few H750 boards (which have just a single 128kiB flash block). Should this code also work on dual banked H7xx chips or at least detect them as unsupported? If there is a way to disable dual banked mode afterward I'm could to perform the positive (and negative) testing on my H7xx boards. |
@Crest I've just started to review this issue. Are you still available with your hardware to take a look at the other H7-related issues? We likely need some testing there. I'll report back on this topic soon. |
@DaveBerkeley I've just committed a slight modification of your tested solution, taking into account recent refactoring in the codebase. Please re-test this on our |
I no longer have access to the systems I was using when I opened the issue, so I can't test on a target system. It was for a commercial client that I'm no longer working for. I can pass the details on to them though. Sorry. |
I'm working on a project using the STM32F779. We want to be able to use a bootloader to switch between flash banks bank_1 and bank_2.
I can use the latest st-flash code to write the opt_cr option bytes to set NDBANK and NDBOOT to 0. This places the device in dual-bank mode and dual-boot mode.
st-flash --area=optcr write 0x0fffaafc
Setting option_boot_add can then cause the bootloader to select code in either bank_0 (0x200) or bank_1 (0x2040).
st-flash --reset --area=option_boot_add write 0x20002000
I can't see a way to flash the part when it is in dual-bank mode. The sector erase mapping depends on the mode - the state of both of these option bits.
I've written some code to allow flashing in dual-bank mode, in a fork here, /~https://github.com/DaveBerkeley/stlink on branch f7-dual-bank-flash. This gets me going for my project (it can only flash bank_1, not bank_2).
st-flash --dual-bank --reset write firmware.bin 0x08000000
Am I missing something, or is this functionality missing? I'd like to contribute my changes if they are useful, but I don't know if the changes would fit in well with the existing project.
See also Application note AN4826 "STM32F7 Series Flash memory dual bank mode"
The text was updated successfully, but these errors were encountered: