Forums - FreeRTOS and SDK 3.1

4 posts / 0 new
Last post
FreeRTOS and SDK 3.1
rabryn
Join Date: 12 Jun 18
Posts: 9
Posted: Fri, 2019-05-17 07:21

Hello,

Targeting qca4020-or-3-1 with FreeRTOS has duplicate symbols for pvPortMalloc and vPortFree.  They are both defined in portable/MemMang/heap_4.c and target/lib/cortex-m4IPT/freertos/core.lib (/local/mnt/workspace/CRMBuilds/CNSS_W.QZ.3.1-00030-QZHW-1_20190501_171346/b/ioesw_proc/core/services/utils/src/fom/umemheap_lite.c).

This was not the case with qca4020-or-3-0.

This obviously deals with the FreeRTOS heap.  The questions are what changed, why, and what is the best resolution?  Is the separate FreeRTOS heap still required?  Is there updated documentation for using FreeRTOS with SDK 3.1?

Thanks,

Ryan

  • Up0
  • Down0
c_rpedad
Profile picture
Join Date: 18 Jun 18
Location: San Jose
Posts: 317
Posted: Fri, 2019-05-17 14:48
We haven't posted the CS3.1 release into QDN yet. However, since you have already got the 3.1, we have removed the freeRTOS definitions and included into our umemheap_lite.c file. You don't need to provide extern function and use default symbols. If you are a registered user, kindly contact back on salesforce with detailed build errors.
  • Up0
  • Down0
rabryn
Join Date: 12 Jun 18
Posts: 9
Posted: Mon, 2019-05-20 11:25

Does the separate FreeRTOS heap still needs to be defined in the linker script?  In the 3.0 SDK this was defined as "'RTOS_HEAP_SIZE'", and also referenced in FreeRTOSConfig.h as "configTOTAL_HEAP_SIZE".  Please confirm.

  • Up0
  • Down0
jaydenk
Join Date: 21 Jun 18
Posts: 64
Posted: Wed, 2019-06-05 10:19

Hi Ryan,

RTOS_HEAP_SIZE is not set/used anymore.
This is linker script on 3.1 SDK.

/bin/cortex-m4/freertos/DefaultTemplateLinkerScript.ld
RTOS_HEAP_SIZE = 0x0;

Thanks
BR,
Jayden

  • Up0
  • Down0
or Register

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.