Quality RTOS & Embedded Software

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




Loading

udata_heap_1.o' can not fit the section.

Posted by sathish on June 12, 2012
any one help me to edit the linker file for my project.actually i am using pic 18f26j50 with c18 compiler in mplab i am getting this error while compile my file
Error - section '.udata_heap_1.o' can not fit the section. Section '.udata_heap_1.o' length=0x00000400
how to rectify this one...

RE: udata_heap_1.o' can not fit the section.

Posted by Richard on June 12, 2012
Look at the file 18f452.lkr in FreeRTOS/Demo/PIC18_MPLAB. It creates a large data bank called BIG_BLOCK to fit the FreeRTOS heap, you will have to do a similar thing in your linker script.

Note that there are (documented) problems when a stack allocated from this big block crosses a page boundary, although you will find fixes for this in FreeRTOS Interactive and other locations - but still the PIC18 is far from an ideal target to run any kind of pre-emptive RTOS because of its paging scheme and hardware stack.

Regards.

RE: udata_heap_1.o' can not fit the section.

Posted by sathish on June 12, 2012
dear sir i have edited my linker file for pic18f26j50 and it also compiled successfully but the problem now is its not working with hardware..i am getting some warnings.the warnings are shown below...
D:\sathish\programs\FreeRTOSV7.1.1\led.c:42:Warning [2066] type qualifier mismatch in assignment
D:\sathish\programs\FreeRTOSV7.1.1\led.c:43:Warning [2066] type qualifier mismatch in assignment
D:\sathish\programs\FreeRTOSV7.1.1\led.c:44:Warning [2066] type qualifier mismatch in assignment


my program is shown below..

#include "p18f26j50.h"

#include ".\Source\include\FreeRTOS.h"
#include ".\Source\include\task.h"
#include "delays.h"





#pragma config WDTEN = OFF //WDT disabled (enabled by SWDTEN bit)#elif defined(PIC18F26J50_PIM) || defined(PIC18F_STARTER_KIT_1) || defined(PIC18F47J53_PIM)
// defined(PIC18F26J50_PIM) || defined(PIC18F_STARTER_KIT_1) || defined(PIC18F47J53_PIM)
#pragma config PLLDIV = 1 //Divide by 3 (12 MHz oscillator input)
#pragma config STVREN = ON //stack overflow/underflow reset enabled
#pragma config XINST = OFF //Extended instruction set disabled
#pragma config CPUDIV = OSC1 //No CPU system clock divide
#pragma config CP0 = ON //Program memory is not code-protected
#pragma config OSC = HSPLL //HS oscillator, PLL enabled, HSPLL used by USB
#pragma config T1DIG = OFF //Sec Osc clock source may not be selected, unless T1OSCEN = 1
#pragma config LPT1OSC = OFF //high power Timer1 mode
#pragma config FCMEN = OFF //Fail-Safe Clock Monitor disabled
#pragma config IESO = OFF //Two-Speed Start-up disabled
#pragma config WDTPS = 32768 //1:32768
#pragma config DSWDTOSC = INTOSCREF //DSWDT uses INTOSC/INTRC as clock
#pragma config RTCOSC = T1OSCREF //RTCC uses T1OSC/T1CKI as clock
#pragma config DSBOREN = OFF //Zero-Power BOR disabled in Deep Sleep
#pragma config DSWDTEN = OFF //Disabled
#pragma config DSWDTPS = 8192 //1:8,192 (8.5 seconds)
#pragma config IOL1WAY = OFF //IOLOCK bit can be set and cleared
#pragma config MSSP7B_EN = MSK7 //7 Bit address masking
#pragma config WPFP = PAGE_1 //Write Protect Program Flash Page 0
#pragma config WPEND = PAGE_0 //Start protection at page 0
#pragma config WPCFG = OFF //Write/Erase last page protect Disabled
#pragma config WPDIS = OFF //WPFP[5:0], WPEND, and WPCFG bits ignored
void vLed1( void *pvParameters );
void vLed2( void *pvParameters );
void vLed3( void *pvParameters );

void main(void)
{
TRISA=0;
xTaskCreate(vLed1,"Led 1", 400, NULL, 1, NULL );
xTaskCreate(vLed2,"Led 2", 400, NULL, 1, NULL );
xTaskCreate(vLed3,"Led 3", 400, NULL, 1, NULL );
vTaskStartScheduler();
for(;;);
}

void vLed1( void *pvParameters )
{
for(;;)
{
PORTAbits.RA0=1;
Delay10KTCYx(250);
PORTAbits.RA0=0;
Delay10KTCYx(250);
}
}
void vLed2( void *pvParameters )
{
for(;;)
{
PORTAbits.RA1=1;
Delay10KTCYx(500);
PORTAbits.RA1=0;
Delay10KTCYx(500);
}
}
void vLed3( void *pvParameters )
{
for(;;)
{
PORTAbits.RA2=1;
Delay10KTCYx(1000);
PORTAbits.RA2=0;
Delay10KTCYx(1000);
}
}


actually i am getting warning in task creation...the task creation in my program is correct r not..actually i am new to rtos...so i cant find out the problem help me...
thank u in advance...
sathish.N


[ 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