Quality RTOS & Embedded Software

 Real time embedded FreeRTOS RSS feed 
Quick Start Supported MCUs PDF Books Trace Tools Ecosystem TCP & FAT




Loading

Large heap, dsPIC33, 'far' attribute?

Posted by apullin2 on October 29, 2014

Hi there,

I'm starting to get my application to actually run on my chip. I'm beaming with excitement. The one trick is that I'm using heap_4.c, since the platform does a lot of allocations and frees, since there's a radio chip that sends variable length payloads all the time.

The issue that I'm running in to is that on the dsPIC33 chip I have, which has 16K of RAM, only the lower 8K of it is available via 'near' addressing.

I want to allocate a large heap, most of what is not used in regular task tasks, to facilitate large queues for communications stacks.

Can you foresee any problems with changing the declaration of ucHeap to have __attribute__ ((far)) ?

Relevant chip-specific information is here, page 37, section 4.2.4 : http://ww1.microchip.com/downloads/en/DeviceDoc/70594d.pdf

It looks like points aren't any extra words in length, and the compiler has to issue an extra move instruction for any pointer deref? Getting a bit out of my depth there.


Large heap, dsPIC33, 'far' attribute?

Posted by rtel on October 29, 2014

Hmm. I'm not sure to be honest, but suspect if you make the heap memory far then the pointers that access memory allocated from the heap may also have to be declared far (task, queue, semaphore, etc. handles are effectively pointers). If possible I would just set the default to far in the compiler options.

Regards.


[ Back to the top ]    [ About FreeRTOS ]    [ Sitemap ]    [ ]




Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.

Latest News

FreeRTOS kernel V10 is available for immediate download. Now MIT licensed.


FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

IAR Partner

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers

STMicro RTOS partner supporting ARM7, ARM Cortex-M3, ARM Cortex-M4 and ARM Cortex-M0

Texas Instruments MCU Developer Network RTOS partner for ARM and MSP430 microcontrollers

OpenRTOS and SafeRTOS