FreeRTOS 18F452 Port

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.

FreeRTOS 18F452 Port

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.

FreeRTOS 18F452 Port

Thanks. This information helps me immensely. Best regards.