RAK439 SDK 1.0.8?

  • Hi,

    The F407 FreeRTOS sample heheda (available at https://github.com/RAKWireless/RAK439/tree/master/example/STM32/RAK439_STM32F407_FreeRTOS) seems to be using a newer version of the RAK439 SDK than is available. I am porting the sample to another board, (ARM_CM4F), but when using the 1_0_7 SDK lib file, the compiler reports missing library functions

    MDK-ARM\MDK-ARM.axf: Error: L6218E: Undefined symbol setsockopt (referred from tcp_udp.o).
    MDK-ARM\MDK-ARM.axf: Error: L6218E: Undefined symbol rw_enter_critical (referred from cust_api_stack_offload.o).
    MDK-ARM\MDK-ARM.axf: Error: L6218E: Undefined symbol rw_exit_critical (referred from cust_api_stack_offload.o).
    MDK-ARM\MDK-ARM.axf: Error: L6218E: Undefined symbol rw_post_drv_sem (referred from cust_driver_main.o).

    Additionally, the header files for the heheda sample seem to be newer.

    • @file rw_lib.h
    • @author RAK439 module Design Team
    • @version V1.0.10
    • @date 11-March-2016


    • @file rw_lib.h
    • @author RAK439 module Design Team
    • @version V1.0.8
    • @date 13-Jun-2015

    However, the latest RAK439 SDK you guys released with headers is 1_0_6, and 1_0_7 contains only binaries.

    I'd like to ask for the binary, CM4F_OS and CM4F_NOS, also for the full SDK (1.0.8?) used in the heheda sample. It must include the missing methods setsockopt, getsockopt. Target board is KEIL, STM32F4xx

    The hooks rw_enter_critical, rw_exit_critical and rw_post_drv_sem I have to write myself?

    Or am I getting this completely wrong and only the 1_0_4 SDK can be used for F4xx?

  • administrators

    Sorry for your late reply , we updata the project in github. you can try again. thanks

  • Thank you!

    I understand that setsockopt and getsockopt are old functions and should not be used?

  • administrators

    yes, The function can not be used.

  • Thank you for your help, I have transplanted the 407 sample onto F469I and it now compiles OK. Now I get "init failed" error. Is it a problem with SPI? I am not getting 0x5b as the 8th packet.

    SPI [0]:OUT:44 IN:40
    SPI [1]:OUT:00 IN:40
    SPI [2]:OUT:00 IN:00
    SPI [3]:OUT:80 IN:00
    SPI [4]:OUT:C2 IN:00
    SPI [5]:OUT:00 IN:00
    SPI [6]:OUT:00 IN:00
    SPI [7]:OUT:00 IN:00

    Here you can see the CLK and MISO. The oscilloscope is seeing 0x40, 0x40 coming from the RAK439 WisNODE-SPI:


    After this, when next CLK pulse happens, RAK439 MISO stays low, giving 0x00 0x00 0x00....

    MOSI from STM32F469I to RAK439 is also working correctly, sending 0x44 and then 0x00:

    SPI settings are set the same as the F407 heheda sample, only difference is baud rate prescaler set to SPI_BAUDRATEPRESCALER_256 as suggested in the SPI DEBUG document.

    To simplify, power fet has been removed so the module always gets 3.3V. Power supply is stable. Using STM32F469I with Arduino connector and WisNODE-SPI plugged in, so wires are short and signal is good enough. CS, INT and RESET pins have also been transplanted.

    Any suggestions are very appreciated.

    Also, second thing - in documentation it says that for OS, the spi_int_enable must be set to true. But in the F407 heheda sample, which uses FreeRTOS, the flag is set to false. I am confused,


    F407 FreeRTOS sample heheda:

    So is this required or not?

    Is it possible we get contact to application engineer? We have a person who speaks Chinese good and will translate.

  • Quick update - SPI communication has been fixed, the problem was the CS pin was LOW(enabled) during SPI init. The CS pin must be set HIGH (disabled) before SPI is initialized.

  • administrators

    ok,yes,for OS, the spi_int_enable must be set to true. we will modify the SDK. thanks.

Log in to reply

Looks like your connection to RAK Support Center was lost, please wait while we try to reconnect.