Article View: pl.comp.lang.asm
Article #2271Re: Błąd: syntax Unexpected REGDEF
From: Bogdan (bogdro)
Date: Tue, 15 Jun 2010 16:03
Date: Tue, 15 Jun 2010 16:03
79 lines
4222 bytes
4222 bytes
W dniu 12.06.2010 00:01, ici pisze:
> 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.
[...]
Zauważyłeś, że _LCD_Text wylądowało już w kolejnej linijce?
Widocznie, na przykład, tylko 4 funkcje zostaną umieszczone w tej
samej linii w pliku asemblerowym. Nie mam najbledszego pojęcia o
programowaniu AVRów ani o tym kompilatorze C, ale może spróbuj
przerobić plik C/H tak, aby następowały po sobie co najwyżej 3 (czy
tyle, ile będzie trzeba) deklaracje funkcji. Tak, aby było np.
.DB LOW(_LCD_Init),HIGH(_LCD_Init),LOW(_LCD_Cls),HIGH(_LCD_Cls),
__ LOW(_LCD_XY),HIGH(_LCD_XY)
[tutaj np. jakieś zmienne czy cokolwiek]
.DB LOW(_LCD_Char),HIGH(_LCD_Char)
[tutaj reszta]
Swoją drogą, te "__" z przodu wyglądają dziwnie. Masz to w kodzie,
czy do wiadomości się wkleiło samo? Może to to jest problem?
--
Pozdrawiam/Regards - Bogdan (GNU/Linux & FreeDOS)
Kurs asemblera x86 (DOS, GNU/Linux):http://rudy.mif.pg.gda.pl/~bogdro
Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
www.JabberPL.org www.TorProject.org Soft (EN): miniurl.pl/bogdro-soft
Technical Details
Message-ID:
<hv8899$7uf$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<huubnn$ri4$1@news.onet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: "Bogdan (bogdro)" <bogdan@poczta.gazeta.pl> Newsgroups: pl.comp.lang.asm Subject: Re: Błąd: syntax Unexpected REGDEF Date: Tue, 15 Jun 2010 18:03:53 +0200 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 79 Message-ID: <hv8899$7uf$1@inews.gazeta.pl> References: <huubnn$ri4$1@news.onet.pl> NNTP-Posting-Host: rudy.mif.pg.gda.pl Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1276617834 8143 153.19.42.16 (15 Jun 2010 16:03:54 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Tue, 15 Jun 2010 16:03:54 +0000 (UTC) X-User: bog.d In-Reply-To: <huubnn$ri4$1@news.onet.pl> User-Agent: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit