Loading...
 

SW4STM32 and SW4Linux fully supports the STM32MP1 asymmetric multicore Cortex/A7+M4 MPUs

   With System Workbench for Linux, Embedded Linux on the STM32MP1 family of MPUs from ST was never as simple to build and maintain, even for newcomers in the Linux world. And, if you install System Workbench for Linux in System Workbench for STM32 you can seamlessly develop and debug asymmetric applications running partly on Linux, partly on the Cortex-M4.
You can get more information from the ac6-tools website and download (registration required) various documents highlighting:

System Workbench for STM32


OpenSTM workbench frustration

I’m getting pretty frustrated with the OpenSTM32 workbench. Though I appreciate it is free and shouldn’t complain, I must point out that I’ve wasted a lot of time with it.

I built a toolchain using Eclipse and the cross compiler as pointed out in the link: http://thehackerworkshop.com/?p=1056Question and have been using it succesfully for quite a while. When the new boards came out (429 disco and F7 disco) I thought I should move to Cubex for code and try to get on that bandwagon. Previously I was using a lot of code from Tilen at Stm32f4-discovery.net but I was getting to the point of having problems with the 429.

So I downloaded the Ac6 version and everything compiles and in some cases, even better than my old toolchain but nothing works. It looks to me like the startup and vectors are different between the two tool chains. Actually, they are different but I am not skilled enough yet to figure out what is going wrong.

The mbed compiler is working. I was able to get USB VCP, LCD, Touch, and ethernet sockets going quickly but the issue with Mbed setting aside the bloat, is tha serial has a bug that I don’t understand so I went back to OpenSTM32 and that won’t do anything.

So the bottom line is I would really like to see the AC6 code working with USB VCP etc. I posted a thread about the problem with no comments.

If anybody else built that other chain and could give me a hint on what could be wrong, I would appreciate it.

thanks

Jerry

France

Hi Jerry,

If you want to migrate from another toolchain to System Workbench for STM32, there is a few source files you should not copy; these are all the startup and vector table files, as they are provided by the toolchain and should not be part of your code.

I can’t say you which files should not be copied, but probably it will be named startup_xxxx.s or vectorxxx.s or something similar. Moreover you should not copy the link editor script file (usually named xxx.ld).

Moreover you should check that your IRQ handlers use the proper standard names (should be irq_name_IRQHandler, where irq_name is the name of the interrupt to manage); these names are quite standard, so there should be no problem but it’s worth checking.

Bernard (Ac6)

Bernard, thanks for the pointers and yes, I have tried migrating with/without startup files. And please don’t take my frustration as anything more than that.

I now have 4 discovery boards with the most recent, a 469, arriving today. The F7, F429 and F469 all exhibit the same problem when trying to build the most basic HAL USB VCP program. They will not enumerate when plugged into the PC. I don’t have this problem with the other tool chain I built, just the Ac6. And it doesn’t make any sense at all because the startup files are near identical in function if not in coding. Set that aside. What I really need is an example that works from cube to Ac6 that send/receives data using VCP. I have built the code about two dozen times. I select the pins in cube, selecting either HS or FS depending on the board. I then set the clock so that PLL_Q derives a 48Mhz USB signal (if needed because some of the boards have an external PHY). I then generate the code, compile and I get an Unknown USB device (Device3 Descriptor Request Failed) in device manager. I’ve tried every combination of HS/FS and on the F7 which has two ports, I made sure I had the correct port and mode.

I’ve read for hours on the web of people that had the same problem. They are in two broad categories, those that had a clock problem (PLL_M, N, P, Q not set correctly with HSE = 8000000) and those that got connected and then sent data too quickly prior to ensuring the connection is complete. There is a subset that had HS mode on an FS only connector but they are in the minority.

I need the HS USB VCP to work as my app sends real time ADC acquired data to the PC at a baudrate over 400k. I have it running on the F407 and it works great. I want to integrate one of the displays, most likely the F469 since it has the vertical resolution I need.

I will gladly make a contribution to the Ac6 cause if someone could demonstrate by example starting with Cube thru Ac6 to get an F469 (or F429 or F746) board enumerated. No transfer of data, just a successful enumeration would help. I think I have 100 hours in this bug which should have been easy. I tried mbed, which works, but their uart code is dropping characters so I had to pass.

Thanks for the help and if you contributed to this project, I think it is great overall.

Jerry