IntFlash - unsupported pointer - MC9S08QE128CLK.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IntFlash - unsupported pointer - MC9S08QE128CLK.

2,091 Views
SofTA
Contributor I
Hi,
 
I am using CW 6.1 standard version and and MC9S08QE128CLK. I ran out of memory with memory model set at small. So, I am trying moving my code to banked memory model. I encountered a problem with intFlash bean at my first attempt (I have not copied my code to the new project yet but just setting up beans). When I tried compiling my project I got an error message as "C18005: Unsupported pointer qualifier combination for function pointer". The actual errored line in intFlash.h is "typedef void (* __near PFnCmdInRam)(byte);". Since I think I am not supposed to modify the native code in bean files, what can I do to solve this problem? Thanks a lot in advance.
 
SofTA
 
 
 
 
Added p/n to subject.


Message Edited by NLFSJ on 2008-10-17 02:01 PM
Labels (1)
0 Kudos
Reply
3 Replies

762 Views
Navidad
Contributor III
Hi SofTA,

Conceptually, a function pointer may have two of these non-ansi qualifiers. One is for specifying the calling convention while the other one specifies the size of the pointer itself. For HC08 the compiler does not support any combination of qualifiers, but only far/far and near/near (qualifiers may be explicit or derived from the memory model). An example (quoting from the compiler release notes):
      int __far (* __far f)(void)
           ^          ^
      calling         pointer
      convention      size
The declaration above describes a far function pointer (i.e. a far pointer to a far function).

So if you write typedef void __near (* __near PFnCmdInRam)(byte); the compiler will not issue the error anymore. But as the code comes from a bean you should also open a service request for it to get fixed.

Navidad
0 Kudos
Reply

762 Views
SofTA
Contributor I
Hi Navidad,
 
Thank you very much for the help. The error message is gone after I did the modification as you suggested. I will send a service request to freescale.
 
You have a great day!
 
SofTA
0 Kudos
Reply

762 Views
ProcessorExpert
Senior Contributor III
This problem fill be fixed in the next release of Processor Expert. For now as workaround is possible to use these steps:

1.) Configure the IntFlash bean
2.) Generate code of the IntFlash bean
3.) Make the project (F7)
4.) Add the  " __near" sufix into row where is the error located
typedef void __near (* __near PFnCmdInRam)(byte);
5.) Disable the code generation of the IntFlash bean through the "Don´t Write Generated Bean Modules" from the "Code generation" menu command in the pop-up menu of the IntFlash bean.
6.) Make the project (F7) - the error disappear

In case of change in the IntFlash bean - Enable the code generation through the "Always Write Generated Bean Modules" menu command and go to step 1.)

best regards
Vojtech Filip
Processor Expert Support Team
UNIS
0 Kudos
Reply