‘configMAX_SYSCALL_INTERRUPT_PRIORITY’ undeclared (first use in this function) portmacro.h
Posted by
freertos90 on April 14, 2017
Hello;
My portmacro.h file include this function
~~~
Description Resource Path Location Type
‘configMAXSYSCALLINTERRUPT_PRIORITY’ undeclared (first use in this function) portmacro.h /osiloskop/src line 139 C/C++ Problem
~~~
On the other hand my freertosconfig.h does not include this function FreertosConfig.h is include this:
~~~
define configMAXAPICALLINTERRUPTPRIORITY 18
define configCPUCLOCKHZ 100000000UL
define configUSEPORTOPTIMISEDTASKSELECTION 1
define configUSETICKLESSIDLE 0
define configTICKRATEHZ ( ( TickType_t ) 1000 )
define configPERIPHERALCLOCKHZ ( 33333000UL )
define configUSE_PREEMPTION 1
define configUSEIDLEHOOK 1
define configUSETICKHOOK 1
define configMAX_PRIORITIES ( 7 )
define configMINIMALSTACKSIZE ( ( unsigned short ) 200 )
define configTOTALHEAPSIZE ( 80 * 1024 )
define configMAXTASKNAME_LEN ( 10 )
define configUSETRACEFACILITY 1
define configUSE16BIT_TICKS 0
define configIDLESHOULDYIELD 1
define configUSE_MUTEXES 1
define configQUEUEREGISTRYSIZE 8
define configCHECKFORSTACK_OVERFLOW 2
define configUSERECURSIVEMUTEXES 1
define configUSEMALLOCFAILED_HOOK 1
define configUSEAPPLICATIONTASK_TAG 0
define configUSECOUNTINGSEMAPHORES 1
define configUSEQUEUESETS 1
/* Co-routine definitions. */
define configUSECOROUTINES 0
define configMAXCOROUTINE_PRIORITIES ( 2 )
/* Software timer definitions. */
define configUSE_TIMERS 1
define configTIMERTASKPRIORITY ( configMAX_PRIORITIES – 1 )
define configTIMERQUEUELENGTH 5
define configTIMERTASKSTACKDEPTH ( configMINIMALSTACK_SIZE * 2 )
/* Set the following definitions to 1 to include the API function, or zero
to exclude the API function. */
define INCLUDE_vTaskPrioritySet 1
define INCLUDE_uxTaskPriorityGet 1
define INCLUDE_vTaskDelete 1
define INCLUDE_vTaskCleanUpResources 1
define INCLUDE_vTaskSuspend 1
define INCLUDE_vTaskDelayUntil 1
define INCLUDE_vTaskDelay 1
define INCLUDE_xTimerPendFunctionCall 1
define INCLUDE_eTaskGetState 1
/* This demo makes use of one or more example stats formatting functions. These
format the raw data provided by the uxTaskGetSystemState() function in to human
readable ASCII form. See the notes in the implementation of vTaskList() within
FreeRTOS/Source/tasks.c for limitations. */
define configUSESTATSFORMATTING_FUNCTIONS 1
/* The private watchdog is used to generate run time stats. */
include “xscuwdt.h”
extern XScuWdt xWatchDogInstance;
extern void vInitialiseTimerForRunTimeStats( void );
define configGENERATERUNTIME_STATS 1
define portCONFIGURETIMERFORRUNTIME_STATS() vInitialiseTimerForRunTimeStats()
define portGETRUNTIMECOUNTERVALUE() ( ( 0xffffffffUL – XScuWdtReadReg( xWatchDogInstance.Config.BaseAddr, XSCUWDTCOUNTER_OFFSET ) ) >> 1 )
/* The size of the global output buffer that is available for use when there
are multiple command interpreters running at once (for example, one on a UART
and one on TCP/IP). This is done to prevent an output buffer being defined by
each implementation – which would waste RAM. In this case, there is only one
command interpreter running. */
define configCOMMANDINTMAXOUTPUTSIZE 2096
/* Normal assert() semantics without relying on the provision of an assert.h
header file. */
void vAssertCalled( const char * pcFile, unsigned long ulLine );
define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( FILE, LINE );
/* If configTASKRETURNADDRESS is not defined then a task that attempts to
return from its implementing function will end up in a “task exit error”
function – which contains a call to configASSERT(). However this can give GCC
some problems when it tries to unwind the stack, as the exit error function has
nothing to return to. To avoid this define configTASKRETURNADDRESS to 0. */
define configTASKRETURNADDRESS NULL
/****** Hardware specific settings. *******************************************/
/*
* The application must provide a function that configures a peripheral to
* create the FreeRTOS tick interrupt, then define configSETUPTICKINTERRUPT()
* in FreeRTOSConfig.h to call the function. This file contains a function
* that is suitable for use on the Zynq MPU. FreeRTOSTickHandler() must
* be installed as the peripheral’s interrupt handler.
*/
void vConfigureTickInterrupt( void );
define configSETUPTICKINTERRUPT() vConfigureTickInterrupt()
void vClearTickInterrupt( void );
define configCLEARTICKINTERRUPT() vClearTickInterrupt()
/* The following constant describe the hardware, and are correct for the
Zynq MPU. */
define configINTERRUPTCONTROLLERBASEADDRESS ( XPARPS7SCUGIC0DISTBASEADDR )
define configINTERRUPTCONTROLLERCPUINTERFACEOFFSET ( -0xf00 )
define configUNIQUEINTERRUPTPRIORITIES 32
/****** Network configuration settings – only used when the lwIP example is
built. See the page that documents this demo on the http://www.FreeRTOS.org
website for more information. ***********************************************/
/* The priority for the task that unblocked by the MAC interrupt to process
received packets. */
define configMACINPUTTASKPRIORITY ( configMAXPRIORITIES – 1 )
/* The priority of the task that runs the lwIP stack. */
define configLWIPTASKPRIORITY ( configMAX_PRIORITIES – 2 )
/* The priority of the task that uses lwIP sockets to provide a simple command
line interface. */
define configCLITASKPRIORITY ( tskIDLE_PRIORITY )
/* MAC address configuration. */
define configMAC_ADDR0 0x00
define configMAC_ADDR1 0x13
define configMAC_ADDR2 0x14
define configMAC_ADDR3 0x15
define configMAC_ADDR4 0x15
define configMAC_ADDR5 0x16
/* IP address configuration. */
define configIP_ADDR0 172
define configIP_ADDR1 25
define configIP_ADDR2 218
define configIP_ADDR3 200
/* Netmask configuration. */
define configNET_MASK0 255
define configNET_MASK1 255
define configNET_MASK2 255
define configNET_MASK3 0
endif /* FREERTOSCONFIGH */
~~~
so I have this error:
My file version are same (8.2.1)
‘configMAX_SYSCALL_INTERRUPT_PRIORITY’ undeclared (first use in this function) portmacro.h
Posted by
rtel on April 15, 2017
It is right then, it is not defined in your FreeRTOSConfig.h.
Any macro that is prefixed ‘config’ is a user editable macro that can be
placed in the FreeRTOSConfig.h. If a macro is missing from
FreeRTOSConfig.h then in many cases it will be defaulted, but not in the
case of configMAXSYSCALLINTERRUPT_PRIORITY because it is very much
dependent on the chip you are using.
Did you try Googling configMAXSYSCALLINTERRUPTPRIORITY? That is
normally the first thing to be done. When I try this the first link I
get is this: http://www.freertos.org/a00110.html then searching this
page for configMAXSYSCALLINTERRUPTPRIORITY I find this information:
http://www.freertos.org/a00110.html#kernel_priority