|ARM Technical Support Knowledge Articles|
Applies to: C51 C Compiler
Information in this article applies to:
We have a legacy application written for the IAR 8051 Compiler and are converting it to work with the Keil tools. We started by compiling with the Keil compiler but we get the following warning:
Warning 245: unknown #pragma, line ignored
for the following pragmas:
#pragma function=non_banked void func1(char *); void func2(char *); void func3(char *); #pragma function=default
These pragmas are used by the IAR compiler to specify that the functions listed are or are not code banking functions. The Keil tools use a completely different method of specifying functions that are code banked. Therefore, the function pragma is not supported by the Keil tools.
In Keil, a non_banked function is a function located in the common area. Functions that are banked are located in a code bank (bank 0, bank 1, bank2, ...). You may specify the code bank (or common area) for your programs on a module-by-module basis or on a function-by-function basis or both.
To resolve the issue you have, remove the #pragma function statements from your program. Then, use either the linker command-line options or the project options in uVision to specify which modules/functions reside in which banks.
Article last edited on: 2004-04-24 14:49:24
Did you find this article helpful? Yes No
How can we improve this article?