MPLAB och P16F688.INC problem.

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
opatagio
Inlägg: 236
Blev medlem: 24 maj 2005, 20:19:21

MPLAB och P16F688.INC problem.

Inlägg av opatagio »

Tänkte testa en liten 16F688 och gjorde ett enkelt program. Dock så klagar MPLAB på P16F688.INC.

Felmeddelandet lyder:

Kod: Markera allt

Error[111]   D:\PROJECTS\UART\16F688\P16F688.INC 182 : Missing symbol
Halting build on first failure as requested.
Och hänvisar till rad 182 där följande finns.

Kod: Markera allt

;----- WDTCON Bits --------------------------------------------------------

WDTPS3                       EQU     H'0004'
WDTPS2                       EQU     H'0003'
WDTPS1                       EQU     H'0002'
WDTPS0                       EQU     H'0001'
SWDTEN                       EQU     H'0000'
Någon som vet om det är bug i MPLAB, fel i P16F688.INC eller har något att göra med min kod:

Kod: Markera allt

	LIST	P=16F688
	#include <P16F688.INC>
	errorlevel -207, -302, -306		
				; -207 = Label not in column
				; -302 = Ensure bank bits
				; -306 = Crossing page-boundry.

	__CONFIG _INTOSC & _WDT_OFF & _CPD_OFF & _CP_OFF & _PWRTE_ON & _MCLRE_ON
Resten av koden är bara definitioner.

Tack på förhand.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Jag får inte felet.
Visa en *komplett* kodsnutt som har samma fel.
opatagio
Inlägg: 236
Blev medlem: 24 maj 2005, 20:19:21

Inlägg av opatagio »

Här kommer hela snutten

Kod: Markera allt

	LIST	P=16F688
	#include <P16F688.INC>
	errorlevel -207, -302, -306		; -207 = Label not in column
									; -302 = Ensure bank bits
									; -306 = Crossing page-boundry.

	__CONFIG _INTOSC & _WDT_OFF & _CPD_OFF & _CP_OFF & _PWRTE_ON & _MCLRE_ON



; Memory allocation
Mem 	EQU		h'20'
d1		EQU		Mem+1
d2		EQU		Mem+2
d3		EQU		Mem+3

; Definitions

#define		LED1		PORTC,2
	

; init goes here

; start-up and isr goes here


; main goes here

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

Inlägg av sodjan »

Nop, jag får inte felet (MPLAB 7.62).
opatagio
Inlägg: 236
Blev medlem: 24 maj 2005, 20:19:21

Inlägg av opatagio »

Ok, jag sitter med MPLAB 7.60. Ska testa och installera 7.62 och se om det hjälper.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Kollade just release notes för MPLAB 7.62, där står bl.a
(MPASM-134/MPASM-137)
Projects do not build on PIC16F688. An error is displayed which points to line number 182 in PIC16F688.inc.
Så där har du svaret... :-)

Innan du lägger in hela 7.62 så skulle du kunna prova att bara ta INC filen.
Om du mailar mig så kommer min P16F688.INC (från 7.62) i retur...
opatagio
Inlägg: 236
Blev medlem: 24 maj 2005, 20:19:21

Inlägg av opatagio »

Tackar Sodjan. Det fungerar ypperligt med den 16F688.INC jag fick av dig. Drar därmed slutsatsen att den medföljande INC-filen från MPLAB 7.60 var felaktig. Men nu lirar allt som det ska.
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg av squiz3r »

Hej, Inte riktigt rätt rubrik, men jag tycker att det är onödigt att göra en ny tråd och du verkar ha löst ditt problem, så jag tar och lånar din tråd lite :)

När jag ska bygga ett projekt i MPLAB till en PIC16F628A så får jag ett felmedelande från "MPLINK 4.05, LINKER" som lyder såhär:

Error - section '.org_0' can not fit the absolute section '.org_0' start = 0x00000000, Errors: 1

Jag har ingen aning om vad det betyder, så är det någon som vet vad som menas? Det är lite svårt att felsöka utan att ha en aning om var man ska göra det, men "org_0" då menar de kanske den raden i programmet där jag har skrivit "org 0x0000" ??

Mvh. Daniel ANderson
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Ja, det *betyder* exakt vad det står... :-)

Vad det *beror* på ser man om man ser koden...
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Ett snabbt tips som sodjan gav mig rörande relokerbar kod: På adress 0x000 och 0x004 är det enbart plats för 1 instruktion, denna bör vara "goto xxx", detta kan mycket lätt ge detta fel.
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg av squiz3r »

"det *betyder* exakt vad det står.."
hmm.. :S Tämligen obegripligt för mig :)

"sektion '.org_0' passar inte den ovillkorliga sektionen '.org_0' start = 0x00000000, Fel: 1"
Hmm.. Så blir det om man föröker översätta en mening som man inte förstår :)

Ska jag lägga upp hela koden eller bara en liten bit??

Mvh.

Edit: Icecap: hmm.. Ska ta en titt på det!
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg av squiz3r »

Nu byatde jag ut "org 0x0000" till:

reset_vector CODE 0x000
goto start1
start2 CODE
start1

Och då fungerade det, men jag hänger inte riktigt med på vad de gör :)

Mvh.
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

I INC-filen står det att adress 0x000 och 0x004 bara kan ha plats till 1 instruktion. Detta säkrar att man inte gör en snudd på adress 0x000 som fyller upp för 0x004 och därmed kan ställa till det ordentligt för interrupten.

Jag fattade inte heller varför men efter lite funderande var det ganska självklart faktisk.
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg av squiz3r »

Jag har inte riktigt förstått vad 0x0000 och 0x0004 är för nått,

0x0004 är väll där den ska starta när ett interupt kommer, och 0x0000 är var den ska starta när PIC'en startas om (eller startas), stämmer det?? :)
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Exakt.
Skriv svar