FreeRTOS Support Archive
The FreeRTOS support forum is used to obtain active support directly from Real
Time Engineers Ltd. In return for using our top quality software and services for
free, we request you play fair and do your bit to help others too! Sign up
to receive notifications of new support topics then help where you can.
This is a read only archive of threads posted to the FreeRTOS support forum.
The archive is updated every week, so will not always contain the very latest posts.
Use these archive pages to search previous posts. Use the Live FreeRTOS Forum
link to reply to a post, or start a new support thread.
[FreeRTOS Home] [Live FreeRTOS Forum] [FAQ] [Archive Top] [June 2012 Threads] 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
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|