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


Successfully Built Blinky in Eclipse Luna and Linux on STM32F429I-Disco

Well, nice to hear that you succeeded with this ... but you did not write HOW ... Would you be able to tell us step by step please ? I would also like to know if you were able to build a Release version - I get only Debug right now.

Thanks :-) !

I didn’t write exactly how because it was the very First time I had done it.

However I am perparing a step by step description of how I created my first blinky project on this platform.

I know how you feel as I have been though almost every tuorial out there and got no where with them due to version changes or lack of details.
I am hoping that this well help more to people to get started with this great little board.

I will already assume that you have Eclipse installed, I am using the Luna version as I had problems with using Mars version locking up in some menus on me in linux, and, these are known issues that they are working on.

Also I will assume to that you have the “System Workbench for STM32-Bare Metal Edition” installed in Eclipse as well, the directions are in these pages and it is very simple to do,

http://www.openstm32.org/Installing+System+Workbench+for+STM32?structure=DocumentationQuestion

This is the page for installing it in Eclipse,

http://www.openstm32.org/Installing+System+Workbench+for+STM32+from+EclipseQuestion

I am using “qstlink2” to program my board, it works great but sometimes it hangs a little and you have to hit the reset button on the Discovery Board and then click on Run MCU in the Qstlink2 GUI and your progarm will start running, Othertimes the board will automatically reset and start running, I am sure there is a reason for this but I don’t know what it is at this time.

Qstlink 2 can be found here,

https://github.com/fpoussin/qstlink2Question

This page is great help for getting everything setup as well,

http://vedder.se/2012/07/get-started-with-stm32f4-on-ubuntu-linux/Question

After doing it so many times I found that by just adding the PPA found on this page for your distro is the easiest methed.

https://launchpad.net/~fpoussin/+archive/ubuntu/ppaQuestion

And then just use “apt-get install qstlink2” and it will install it and create the icon for you as well to add to your panels for launching.

Then all you have to do is copy the dev rules with

sudo tar -xf stlink_udev_rule.tar.bz2 -C /etc/udev/rules.d

I have attched the devrules file and you put it in a folder called “stlink” in your Home directory to use the above command.

The dev rules for the “stlink and the “qstlink2” methods are the same I beleive.

I like “qstlink2” because it has a GUI where as “stlink” methed doesn’t and is run from the terminal.

I have not yet learned how to setup the debuging system but that is next on my list.

Then you connect your board and launch qstlink2 either by the icon or in a Terminal and you are good to go to program the board.

Unlike stlink, qstlink2 will only except a .bin file, but if your program compiles fine then the .bin file will be produced.

More to come!!

jer :-)

P.S. The file that I added got added twice by mistake and I couldn’t figure out how to delete one copy.
Your added files don’t show up when you edit the post.

Thank you very much ... always good to know what works :-) ... at the moment my problem is that I only get a Debug version but no Release version. Guess I’ll have to set the Release stuff by hand later ... got my own blinky working ... try to get the LCD working, but I find that they have done the same bad thing I always find - combined everything with everything ... The LCD needs the DMA and the memory controller (I only wanted to send some color patterns, but noooo ... you need the whole enchilada including fonts and SPI(OK, that’s clear) and so on) ...

So at the moment I always have 20 missing symbols ... I add files and have another 20 missing symbols. I only wanted to send some data to the LCD but it is all interconnected. And everything you add has to be initialized, can’t just add the SDRAM because that’s just what the compiler wants. The problem with this is that instead of a nice small litte test I will end up with an incredible behemoth of a program which will be a pig to debug ... not what I wanted to achieve. Modularity only on first glance. Of course I could go and cut the ties of that stuff but that’s exactly what I should not do ... manually change the underlying lib files. It should be a platform which I build upon - not tweak ...

The other thing buging me right now is to find out what is included in the compilation and what is visible from where. I find it annoying that Eclipse builds its own resource tree which looks like the file system but you can’t just add a file to a directory and it shows up in that tree (not even after refresh) ... so you import stuff from the file system into that Eclipse tree. But of course this logic is not used where you specify the incluse directories of the build ... there you give real file paths ... but there again visibility from one file to the next is not the same. I believe that there should be a single logic over all and frankly I don’t see why the file system couldn’b be that logic - as it used to be for decades. People seem to think that added abstraction layers is per definition a good thing. But they may also become obfuscation layers in my opinion.

Yeah, sorry again, this STM stuff brings out the worst in me, I’m afraid :-) ...

Thank you again for writing what you did to get going.

I am glad you got a Blinky program to work!!!

I think I know what you mean all of this stuff is a bit confusing to me as well, but in time I will figure it out.

Here is another Blinky program that is written a little differently but it flashes both the Red and Green LEDS on PG13 & PG14.

It took me a while to figure this one out as well.

In this version I followed the same steps only I just copy pasted the file as I had found it into the created blank Blinky project and it didn’t work and it should have.

It wasn’t until I commented out lines 2, 5 and 6 that I got it to compile correctly.

Again the value for “i” (2500000) controls the Binky rate in line 25.

Here is the “main.c” file as I have it working.

I hope this helps!! wink

jer :-)