🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.asm
Article #2270

Błąd: syntax Unexpected REGDEF

#2270
From: ici
Date: Fri, 11 Jun 2010 22:01
60 lines
3281 bytes
Cześć,
Nie mam już pomysłu o co tutaj chodzi?
Pewnie kwestia jakiegoś ustawienia?
Kręcę się w kółko.
Może ktoś mi coś podpowie? Z góry dziękuję.

Kompilator C CodeVisionAVR v2.04.4a dla mikrokontrolerków AVR.
Kompiluje program bez błędów, natomiast podczas linkowania tworzy się 
plik assemblerowy z głupim błędem. Ponieważ wszystko dzieje się z 
automatu, nie mam wpływu na to co linker tworzy.
Opis błędu jak w tytule. Poprawienie błędu ręcznie nie daje rezultatu, 
bo dzieje się to podczas procesu linkowania w automacie.
A potem linker wywala błąd i po zawodach.
Kawałek tego automatycznego kodu w asm:

	RJMP 0x00
	RJMP 0x00
	RJMP 0x00
	RJMP 0x00

_0x24:
	.DB  LOW(_0x23),HIGH(_0x23)
_0x2A:			//**poniżej dłuuuga linijka generująca błąd
	.DB LOW(_LCD_Init),HIGH(_LCD_Init),LOW(_LCD_Cls),HIGH(_LCD_Cls),
             __ LOW(_LCD_XY),HIGH(_LCD_XY),LOW(_LCD_Char),HIGH(_LCD_Char)
	.DB  LOW(_LCD_Text),HIGH(_LCD_Text)
_0x0:
	.DB  0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A
	.DB  0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A
	.DB  0x2A,0x0,0x20,0x53,0x74,0x61,0x72,0x74
	.DB  0x20,0x5A,0x61,0x73,0x69,0x6C,0x61,0x63
	.DB  0x7A,0x61,0x0
_0x200005F:
//*************
Chodzi o nienaturalnie długą linię .DB pod adresem 0x2A (trochę się 
połamała przy wklejaniu do tego postu, ale ciąg znaków jest w jednym 
wierszu.
	
	Ten kawałek  w assemblerze odpowiada kodowi w C:
(deklaracje procedur poniżej kody źródłowe w LCD1.H)
//****************************************************************
	void LCD_Init(void);		//Inicjowanie wyświetlacza LCD
	void LCD_Cls(void);          	//Czyść ekran
	void LCD_XY(char k, char w);    //Ustaw współrzędne kursora ko
	void LCD_Char(char znak);       //Umieszcza znak na wyświetlaczu
	void LCD_Text(char *ptext);  	//Pisz tekst na LCD wskazywany
	void LCD_Int(int i);	        //Pisz Integer
//****************************************************************

Biblioteka LCD1.H własnej roboty ale sprawdzona w starszej wersji 
Kompilatora/rów.
Próbowałem wyłączyć generację .ASM bo plik nie jest mi do niczego 
potrzebny ale nie znalazłem sposobu na odhaczenie takiej opcji.
   Ze względu na ograniczoną liczbę portów I/O kontrolera musiałem użyć 
swojej biblioteki, oryginalna operuje na 7 bitach, moja na 6, co w 
ATmega8 pozwala wykorzystać 6-cio bitowy PORTB do wyświetlacza, 
pozostałe 2 bity PB6 i PB7 zajmują wejścia dla kwarca zegarowego.

Pzdr.
ici
Technical Details
Message-ID: <huubnn$ri4$1@news.onet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mail
From: ici <ici@poczta.onet.pl>
Newsgroups: pl.comp.lang.asm
Subject: Błąd: syntax Unexpected REGDEF
Date: Sat, 12 Jun 2010 00:01:27 +0200
Organization: http://onet.pl
Lines: 60
Message-ID: <huubnn$ri4$1@news.onet.pl>
NNTP-Posting-Host: aarm220.neoplus.adsl.tpnet.pl
Mime-Version: 1.0
X-Trace: news.onet.pl 1276293687 28228 83.5.198.220 (11 Jun 2010 22:01:27 GMT)
X-Complaints-To: niusy@onet.pl
NNTP-Posting-Date: Fri, 11 Jun 2010 22:01:27 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit