Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Ride '51 i projekt z plików asemblera (dołączanie plików)

02 Paź 2006 22:09 1080 2
  • Poziom 26  
    Witam,

    Napisałem stosunkowo długi program w asemblerze (+ jedna funkcja w C) i praca z nim (przewijanie tesktu, wyszukiwanie procedur, itp.) stawała się coraz trudniejsza, więc postanowiłem podzielić go na kilka części. Używam Ride '51 wersja 6.1.

    Każdą część (odpowiedzialną za coś) zapisałem jako osobny plik, a następnie otworzyłem je (do edycji, jako kolejne zakładki), zaś w głównym pliku wstawiłem: '#include<xxx.a51>' i '#include<xxx.c>' (xxx - nazwy plików). Pliki asm zawierają procedury, lub deklaracje zmiennych, poprzedzone słowami: CODE, DATA, itp. Program się kompiluje i działa. Problem jest przy symulacji, ponieważ symulator nie potrafi przeskoczyć do innej zakładki (innej części całego programu, projektu) i np. przy pracy krokowej podświetla bezsensowne linie z programu-pliku głównego (w którym znajdują się słowa 'include').

    Gdy kolejne pliki asm dodam jako węzły (node) to wtedy pojawiają się błędy, że fragmenty programów (z różnych węzłów) nachodzą na siebie. Tego problemu nie potrafiłem rozwiązać.

    Czy ktoś pomysł jak stworzyć taki projekt z kilku plików w asemblerze (zamiast jednego długiego), by można nad nim wygodnie pracować i działał poprawnie symulator?
  • Poziom 18  
    a te #include xxx.c wstawiasz w dobre miejsca?tzn w te gdzie ma byc poszczegolny fragment programu
  • Poziom 26  
    Nie. Wszystkie $include mam na samym początku pliku "głównego" - tak jak się to robi np. dołączając pliki nagłówkowe w języku C.

    Teraz wyjeżdżam, ale jak wrócę to spróbuję powstawiać je w odpowiednie miejsca.
    Niesądzę jednak, aby to pomogło - pliki te zawierają procedury oraz deklaracje zmiennych w pamięci RAM i Flash, zawsze są poprzedzone odpowiednio słowami CODE lub DATA, więc nie powinno mieć znaczenia w którym miejscu programu je umieszczę.

    Głównie zależy mi na łączeniu plików z programem w asemblerze.

    -----

    Mała poprawka - w asemblerze stosuje instrukcję: $include(xxx.a51), nie zaś tak jak w C z hashem na początku (tzn. #include...) - tak wymaga Ride. Czyli znak dolara na początku. W poprzednim poście jest błąd (pisałem co innego, a stosowałem co innego).
    Problem oczywiście nadal nie rozwiązany.