Sebastian Bialy
Guest
Tue Nov 04, 2008 10:02 pm
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ąść.
Adam Dybkowski
Guest
Tue Nov 04, 2008 11:40 pm
Sebastian Bialy pisze:
Quote:
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.
[...]
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ąść.
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 (www.ethernut.de) 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).
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
Sebastian Bialy
Guest
Wed Nov 05, 2008 12:06 am
Adam Dybkowski wrote:
Quote:
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.
Bo dlaczego nie Atmel? Startowanie ARM to nie to samo co byle 51.
Producent mógłby tu wspomóc.
Quote:
Dobra rada: weź pierwszy z brzegu system operacyjny chodzący na tym
SAM'ie (7TDMI), np. Nut/OS (www.ethernut.de) 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.
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 ...
Quote:
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).
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.
Adam Dybkowski
Guest
Wed Nov 05, 2008 12:49 am
Sebastian Bialy pisze:
Quote:
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.
Bo dlaczego nie Atmel? Startowanie ARM to nie to samo co byle 51.
Producent mógłby tu wspomóc.
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.
Quote:
Dobra rada: weź pierwszy z brzegu system operacyjny chodzący na tym
SAM'ie (7TDMI), np. Nut/OS (www.ethernut.de) 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.
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.
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.
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
Sebastian Bialy
Guest
Wed Nov 05, 2008 7:18 am
Adam Dybkowski wrote:
Quote:
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.
Wręcz przeciwnie, intesuje mnie działanie otoczki jądra. PLL na
przykład. REMAP na przykład. Itd.
Quote:
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 własnie tym, zajmuje się startup.
Quote:
No to weź chociaż sprawdzony C startup. Nie dostarcza takiego chociażby
twój ulubiony kompilator C?

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).
Quote:
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.
Zakładając że nie muszę mieć semaforów, wątków itp: po co mi OS ?
Wystarczy startup załatwiający magię.
Adam Dybkowski
Guest
Wed Nov 05, 2008 9:33 pm
Sebastian Bialy pisze:
Quote:
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.
Wręcz przeciwnie, intesuje mnie działanie otoczki jądra. PLL na
przykład. REMAP na przykład. Itd.
No to polecam noty aplikacyjne Atmela plus tony przykładów "jak to robią
inni". Coś pośredniego sobie sklecisz bez problemu.
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
Sebastian Bialy
Guest
Wed Nov 05, 2008 9:45 pm
Adam Dybkowski wrote:
Quote:
No to polecam noty aplikacyjne Atmela plus tony przykładów "jak to robią
inni". Coś pośredniego sobie sklecisz bez problemu.
Właśnie niestety zaczynam taką dłubaninę na podstawie przykładów ...
Artur M. Piwko
Guest
Wed Nov 05, 2008 11:46 pm
In the darkest hour on Wed, 05 Nov 2008 21:45:10 +0100,
Sebastian Bialy <heby@poczta.onet.pl> screamed:
Quote:
No to polecam noty aplikacyjne Atmela plus tony przykładów "jak to robią
inni". Coś pośredniego sobie sklecisz bez problemu.
Właśnie niestety zaczynam taką dłubaninę na podstawie przykładów ...
Nie jesteś sam. Jestem dokładnie na tym samym etapie. Na szczęście diff
jest bardzo pomocny w tych wypadkach.
--
[ Artur M. Piwko : Pipen : AMP29-RIPE : RLU:100918 : From == Trap! : SIG:214B ]
[ 22:47:49 user up 11882 days, 10:42, 1 user, load average: 0.18, 0.89, 0.68 ]
Dial 911. Make a cop come.