On PIC start-up file:
here is one generated by XC8 under MPLAB for a PIC12F675 project that I worked on.
; Microchip MPLAB XC8 C Compiler V1.12
; Copyright (C) 1984-2012 HI-TECH Software
; Auto-generated runtime startup code for final link stage.
;
; Compiler options:
;
; -o12f675 rmw.cof -m12f675 rmw.map --summary=default --output=default \
; main.p1 gpio.p1 --chip=12F675 -P --runtime=default --opt=default -N-1 \
; -D__DEBUG=1 -g --asmlist --errformat=Error [%n] %f; %l.%c %s \
; --msgformat=Advisory[%n] %s --warnformat=Warning [%n] %f; %l.%c %s
;
processor 12F675
global _main,start,reset_vec
fnroot _main
psect config,class=CONFIG,delta=2
psect idloc,class=IDLOC,delta=2
psect code,class=CODE,delta=2
psect powerup,class=CODE,delta=2
psect reset_vec,class=CODE,delta=2
psect maintext,class=CODE,delta=2
C set 0
Z set 2
PCL set 2
INDF set 0
OSCCAL equ 0x90
psect osccal,class=CODE,delta=2
global ___osccal_val
___osccal_val:
;oscillator constant would be pre-programmed here
STATUS equ 3
PCLATH equ 0Ah
psect eeprom_data,class=EEDATA,delta=2,space=2
psect intentry,class=CODE,delta=2
psect functab,class=CODE,delta=2
global intlevel0,intlevel1,intlevel2, intlevel3, intlevel4, intlevel5
intlevel0:
intlevel1:
intlevel2:
intlevel3:
intlevel4:
intlevel5:
psect init,class=CODE,delta=2
psect cinit,class=CODE,delta=2
psect text,class=CODE,delta=2
psect end_init,class=CODE,delta=2
psect clrtext,class=CODE,delta=2
FSR set 4
psect strings,class=CODE,delta=2,reloc=256
psect reset_vec
reset_vec:
; No powerup routine
; No interrupt routine
psect init
start
psect end_init
bsf STATUS,5 ;select bank 1
fcall ___osccal_val
movwf 0x90 ^ 0x80
bcf STATUS,5 ;select bank 0
global start_initialization
ljmp start_initialization ;jump to C runtime clear & initialization
; Config register CONFIG @ 0x2007
; Brown-out Detect Enable bit
; BOREN = OFF, BOD disabled
; Data Code Protection bit
; CPD = OFF, Data memory code protection is disabled
; Oscillator Selection bits
; FOSC = INTRCIO, INTOSC oscillator: I/O function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN
; GP3/MCLR pin function select
; MCLRE = OFF, GP3/MCLR pin function is digital I/O, MCLR internally tied to VDD
; Watchdog Timer Enable bit
; WDTE = OFF, WDT disabled
; Code Protection bit
; CP = OFF, Program Memory code protection is disabled
; Power-Up Timer Enable bit
; PWRTE = OFF, PWRT disabled
psect config
org 0x0
dw 0x3194
psect bank0,class=BANK0,space=1
psect bank1,class=BANK1,space=1
psect ram,class=RAM,space=1
psect abs1,class=ABS1,space=1
psect common,class=COMMON,space=1
psect sfr0,class=SFR0,space=1
psect sfr1,class=SFR1,space=1
end start
[/quote]