SW500010 Microchip Technology, SW500010 Datasheet - Page 85

HI-TECH C PRO FOR PIC10/12/16

SW500010

Manufacturer Part Number
SW500010
Description
HI-TECH C PRO FOR PIC10/12/16
Manufacturer
Microchip Technology
Type
Compilerr
Series
PIC10/12/16r
Datasheets

Specifications of SW500010

Supported Families
PIC10, PIC12, PIC16
Core Architecture
PIC
Software Edition
Professional
Kit Contents
Software And Docs
Mcu Supported Families
PIC10/12/16
Tool Type
Compiler
Lead Free Status / RoHS Status
Not applicable / Not applicable
For Use With/related Products
PIC10, PIC12, PIC14, PIC16, PIC16E
Lead Free Status / Rohs Status
Lead free / RoHS Compliant
Other names
019P
778-1006
778-1006
C Language Features
Each data pointer will be allocated one of the above classifications after preliminary scans of the
source code. There is no mechanism by which the programmer can specify the style of pointer
required (other than by the address assignments to the pointer).
A 16-bit pointer capable of accessing the entire data memory space;
An 8-bit pointer capable of accessing up to 256 bytes of program space data;
A 16-bit pointer capable of accessing up to 64 kbytes of program space data;
A 16-bit pointer capable of accessing the entire data space memory and up to 64 kbytes of
program space data;
T
D
following code;
void main(void) {
int i, * ip;
ip = &i;
}
The code generator allocates the variable i to bank 0. The code generator notes that the
pointer ip only points to an object in one memory bank, so this pointer is made an 8-bit
wide data pointer.
As the program is developed, other variables are defined and allocated space in the
other memory banks. The pointer, ip, is also assigned the address of another object
that has been placed in bank 2. When the program is next compiled, the pointer ip
will automatically become a 16-bit pointer to all of the data space, and the code used to
initialize and dereference the pointer will change accordingly. This takes place without
any modification to the source code.
UT RIAL
YNAMIC POINTER SIZES
– Address is an offset into either bank 0 (extending into bank 1) or bank 2 (extending into
– Address is an index into a lookup table;
– Address is an offset into psect strings;
– The most significant bit indicates the memory space of the target: 1 indicates an address
bank 3)
of an object in the data space; 0 indicates the address of an object in the program space;
A program in the early stages of development contains the
Supported Data Types and Variables
85

Related parts for SW500010