2009-05-21 13 views
5

Szukam narzędzia do debugowania sprzętu, które działa na gołym procesorze (x86), w trybie chronionym 32-bitowym i bez systemu operacyjnego. Ze względu na ograniczenia czasowe nie będę pisać tego narzędzia w całości w pakiecie x86. Lubię język Ada (ale jestem z nim niedoświadczony) i pomyślałem, że interesujące może być użycie Ada zamiast C dla tego projektu.Ada i złożenie

Za pomocą C można używać wbudowanego zespołu lub wywoływać podprogramy napisane w zespole, aby uzyskać dostęp do BIOS-u na podstawowe rzeczy, takie jak wejście/wyjście klawiatury lub wyświetlanie tekstu na ekranie. Czy Ada ma podobną zdolność? A jeśli tak, to czy ktoś wie o jakichkolwiek zasobach lub samouczkach do wywoływania metod montażu i łączenia z nimi?

+2

Dlaczego nalegasz, aby nie używać systemu operacyjnego. Dostęp do całego sprzętu (ekranu, klawiatury itp.) Jest trudny, więc niech system operacyjny sobie z tym poradzi. Linux jest bezpłatny ;-) – lothar

+0

Dlaczego nalegam? Cóż, debuguję sprzęt, a nie piszę Linux-a! : p Potrzebuję zrobić resetowanie magistrali PCI i modyfikować rejestry konfiguracji, i. Nie zrobiłem nic z niskopoziomową pracą Linuksa, ale w świecie Windows błąd parzystości (PERR #), błędy systemu (SERR #) i reset magistrali PCI (RESET #) są katastrofalnymi zdarzeniami. –

Odpowiedz

5

Możesz użyć wbudowanego kodu zespołu w Ada. Musisz użyć pakietu System.Machine_Code, który zapewnia (przeciążoną) funkcję Asm.

+0

Dzięki! To powinno wystarczyć! –

2

Podręcznik podręcznika GNAT zawiera sekcję o numerze Machine Code Insertions, a chociaż jest to wersja GNAT, powinno być możliwe ogólne zorientowanie się, jak to działa, nawet jeśli używasz innego kompilatora.

+0

Dzięki, będę trzymać się GNAT, ponieważ chcę używać darmowych narzędzi. W końcu jest to projekt hobby. –