This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

General aspects using a Discovery Board with a STM32F407VG and uVision from Keil and SW4STM32 fon AC6

Hello, some time ago I started to play with CortexM4,

I bought a Discovery Board with a STM32F407VG in order to be programmed with uVision from Keil.

I am developing a project where the money is very restricted, that's why I was using a free licence from Keil.

Everything was working fine until I exceed the program size of 32KB(now I need to pay the license if I want to continue for this way).

I started to look for other option, and gnu-arm-none-eabi with Eclipse seems to be the answer.

The big problem are the peripherals: I need to use UART(to output message on debugging time using the famous "printf()") and SDIO to log some variables from different sensors that require I2C.

In general terms: what are the aspects that I need to consider when I switch those IDEs: from uVision to "System Workbench for STM32" known as SW4STM32.

Parents
  • Hi Jens, my firs approach was just installing gnu-arm-none-eabi and the run a simple example. It was working fine until I call function "printf()".

    "printf()" was redirected to USART6 on my DiscoveryBoard(it is working very nice if project is compiled under Windows using UVision IDE), By the time I took the same project and in order to built it under gnu-arm-none-eabi I got some messages from linker:

    "undefined reference to `_exit'"

    "undefined reference to `_sbrk'"

    "undefined reference to `_write'"

    "undefined reference to `_close'"

    "undefined reference to `_fstat'"

    "undefined reference to `_isatty'"

    "undefined reference to `_lseek"

    "undefined reference to `_read'"

    As I read, "printf()" make some system calls. In a Bare-Metal environment those function need to be implemented. At this moment I don't have idea how to do it and how to to test them.

    Do you have a reference wiah can help me?

    Thanks in advance,

    Mariano

Reply
  • Hi Jens, my firs approach was just installing gnu-arm-none-eabi and the run a simple example. It was working fine until I call function "printf()".

    "printf()" was redirected to USART6 on my DiscoveryBoard(it is working very nice if project is compiled under Windows using UVision IDE), By the time I took the same project and in order to built it under gnu-arm-none-eabi I got some messages from linker:

    "undefined reference to `_exit'"

    "undefined reference to `_sbrk'"

    "undefined reference to `_write'"

    "undefined reference to `_close'"

    "undefined reference to `_fstat'"

    "undefined reference to `_isatty'"

    "undefined reference to `_lseek"

    "undefined reference to `_read'"

    As I read, "printf()" make some system calls. In a Bare-Metal environment those function need to be implemented. At this moment I don't have idea how to do it and how to to test them.

    Do you have a reference wiah can help me?

    Thanks in advance,

    Mariano

Children