"ORG" problem PIC

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
DragonOrb
Inlägg: 381
Blev medlem: 16 oktober 2003, 21:57:19
Ort: Flen

"ORG" problem PIC

Inlägg av DragonOrb »

Hej

Skulle böjra skriva lite till en PIC18F4620 men får problem vid komplieringen.
Det jag fasnar på är "ORG" kommandon.
I tidigare processorer har jag bara skrivit org 0 i början av koden, men nu på 4620:n blir jag galen.

Såhär ser koden ut.

Kod: Markera allt

	list	p=18F4620			
	#include <P18F4620.inc> 	

Här är det massa konfigbitar
...........................................
	
        org 0000h		; Reset
	goto start
	org 0008h		; High Priority Interrupt Vector
	goto start
	org 0018h		; Low Priority Interupt Vector
	goto start
	org 0020h               ; Här börjar programet 
	goto start
start
	clrf PORTB               ; PortB = Utgångar
	clrf TRISB 
	clrf PORTD
	clrf TRISD          ; PortD = Utgångar

main
       här kommer hela programet, där den initerar en lcd och lite annat.


      goto main
      end

Jag ska inte använda interrupts just nu så dom spelar ingen roll.
Här är felmedelandet.

Kod: Markera allt

MPLINK 4.02, Linker
Copyright (c) 2006 Microchip Technology Inc.
Error - section '.org_3' can not fit the absolute section. Section '.org_3' start=0x00000020, length=0x000000b6
Errors    : 1

BUILD FAILED: Mon Jun 05 14:02:45 2006
Har läst igenom Mpasm Rev J , Databladet till processorn och jag blir galen.
DragonOrb
Inlägg: 381
Blev medlem: 16 oktober 2003, 21:57:19
Ort: Flen

Inlägg av DragonOrb »

Har fortsatt testa men blir galen.

Med bara

Kod: Markera allt

org 0x0020
goto start
så får jag detta felmedelande

Kod: Markera allt

MPLINK 4.02, Linker
Copyright (c) 2006 Microchip Technology Inc.
Error - section '.org_0' can not fit the absolute section. Section '.org_0' start=0x00000020, length=0x000000b6
Errors    : 1
Vad menas med org_0 och org_3 ?
Jag blir galen :/ , vart är Sodjan när han behövs :wink:
rehnmaak
Inlägg: 2204
Blev medlem: 13 december 2005, 01:43:41

Inlägg av rehnmaak »

Du kör med länkscript eller hur?

Kolla vad sektionerna heter, tex STARTUP för adress 0 och PROG för adress 0x20...

sedan skriver du CODE istället för ORG tex:

STARTUP CODE
goto main
nop
nop
nop
goto service

PROG CODE

main
goto main

service
nop
nop
retfie
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

ORG används inte i 'relocatabe code'
Läs på om CODE (m.m).

Följande byggs utan fel (testat i MPLAB 7.30) :

Kod: Markera allt

   list   p=18F4620         
   #include <P18F4620.inc>    

; Här är det massa konfigbitar
; ...........................................
   
reset_seg    CODE 0000h      ; Reset
             goto start
             
ISR_HP       CODE 0008h      ; High Priority Interrupt Vector
             goto start

ISR_LP       CODE 0018h      ; Low Priority Interupt Vector
             goto start
             
start_Seg    CODE
start
             clrf PORTB               ; PortB = Utgångar
             clrf TRISB
             clrf PORTD
             clrf TRISD          ; PortD = Utgångar

main

;       här kommer hela programet, där den initerar en lcd och lite annat.

      goto main
      end
EDIT : Studera ävem MAP filen, den förklarar en hel del av vad som pågår
"under the hood"...
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> tex STARTUP för adress 0 och PROG för adress 0x20...

Man skulle kunna lägga till något sådant själv,
men det finns inget där som heter så per default.
DragonOrb
Inlägg: 381
Blev medlem: 16 oktober 2003, 21:57:19
Ort: Flen

Inlägg av DragonOrb »

Tack för hjälpen, funkar fint nu..
Skriv svar