┬ÁTasker Forum > STTM STM32 and STR91XF

Compile for STM32F746 fail

(1/4) > >>

Hello Mark.

I have run STM32F746 version with Coocox, but when I compile, fail with one error.
How can I solve please ?

Attached capture screen with the error.
\Applications\uTaskerV1.4/debug.c:2778: undefined reference to `fnUpTime'
collect2.exe: error: ld returned 1 exit status

How can I configure for bootloader with SD card and STM32F746 ?

Best Regards


I have open and compile de uTaskerSerialBoot, this do not fail when compile, but in config.h is not the F746 available.

How can I configure uTasker to work with SD bootloader with STM32F746 ?



Which version of the project are you using?

CooCox hasn't been used for some time due to the fact that the IDE doesn't really exist any more. I have V2.0.5 still installed and can build the project for Kinetis parts if I change iic_drv.c to i2c_drv.c in the project files.
fnUpTime() is in the file time_keeper.c -if you have an old version it may be that timer_keeper.c hasn't been added to the CooCox project setup and you can do this by adding the file (that should exist in the /uTasker folder to the CooCox CoIDE project files.

In the lasted uTaskerV1.4 project configuration the target NUCLEO_F746ZG has been foreseen but hasn't been configured - STM32F746G_DISCO can be used but has only basic support at the HW library level but utFAt and the SD card HW interface is available.

There was no STM32F746G_DISCO target for the serial loader but new targets can be quite easy added if there is a reference target in the main (uTaskerV1.4) project. For example, i just added the target to my version as follows:

1. Add the new target in config.h
#define STM32F746G_DISCO                                           // evaluation board with STM32F746NGH6
2. Add its main properties in the same file:

--- Code: ---#elif defined STM32F746G_DISCO
    #define TARGET_HW            "STM32F746-Discovery"
    #define _STM32F7XX
    #define _STM32F746
    #define OUR_HEAP_SIZE        (HEAP_REQUIREMENTS)((24 * 1024) * MEM_FACTOR) // we have the LAN buffers in HEAP and big RX/TX
--- End code ---
3. Add a processor configuration in app_hw_stm32.h
#elif defined STM32F746G_DISCO                                           // STM32F746NGH6 (216MHz)
    #define CRYSTAL_FREQ        25000000
  //#define DISABLE_PLL                                                  // run from clock source directly
  //#define USE_HSI_CLOCK                                                // use internal HSI clock source
    #define PLL_INPUT_DIV       25                                       // 2..64 - should set the input to pll in the range 1..2MHz (with preference near to 2MHz)
    #define PLL_VCO_MUL         336                                      // 64 ..432 where VCO must be 64..432MHz
    #define PLL_POST_DIVIDE     2                                        // post divide VCO by 2, 4, 6, or 8 to get the system clock speed
    #define PIN_COUNT           PIN_COUNT_216_PIN
    #define PACKAGE_TYPE        PACKAGE_BGA
    #define SIZE_OF_RAM         (320 * 1024)                             // 320k SRAM (DTCM + SRAM1 + SRAM2)
    #define SIZE_OF_FLASH       (1024 * 1024)                            // 1M FLASH
    #define SUPPLY_VOLTAGE      SUPPLY_2_7__3_6                          // power supply is in the range 2.7V..3.6V
    #define PCLK1_DIVIDE        4
    #define PCLK2_DIVIDE        2
    #define HCLK_DIVIDE         1
4. Add the board configuration too:
#elif defined STM32F746G_DISCO
    #define USER_KEY_BUTTON            PORTI_BIT11

    #define LED1                       PORTI_BIT1                        // green LED
    #define LED2                       PORTI_BIT2                        // no further LEDs available on the board
    #define LED3                       PORTI_BIT3
    #define LED4                       PORTI_BIT4

    #define BLINK_LED                  LED1

    #define TOGGLE_WATCHDOG_LED()      _TOGGLE_PORT(I, BLINK_LED)        // blink the LED, if set as output

    #define WATCHDOG_DISABLE()         0

    #define FORCE_BOOT()               (_READ_PORT_MASK(I, (USER_KEY_BUTTON))) // hold user key at reset to force boot loader mode

    // LEDs
                                       // '0'            '1'        input state  center (x,   y)  0 = circle, radius, controlling port, controlling pin
    #define KEYPAD_LED_DEFINITIONS     {RGB(50, 50, 50), RGB(0, 255, 0), 0, {14, 163, 27, 168}, _PORTI, LED1}

    #define BUTTON_KEY_DEFINITIONS     {_PORTI, USER_KEY_BUTTON, {16, 235, 31, 250}}

    #define KEYPAD "../../uTaskerV1.4/Simulator/KeyPads/STM32F746-DISC.bmp"

    // Power down the USB controller and disable interrupts before jumping to the application
    #define RESET_PERIPHERALS()        IRQ0_31_CER  = 0xffffffff; \
                                       IRQ32_63_CER = 0xffffffff; \
                                       IRQ64_95_CER = 0xffffffff; \
                                       IRQ0_31_CPR  = 0xffffffff; \
                                       IRQ32_63_CPR = 0xffffffff; \
                                       IRQ64_95_CPR = 0xffffffff; \
                                       POWER_DOWN(AHB2, RCC_AHB2ENR_OTGFSEN); \
                                       POWER_DOWN(APB2, RCC_APB2ENR_SYSCFGEN); \
                                       SDIO_POWER = SDIO_POWER_POWER_OFF;
5. For SD card operation share the setup with other boards alreadiy using the SD card controller:
    #if defined STM3240G_EVAL || defined ST_MB997A_DISCOVERY || defined STM32F746G_DISCO
        #define SD_CONTROLLER_AVAILABLE                                  // use SDIO rather than SPI (necessary on STM3240G-EVAL board)



Hello Mark, thanks for your reply.
Im confused, several versions, but most fail when I try to compile.

What version I must use for a Bootloader by SD, with the STM32F746 ?

I have open the STM32_uTaskerV1.4.9_pre_20.12.2016. I load the three Applications and I compile.
uTaskerboot --------> fail (debug.c:2778: undefined reference to `fnUpTime')
uTaskerSerialBoot --> fail (debug.c:2778: undefined reference to `fnUpTime')
uTaskerV1.4 --> This compile.

What of the three I must use for a Bootloader by SD for a STM32F746 ?


Are you using the open source version on GITHUB or the professional version?




[0] Message Index

[#] Next page

Go to full version