include files
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
include files
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?
include files
Hello guys, here is a "newbee", hope you can help me.
I just installed IAR SystemsEmbedded Workbench 5.0 EvaluationARM and mean to compile code for Atmel AT91SAM7X.
I download an open FreeRTOSV4.1.3FreeRTOSDemouIP_Demo_IAR_ARM7rtosdemo
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 FilesIAR SystemsEmbedded Workbench 5.0 EvaluationARMinc
Do I need to rename/copy this file to match the file name in FreeRTOSConfig.h:
#include <intrinsic.h>
Thanx for advice.
include files
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.
Regards.
include files
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.
J
include files
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.
include files
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.3FreeRTOSDemouIP_Demo_IAR_ARM7SrcIARCstartup.s79 34
Error[116]: Section type missing FreeRTOSV4.1.3FreeRTOSDemouIP_Demo_IAR_ARM7SrcIARCstartup.s79 35
Error[40]: Bad instruction FreeRTOSV4.1.3FreeRTOSDemouIP_Demo_IAR_ARM7SrcIARCstartup.s79 41
Warning[24]: ENDMOD directive is ignored (only one module is allowed) FreeRTOSV4.1.3FreeRTOSDemouIP_Demo_IAR_ARM7SrcIARCstartup.s79 220
It seems it doesn’t like these lines:
RSEG INTRAMSTART_REMAP
RSEG INTRAMEND_REMAP
org 0
ENDMOD
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.
include files
I went back to IAR Embedded Workbench V4.42.
Now it works fine.
Thanx Richard.
include files
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.
Regards.
include files
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?
Regards
include files
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.
http://openrtos.highintegritysystems.com/openrtos-commercial-licensing-and-support.php
Regards.