SW006012 Microchip Technology, SW006012 Datasheet - Page 24

C COMPILER FOR DSPIC30F FAMILY

SW006012

Manufacturer Part Number
SW006012
Description
C COMPILER FOR DSPIC30F FAMILY
Manufacturer
Microchip Technology
Type
MPLAB® C30 Compilerr
Series
PIC24 & DsPICr
Datasheets

Specifications of SW006012

Supported Families
PIC24, DsPIC30F And DsPIC33F
Core Architecture
PIC, DsPIC
Kit Contents
Software And Docs
Mcu Supported Families
PIC24 MCUs And DsPIC DSCs
Tool Type
Compiler
Processor Series
PIC24, dsPIC
Lead Free Status / RoHS Status
Not applicable / Not applicable
For Use With/related Products
dsPIC30F
Lead Free Status / Rohs Status
Lead free / RoHS Compliant
MPLAB
DS51284F-page 18
®
C30 User’s Guide
transparent_union
This attribute, attached to a function parameter which is a union, means that the
corresponding argument may have the type of any union member, but the argument is
passed as if its type were that of the first union member. The argument is passed to the
function using the calling conventions of the first member of the transparent union, not
the calling conventions of the union itself. All members of the union must have the same
machine representation; this is necessary for this argument passing to work properly.
unordered
The unordered attribute indicates that the placement of this variable may move
relative to other variables within the current C source file.
const int
unused
This attribute, attached to a variable, means that the variable is meant to be possibly
unused. MPLAB C30 will not produce an unused variable warning for this variable.
weak
The weak attribute causes the declaration to be emitted as a weak symbol. A weak
symbol may be superseded by a global definition. When weak is applied to a reference
to an external symbol, the symbol is not required for linking. For example:
extern int
int foo() {
}
In the above program, if s is not defined by some other module, the program will still
link but s will not be given an address. The conditional verifies that s has been defined
(and returns its value if it has). Otherwise '0' is returned. There are many uses for this
feature, mostly to provide generic code that can link with an optional library.
if (&s) return s;
return 0; /* possibly some other value */
dma - PIC24H MCUs, dsPIC33F DSCs only
Allocate the variable in DMA memory. Variables in DMA memory can be
accessed using ordinary C statements and by the DMA peripheral.
__
can be used to find the correct offset for configuring the DMA peripheral.
psv
Allocate the variable in program space, in a section designated for program space
visibility window access. The linker will locate the section so that the entire vari-
able can be accessed using a single setting of the PSVPAG register. Variables in
PSV space are not managed by the compiler and can not be accessed using ordi-
nary C statements. They must be explicitly accessed by the programmer, usually
using table-access inline assembly instructions, or using the program space
visibility window.
eedata - dsPIC30F DSCs only
Allocate the variable in EEData space. Variables in EEData space can not be
accessed using ordinary C statements. They must be explicitly accessed by the
programmer, usually using table-access inline assembly instructions, or using
the program space visibility window.
builtin_dmaoffset()
__
__
attribute
attribute
__
__
((unordered)) i;
((
(see “16-Bit Language Tools Libraries”, DS51456)
__
weak
__
)) s;
© 2007 Microchip Technology Inc.

Related parts for SW006012