I was always doing PIC stuff, now decided to move to arm.
I will be working with stm32f103, but then mostly with stm32f405 MCUs.
I was wondering which combination of free toolchain would support both chips? i made a search and i mostly see support for stm32f103 series… just wondering would that also work for f405 series?
so, who knows of a good universal and free toolchain which would allow utilize all program memory of mentioned MCUs?
The codesourcery free toolchain will work. BUT, there are the required startup and linker scripts that have to be made.
The STM32F4 demos that come with the Discovery board are all for $$$ compilers. I was going to start from the STM32M3 (aka stm32f10x) tools and try to get to F4, but have not gotten it going yet.
warning: stm32 is a completely different animal from pic, and free tools are the hardest way to get there. Rowley Crossworks is the cheapest way to start, $150 for a personal, non-commercial license. Pro licenses start usually around $2000 a seat.
I picked up a STM32F4-Discovery board last month to play with and I am using the GNU tools. This was the easiest path for me since I pretty much only run Linux. It has worked pretty well but I am avoiding the ST provided standard peripheral libraries like the plague. Which isn’t a big deal as so far it has been easier to deal with the hardware directly. So far I have blinking LEDs, interrupt driven serial port, and I am now working on a driver for the SDIO port. Which is the reason behind this project.
I am curious how you are using the usb, ethernet and other advanced stuff without their libs?
I am using the mthomas code setups for M3, which I understand after using it a long time, but this means we have to make linker and startup codes for the new proc.
ok thanks for the responses, now here is the thing:
i am not looking forward to use that discovery board, i will be using just that STM32F405 chip on a custom board, and on that tutorial i see that the software talks to STLINK usb chip located on discovery board which translates commands via JTAG to STM32.
as far as i know every STM32 chip comes with internal bootloader, and it is possible to program it via RS232, so now question is: is it possible to fully program STM32F405 chip using those tools WITHOUT any STLINK stuff?
actually i think it should…because all the GNU toolchain does is generating a HEX file isnt it? and then it turns out that i can put in that HEX file into STM32 even via the free FlashLoader program?
the only thing is, i wont be able to do in-circuit debugging.
You can be up and running in less than 30 minutes by going with the Rowley Crossworks IDE/Compiler/Debugger - they offer a 30 day FREE evaluation with no limits.
You can debug (single step, breakpoints, examine/change/watch registers, etc.) and program your custom board with the separate $25 ST-Link. Or you can use the ST-Link on any of the Discovery boards. All you need is 4 connections (PWR, GND, SWDIO, SWCLK) for the SWD (not JTAG) interface on your board.
that was not advice that was just statement of fact, yes everyone knows that setting this thing up is hard, but that doesnt answer my questions. if you know how to solve things and wish to bring it on then go ahead, if no then saying its hard is pointless.
right now i am messing with Eclipse, i have already success of tying it to sourcery g++. So i solved that problem.
and from my investiogation today, it seems that those debuggers DO NOT support ST-LINK.
so, i’ll be looking for a way to tie ST-LINK part from tutorial provided by a uhClem, to the development tools which i set up.
another problem is creating the right linker script for STM32F405/407 devices, looking at it now
Most Linux tools use OpenOCD. OpenOCD does not support ST-Link or SWD. So if you use open source GNU tools, you will have to use JTAG. I am using the lite version of Atollic TrueSTUDIO for programming a STM32F103. Have not had any problems. It supports ST-Link.
in the project build options, settings. Assembler and C compiler Target, i see that Software Implementation is selected for Floating Point. And i cant change it. those menus are disabled. Maybe thats the problem? and why cant i change that?
in the project build options, settings. Assembler and C compiler Target, i see that Software Implementation is selected for Floating Point. And i cant change it. those menus are disabled. Maybe thats the problem? and why cant i change that?
You can't change these options in the Lite version of the software.
Software Implementation for the Floating Point is also right for the STM32F103, as it doesn’t have any Floating Point Unit.
How did you set up the project? Did you just create a totally blank project, or did you use the project wizard to create a blank project for the STM32F103 including system header files and startup script?