Quality RTOS & Embedded Software

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


include files

Posted by Nobody/Anonymous on April 21, 2006
I seem to have some difficulty getting the include files all in order. I am trying to use armcc and don't know where <intrinsic.h> (included in "FreeRTOSConfig.h" (included in "FreeRTOS.h" (included in croutine.c))) is. Can someone explain what/where this <intrinsic.h> is? Thanks

RE: include files

Posted by Nobody/Anonymous on April 21, 2006
intrinsic.h is compiler specific file that implements things like, for example, enabling and disabling interrupts.

Are you using the Rowley code as a base?

RE: include files

Posted by Christer on January 2, 2008
Hello guys, here is a "newbee", hope you can help me.

I just installed IAR Systems\Embedded Workbench 5.0 Evaluation\ARM\ and mean to compile code for Atmel AT91SAM7X.
I download an open FreeRTOSV4.1.3\FreeRTOS\Demo\uIP_Demo_IAR_ARM7\rtosdemo
When compiling, IAR compiler complains:
Fatal Error[Pe005]: could not open source file "intrinsic.h"

There is a file called intrinsics.h (with an s) in directory C:\Program Files\IAR Systems\Embedded Workbench 5.0 Evaluation\ARM\inc
Do I need to rename/copy this file to match the file name in FreeRTOSConfig.h:
#include <intrinsic.h>

Thanx for advice.

RE: include files

Posted by Richard on January 2, 2008
Please note the first two lines of the documentation page for the SAM7X/IAR demo:

"Note: The FreeRTOS.org demo application projects will not be updated to use the IAR Embedded Workbench version 5.x until such time that this version also supports the Cortex M3. Until that time, to use the projects without having to make any modification it is necessary to use Embedded Workbench V4.42 - this was released at the same time as V5.x and is still a supported product."

I suspect this is your problem.


RE: include files

Posted by joconnor37 on January 2, 2008
Your question "What is intrinsic.h" has been answered. This file is very essential - you MUST find it. I apologise - I am not familiar with your processor or IDE setup, I work with FreeRTOS port for Microchip PC MCUs - But I would find intrinsic.h or intrinsics.h, rename if necessary so that name in include statement in code is the same, then put it into the default directory location, where your IDE should have been instructed to look for *.h include files. Alternatively, after finding and ensuring the name is correct, copy the file into your present IDE project directory and use include "intrinsic(s).h" in the code.

You have a very simple and very common problem - files simply "lost" amidst the catacombs of Windows OS! Do not despair, you will get past this impediment.


RE: include files

Posted by Dave on January 2, 2008
IAR version 5.11 does also support the cortex now. Im just looking at the migration guide ftp://ftp.iar.se/WWWfiles/arm/Guides/omarm_2.pdf in which is this

The intrinsic functions __enable_interrupt and __disable_interrupt are
no longer available as intrinsic functions; however, they are available as library
functions, which means they are backwards compatible on source code level.

So it looks like the intrinsic include is no longer needed provided you include the library that has the equivalent functions.

RE: include files

Posted by Christer on January 3, 2008
Thanx for prompt reply, guys!

If I copy intrinsics.h to intrinsic.h, C-compilation seems to work, but I still get these assembler errors:

Error[116]: Section type missing FreeRTOSV4.1.3\FreeRTOS\Demo\uIP_Demo_IAR_ARM7\SrcIAR\Cstartup.s79 34
Error[116]: Section type missing FreeRTOSV4.1.3\FreeRTOS\Demo\uIP_Demo_IAR_ARM7\SrcIAR\Cstartup.s79 35
Error[40]: Bad instruction FreeRTOSV4.1.3\FreeRTOS\Demo\uIP_Demo_IAR_ARM7\SrcIAR\Cstartup.s79 41
Warning[24]: ENDMOD directive is ignored (only one module is allowed) FreeRTOSV4.1.3\FreeRTOS\Demo\uIP_Demo_IAR_ARM7\SrcIAR\Cstartup.s79 220

It seems it doesn't like these lines:

Read in ARMĀ® IAR Embedded Workbench Migration Guide
Migrating from version 4.x to version 5.x

1 Modules
In version 5.x, neither the assembler nor the compiler can make a distinction between
program and library modules. If you want a module to be treated as a library module,
thus conditionally linked, you must place the module in a library.
This means that if you have used either the LIBRARY or the MODULE directive in your
existing assembler source code, these will no longer have any effect.
In version 4.x, you could define one or several assembler modules in each file. In version
5.x, there can only be one module per file. This means that you have to restructure your
files accordingly.
To read more about modular programming and the new syntax of the module directives.
see the ARMĀ® IAR Assembler Reference Guide.

So - what do you think I should do?
Should I uninstall 5.0 and go for the old 4.x compiler version or are there simple hacks to fix this as well?
Thanx in advance.

RE: include files

Posted by Christer on January 3, 2008
I went back to IAR Embedded Workbench V4.42.
Now it works fine.
Thanx Richard.

RE: include files

Posted by Richard on January 3, 2008
Yes - best to stick with V4.42 for now. I didn't realise there was so much to do to move to 5.0. I will start migrating the projects across but my work load is heavy at the moment (which is a good thing ;o) so it might take a while before they are all ready.


include files + upgrading to OpenRTOS

Posted by Christer on January 3, 2008
Thank you for very fast response, Richard.
Maybe I will migrate to ver 5.0 when you are done to get longer future support from IAR.
I am planning on upgrading from FreeRTOS to OpenRTOS.
I think the support is excellent for FreeRTOS, do I have something to gain by upgrading early in the project?

RE: include files + upgrading to OpenRTOS

Posted by Richard on January 3, 2008
In addition to the commercial license, OpenRTOS gives you the option of commercial development and support. If this is going to make your development easier of faster then its worth signing up for earlier (for example if you wanted to subcontract a port to IAR V5 to get it earlier then I might be able to provide the same). Otherwise, if your product requires the commercial license only, then you can wait until you are ready to ship - don't forget to do it though :o)

Here is a sneak preview of the new WITTENSTEIN OpenRTOS site. It is still being updated so might be a bit weird at the moment.


[ Back to the top ]    [ About FreeRTOS ]    [ Privacy ]    [ Sitemap ]    [ ]

Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.

Latest News

NXP tweet showing LPC5500 (ARMv8-M Cortex-M33) running FreeRTOS.

Version 10.1.1 of the FreeRTOS kernel is available for immediate download. MIT licensed.

View a recording of the "OTA Update Security and Reliability" webinar, presented by TI and AWS.


FreeRTOS and other embedded software careers at AWS.

FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

Espressif ESP32

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

Xilinx Microblaze and Zynq partner