FreeRTOS 18F452 Port

debrajdeb wrote on Tuesday, March 04, 2008:

Hi,

I was trying out the port for 18F452 (MPLAB).

The code building works fine and the entire code fits in the Flash memory. I get the following info in "map" file: -
-------------------------------------------------------------------------------------------
                             Program Memory Usage
                              Start         End     
                          ---------   ---------     
                           0x000000    0x000005     
                           0x000008    0x000025     
                           0x00003a    0x0043be     
           17321 out of 33048 program addresses used, program memory utilization is 52%
-------------------------------------------------------------------------------------------

But my final application is on 18F4520 (successor to 18F452). Hence I changed the device and linker script to 18F4520. But then, I get the following linker error: -
-------------------------------------------------------------------------------------------
MPLINK 4.15, Linker
Copyright (c) 2007 Microchip Technology Inc.
Error - section ‘.udata_heap_1.o’ can not fit the section. Section ‘.udata_heap_1.o’ length=0x00000404
Errors    : 1
-------------------------------------------------------------------------------------------

I think, the error means that the code for "heap_1.c" is too big to be fitted in the memory. Why is this error? I know that the memory of 18F4520 >= memory of 18F452.

I also noticed that even if I revert the device and linker script back to 18F452 (same as original), the same linker error appears. Why is that?

Best regards.

picmeup wrote on Tuesday, March 04, 2008:

The freertos heap in heap_1.c is defined as one big array so is to big to fit in a small memory block as defined in the MPLAB linker scripts. Look at the 18f452.lkr file in the pic18_mplab folder to see a mod to create one large bit of RAM called BIG_BLOCK. This is the 18f452.lkr file in the pic18_mplab folder of freertos not the file in the mplab folder.

debrajdeb wrote on Tuesday, March 04, 2008:

Thanks. This information helps me immensely.

Best regards.