Startup dla S91SAM7

Witam.

Na sieci można znaleźć ogromną ilość przykładów dla AT91SAM7 w postaci plików *.c i "rozbiegówki" napisanej najczęsciej w asm + skryptu linkera.

Problem w tym, że każdy jest inny :)

Mam wrażenie że istnieje jeden z dwóch typoów robiegówki:

startup_SAM7S.S - który zazwyczaj nie posiada supportu dla przerwań hierarchicznych

i

Cstartup.S - który ma taką obsługę, ale coś podejrzanie wygladającą (to być może tylko moje majaczenie zwizane z magią rejestrów podczas obsługi przerwania).

Obydwa robią z grubsza to samo, tylko cstartup dodatkowo dodaje obsługę przerwań w przerwaniach co _bardzo_ by mi się przydało.

CStartup.S istnieje w paru wersjach, nawet wewnątrz nie ma zgodności numeracyjnej, można znaleźć go w wielu przykładach i w każdym inny :)

Pytanie:

a) czy "ktoś" to oficjalnie utrzymuje i poprawia bugi, dodaje ficzery? W środku można znaleźć często nazwiska/ksywy jakiś luźnych developerów chyba nie związanych z Atmelem.

b) ktoś posiada może takowy na licencji LGPL lub luźniejszej z obsługą hierarchicznych przerwań (przetestowaną)? Nie chce go pisać sam, nie mam doświadczeń z ARM na tyle by się za to zabrać.

Jestem troche zdezorientowany czy to w ogóle Atmel powinien dostarczać ten startup i gdzie go ewentualnie od nich wziąść.

Reply to
Sebastian Bialy
Loading thread data ...

Sebastian Bialy pisze:

Ale dlaczego Atmel? Wystarczy że wytłuszczą o co chodzi w PDFie procesora, do tego szybka lektura PDFów od firmy ARM, a reszta to już zależy bardzo konkretnie od wybranego kompilatora oraz systemu operacyjnego.

Dobra rada: weź pierwszy z brzegu system operacyjny chodzący na tym SAM'ie (7TDMI), np. Nut/OS

formatting link
albo FreeRTOS - tam wszystkie "dolne" warstwy są już zrobione i skupiasz się na samodzielnym pisaniu programu. Linux nie pójdzie, bo ten proc nie ma MMU, ale uclinux już mógłby. Albo ecos.

I tak ciesz się, że Atmel rozdaje pliki nagłówkowe z definicjami rejestrów (a nawet prostymi makrami np. do konfiguracji UARTów itp) i nie musisz ich sam przepisywać z PDFa.

BTW: W firmie mamy własny RTOS (działający również na atmelowych ARMach) i C startup przykrojony/rozwinięty dokładnie do naszych potrzeb. Powstał AFAIR na bazie softu z jakiejś noty aplikacyjnej Atmela. A obsługa przerwań kompletnie wydziwiona i nie dająca się porównać z gotowcami (w końcu to system czasu rzeczywistego).

Reply to
Adam Dybkowski

Bo dlaczego nie Atmel? Startowanie ARM to nie to samo co byle 51. Producent mógłby tu wspomóc.

Ale ja nie potrzebuje OS. W zasadzie akurat do _TEGO_ projektu zależy mi na niskopoziomowym hardware. W zasadzie wybrałem ARM tylko dlatego że są tanie i mają wystarczającą ilość RAM do tej konkretnej potrzeby. Ale podczas szukania startupa trafiłem na naście implementacji bez ładu i składu. Miałem nadzieje ja jakąs referencyjną implementację. Jeśli nie ma to pozostaje nadłubać własną na bazie istniejącej. To bardzo specyficzny projekt i naprawdę nic w nim nie ma poza dużą (jak na uC) ilością RAM i szybkością zegara ...

Nie mam wydziowionych przerwań, wręcz odwrotnie: będą dwa przerwania i pewno koło 2kB kodu czyli nic :). Ale wole zapytać zanim zacznę wynajdywać koło.

Reply to
Sebastian Bialy

Sebastian Bialy pisze:

No to szukaj raczej pomocy w firmie ARM. Po zdjęciu resetu procesorowi, Atmel nie ma już dużo do gadania bo interesuje Cię właściwie działanie samego jądra procesora. Konfiguracja przerwań, kontrolera pamięci itd. to już inna broszka i specyficzna dla danego procka - tu pomocy szukaj w notach aplikacyjnych Atmela i oczywiście w PDFie procesora.

No to weź chociaż sprawdzony C startup. Nie dostarcza takiego chociażby twój ulubiony kompilator C?

ARMy są tak pogibane (chociażby przy obsłudze przerwań), że nigdy mi do głowy nie wpadło, aby używać ich do prostych zadań samodzielnie, bez wsparcia ze strony jakiegoś systemu operacyjnego. No ale rzeczywiście się da - w końcu zanim zostanie załadowany system, to i w naszym firmowym systemie śmiga bootloader, czasem nawet długachny.

Reply to
Adam Dybkowski

Wręcz przeciwnie, intesuje mnie działanie otoczki jądra. PLL na przykład. REMAP na przykład. Itd.

No własnie tym, zajmuje się startup.

:) Mam 7 odmian i jestem pewny że jak pogrzebie znajdę 10 następnych. Mój ulubiony kompilator nic nie dostarcza, a winarm ma dość skąpy startup (brak obsługi przerwań hierarchicznych).

Zakładając że nie muszę mieć semaforów, wątków itp: po co mi OS ? Wystarczy startup załatwiający magię.

Reply to
Sebastian Bialy

Sebastian Bialy pisze:

No to polecam noty aplikacyjne Atmela plus tony przykładów "jak to robią inni". Coś pośredniego sobie sklecisz bez problemu.

Reply to
Adam Dybkowski

Właśnie niestety zaczynam taką dłubaninę na podstawie przykładów ...

Reply to
Sebastian Bialy

In the darkest hour on Wed, 05 Nov 2008 21:45:10 +0100, Sebastian Bialy snipped-for-privacy@poczta.onet.pl> screamed:

Nie jesteś sam. Jestem dokładnie na tym samym etapie. Na szczęście diff jest bardzo pomocny w tych wypadkach.

Reply to
Artur M. Piwko

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.