-
Notifications
You must be signed in to change notification settings - Fork 2k
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
boards/im880b: refactor code #18451
boards/im880b: refactor code #18451
Conversation
@jmfriedt: This may simplify your work flow. Care to give this a spin? I got my two iM880B boards, btw. How exactly did you flash the boards to produce the clock error? Specifically, how are you triggering the reset and how to you control the BOOT input? |
Using the common STM32 board makefile provides all supported programmers for STM32 boards. This allows e.g. to flash with stm32flash via `make BOARD=im880b PROGRAMMER=stm32flash flash`.
At the moment I am manually programming the STM32 either using stm32flash or openocd/gdb-multiarch as documented at https://github.com/jmfriedt/RIOT_tests/blob/main/README.md |
Thanks for your reply. I am sadly still not entirely should about the exact steps to produce the issue. Is it something like that:
And with the last stable release, this would then boot RIOT just fine, while with current |
Correct, I have not been clear enough, here is the procedure I follow.
With openocd there is no manual handling of the board since the STLink/v2 signals are supposed to take care of all the actions:
with the last 3 commands repeated as many times as needed to get the message displayed on the serial port terminal monitoring communication at the same time. |
OK, I see. I was using Did you add an
I read this as one has to either trigger a reset via an exit sequence (as I did), or has to issue |
I edited my comment to add that after programming using the RS232 port, the program is supposed to be executed by resetting manually the microcontroller. |
@jmfriedt: Just one last question: The boot issue only appears after being flashed with Two causes for such behavior come to my mind:
I will check if I can reproduce the issue with the second iM880b board of mine. (But I have to solder some wires to it first.) |
no, both openocd/gdb-multiarch and stm32flash display random startup sequences depending on the board. Some board work flawlessly with stm32flash, allowing to complete my application, some boards start well with openocd "continue" but fail with stm32flash. With openocd after many (>5) retries of reset/load/continue I end up having a running program. Indeed @trabucayre is also thinking the bootloader/program transfer is the cause of the problem rather than RIOT-OS, but then I fail to understand why the pre-Sept 2020 version of RIOT is working flawlessly on all boards. Thanks for looking into this.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK
Contribution description
Using the common STM32 board makefile provides all supported programmers for STM32 boards. This allows e.g. to flash with stm32flash via
make BOARD=im880b PROGRAMMER=stm32flash flash
.Testing procedure
make flash
andmake term
should still work for OpenOCD with ST-Links as before, but additional programmers should now be available. I was able to program withstm32flash
.Issues/PRs references
None