Re: Blad w DSP56K (Motorola), Re: Atmel...



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "JS" <jar0sz_at_nospam_polbox.com>
Subject: Re: Blad w DSP56K (Motorola), Re: Atmel...
Date: Tue, 15 Feb 2000 16:36:16 GMT


Dziekuje za obszerna odpowiedz !

W DSP56K jest cos takiego jak "pipeline", tj. rozpoczynanie kolejnej


Koniecznosc pamietania o efektach ubocznych potokowego przetwarzania
instrukcji istotnie utrudnia "reczne" programowanie. Jesli asm nie potrafi
wyszukac miejsc potencjalnych konfliktów, to jest jeszcze gorzej. A gdy C
generuje kod z takimi pulapkami, to :(

O ile C generuje pelny kod wyjsciowy w asm, to mozna spróbowac napisac
filtr - analizator skladniowy asma, który wykrywa instrukcje bitowe i
dodaje po nich NOPy.

--
Jaroslaw Szynal




Poprzedni Następny
Wiadomość
Spis treści
From: Grzegorz Redlarski <gred_at_nospam_amg.gda.pl>
Subject: Re: Blad w DSP56K (Motorola), Re: Atmel...
Date: Wed, 16 Feb 2000 14:53:13 +0100


On Tue, 15 Feb 2000 16:36:16 GMT, "JS" <jar0sz_at_nospam_polbox.com> wrote:

Koniecznosc pamietania o efektach ubocznych potokowego przetwarzania
instrukcji istotnie utrudnia "reczne" programowanie. Jesli asm nie potrafi
wyszukac miejsc potencjalnych konfliktów, to jest jeszcze gorzej. A gdy C
generuje kod z takimi pulapkami, to :(

C prawdopodobnie nie korzysta z takich konstrukcji, o ktorej pisalem.
Z pewnych wzgledow korzystne bylo dla mnie zrobienie bufora
cyklicznego indeksowanego przez R, a nie przez N i tak to wyszlo.

O ile C generuje pelny kod wyjsciowy w asm, to mozna spróbowac napisac
filtr - analizator skladniowy asma, który wykrywa instrukcje bitowe i
dodaje po nich NOPy.

J.w. - prawdopodobnie C tego nie generuje. Ma za to inne bledy.
Nieprawidlowo wylicza wyrazenia na liczbach long. I to tak wrednie, ze
blad byl rzedu 10% i nie rzucal sie w oczy. Chodzi o wyrazenia stale
liczone na etapie kompilacji.
Byly tez jakies bledy przy konwersjach long<->int ale w tej chwili nie
pamietam dokladnie w jakich sytuacjach. Przykladowo przy zamianie
int->long, dopisywany starszy bajt byl zupelnie przypadkowy. Chyba
bylo to wewnatrz wyrazen, a nie przy zwyklym podstawianiu ale to juz
nie jestem pewien. Jakies notatki mam w domu.

gr