-
1. Data: 2018-08-21 08:29:36
Temat: AT91SAM7/9 i Linux
Od: Atlantis <m...@w...pl>
Jakiś czas temu, przy okazji zakupów w TME albo AVT kupiłem kilka sztuk
mikrkontrolerów Atmela z rodzin SAM7 i SAM9. Lata ich popularności już
minęły, ja skupiłem się głównie na PIC32 i STM32. Niemniej nie wykluczam
możliwości, że kiedyś je do czegoś wykorzystam.
Z tego względu rozglądam się za narzędziami, które pozwoliłyby mi
przygotować i skompilować kod na MCU z tych rodzin. Jednak z tego co
widzę, to:
1) Atmel Studio nie obsługuje w ogóle tych mikrokontrolerów. To znaczy
nie obsługiwało, gdy sprawdzałem ostatnio, jakieś dwa lata temu. Kreator
nowego projektu pozwalał wybrać z listy tylko nowsze układy z rodziny
AT91SAM3. Potem Atmel został przejęty przez Microchipa. Ja zresztą
ostatecznie przeniosłem się na Linuksa i przestałem korzystać z tego
programu. Nowy MPLABX potrafi ponoć obsługiwać AVR-y (na razie funkcja w
wersji beta) jednak nie sądzę, żeby dodali stare ARM-y.
2) Na stronie Microchipa znajduje się co prawda ARM 8-bit [sic!]
Toolchain 6.3.1, jednak z tego co widzę jest to sam kompilator
(arm-none-eabi). Nie widzę tam żadnych plików nagłówkowych, które
definiowałyby poszczególne modele mikrokontrolerów.
Czy ktoś mógłby mnie odesłać do jakiejś sprawdzonej instrukcji i
narzędzi, pozwalających przygotować projekt dla tych MCU? Na dobrą
sprawę nie potrzebuję jakiegoś rozbudowanego IDE. Wystarczy zestaw
narzędzi, pozwalających obsłużyć to z poziomu Make. Byle tylko był to
kompletny zestaw...
-
2. Data: 2018-08-21 19:11:37
Temat: Re: AT91SAM7/9 i Linux
Od: Jakub Rakus <s...@o...pl>
W dniu 21.08.2018 o 08:29, Atlantis pisze:
> Czy ktoś mógłby mnie odesłać do jakiejś sprawdzonej instrukcji i
> narzędzi, pozwalających przygotować projekt dla tych MCU? Na dobrą
> sprawę nie potrzebuję jakiegoś rozbudowanego IDE. Wystarczy zestaw
> narzędzi, pozwalających obsłużyć to z poziomu Make. Byle tylko był to
> kompletny zestaw...
>
Może to? https://www.triplespark.net/elec/pdev/arm/at91sam7.h
tml
--
Pozdrawiam
Jakub Rakus
-
3. Data: 2018-08-21 22:01:00
Temat: Re: AT91SAM7/9 i Linux
Od: Sebastian Biały <h...@p...onet.pl>
On 8/21/2018 8:29 AM, Atlantis wrote:
> Czy ktoś mógłby mnie odesłać do jakiejś sprawdzonej instrukcji i
> narzędzi, pozwalających przygotować projekt dla tych MCU?
W przypadku SAM7 w minimalistycznej formie potrzebujesz:
a) gcc dla ARMa
b) skrypt linkera pod konkretny procesor
c) startup pod konkretny procesor
d) OpenOCD + jakiś programator JTAG
i można zaczynać. Jeśli potrzebujesz exampla typu "miganie diodami" to
takowy mogę podesłać, to jest bare metal, żadnych środowisk tylko
wołanie gcc i linkera.
Ogóle w przypadku rodziny SAM7 natkniesz się na kilka pułapek:
a) Atmel miał gdzieś jakość, wszystkie pliki typu inkludy czy startup w
kazdym examplu sa inne, inaczej poprzerabiane, z błedami i wylewającym
się dziadostwem, zawsze inaczej przerobione. Warto wiedzieć że np. jakiś
kretyn wyciął ze skryptu linkera sekcję odpowiadającą za tablice
wirtualne obiektów czym uczynił moje debugowanie ciekawszym... Oczekuj
więc sciągania ze śmietnika o nazwie internet kolejnych z trudem
działajacych definicji rejestrów w ktorych zawsze czegoś brakuje i
startupów które zawsze zapominają czegoś zainicjować i makefiles których
nikt nie rozumie wliczając autora, ale wszedzie są podpisy Atmela.
b) SAM7 szybciej wykonuje kod z ram niż z flash. Czasem trzeba funkcje
przepisać do ramu.
c) GPIO jest bardzo wolne jak na te częstotliwości taktowania, byle AVR
jest szybszy.
d) procesor jest dośc delikatny, przynajmniej sprawia wrażenie
resetującego się z byle powodu.
e) ceny SAM7 w pewnym momencie osiągnęły przebieg piły. Efektem czego
nikt ich nie uzywa bo troche niefajnie zastać nastepnego dnia ten sam
procesor co wczoraj tylko 5x droższy.
Zrobilem dośc przywoity system uC na SAM7, napisalem częściowo wlasne
GUI, filesystem, makefiles itd itp. Jak już masz skrypty linkera i
jesteś w stanie pisać abstrakcyjnie kod to nie ma znaczenia czy to sam7
czy stm32 czy target PC.
Natomiast SAM9 nie dotykałem za dużo. To już pamięc wirtualna i procesor
bardzo skomplikowany. Nie warto, atemala wszak już nie ma a SAM9 na
rynku nie jest chyba nawet szumem.
-
4. Data: 2018-08-22 07:48:36
Temat: Re: AT91SAM7/9 i Linux
Od: Atlantis <m...@w...pl>
On 21.08.2018 19:11, Jakub Rakus wrote:
> Może to? https://www.triplespark.net/elec/pdev/arm/at91sam7.h
tml
Dzięki. Wygląda na to, że przykład kompiluje się po podmienieniu w
Makefile nazw narzędzi na te z paczki ściągniętej ze strony Microchipa.
Czyli dobrze rozumiem, że Atmel w tamtym okresie nie rozpowszechniał
żadnego zintegrowanego środowiska, a ten toolchain to tak naprawdę tylko
kompilator? Nie ma w nim żadnych plików nagłówkowych z definicjami
portów/peryferiów procesora i trzeba je sobie ręcznie dodać do projektu,
tak samo jak plik crt0.s?
Mam nadzieję, że znajduje się tam przynajmniej standardowa biblioteka C? ;)
-
5. Data: 2018-08-22 08:08:35
Temat: Re: AT91SAM7/9 i Linux
Od: Atlantis <m...@w...pl>
On 21.08.2018 22:01, Sebastian Biały wrote:
> W przypadku SAM7 w minimalistycznej formie potrzebujesz:
>
> a) gcc dla ARMa
> b) skrypt linkera pod konkretny procesor
> c) startup pod konkretny procesor
> d) OpenOCD + jakiś programator JTAG
GCC udało mi się ściągnąć ze strony Microchipa. Programator JTAG
posiadam. Pozostałe zasoby można gdzieś jeszcze znaleźć w Sieci?
Najlepiej cały zbiór, żeby mieć pod ręką kompletny zestaw, dla
wszystkich przedstawicieli tej rodziny mikrokontrolerów...
> i można zaczynać. Jeśli potrzebujesz exampla typu "miganie diodami" to
> takowy mogę podesłać, to jest bare metal, żadnych środowisk tylko
> wołanie gcc i linkera.
Link do takiego przykładu podesłał już przedmówca. Kompiluje się po
podmienieniu nazw narzędzi, najwyraźniej konwencja zmieniła się w
ostatnich wersjach, wydanych przez Atmela jeszcze przed przejęciem przez
Microchipa.
> Ogóle w przypadku rodziny SAM7 natkniesz się na kilka pułapek:
Tak naprawdę nie mam zamiaru robić na tym jakichś poważnych projektów.
Mam od tego PIC32 i STM32. Niemniej nie wykluczam, ze pewnego dnia
najdzie mnie ochota, żeby złożyć na tym jakąś prostą płytkę i
poeksperymentować, tworząc jakiś projekt. Tak samo jak kiedyś zabrałem
się za eksperymenty z 8051, a obecnie z 6502 - w celu tylko i wyłącznie
edukacyjnym.
Chciałbym jednak zgromadzić potrzebne narzędzia, zanim okaże się, że
zniknęły z Sieci, a nikt nie ma kopii zapasowej, bo przecież "wszystko
jest w Internecie".
> Zrobilem dośc przywoity system uC na SAM7, napisalem częściowo wlasne
> GUI, filesystem, makefiles itd itp. Jak już masz skrypty linkera i
> jesteś w stanie pisać abstrakcyjnie kod to nie ma znaczenia czy to sam7
> czy stm32 czy target PC.
No i właśnie dzięki eksperymentom z bardziej "egzotycznymi"
architekturami powoli dochodzę do tego etapu. ;)
-
6. Data: 2018-08-22 13:59:54
Temat: Re: AT91SAM7/9 i Linux
Od: Atlantis <m...@w...pl>
Jeszcze jedno pytanie przyszło mi do głowy.
Mianowicie jak wygląda kwestia obsługi bardziej skomplikowanych
peryferiów? Taki UART czy SPI można obsłużyć dysponując podstawowymi
definicjami rejestrów. Ale co z USB? Tutaj potrzebny jest jakiś
sterownik/stos. Atmel opublikował odpowiednie biblioteki?
-
7. Data: 2018-08-22 14:56:11
Temat: Re: AT91SAM7/9 i Linux
Od: wujekSamoZło <c...@g...com>
On Wednesday, August 22, 2018 at 1:59:55 PM UTC+2, Atlantis wrote:
> Jeszcze jedno pytanie przyszło mi do głowy.
> Mianowicie jak wygląda kwestia obsługi bardziej skomplikowanych
> peryferiów? Taki UART czy SPI można obsłużyć dysponując podstawowymi
> definicjami rejestrów. Ale co z USB? Tutaj potrzebny jest jakiś
> sterownik/stos. Atmel opublikował odpowiednie biblioteki?
Advanced Software Framework (ASF)
http://www.microchip.com/mplab/avr-support/advanced-
software-framework
-
8. Data: 2018-08-22 15:05:02
Temat: Re: AT91SAM7/9 i Linux
Od: wujekSamoZło <c...@g...com>
On Wednesday, August 22, 2018 at 8:08:38 AM UTC+2, Atlantis wrote:
> On 21.08.2018 22:01, Sebastian Biały wrote:
>
> > Zrobilem dośc przywoity system uC na SAM7, napisalem częściowo wlasne
> > GUI, filesystem, makefiles itd itp. Jak już masz skrypty linkera i
> > jesteś w stanie pisać abstrakcyjnie kod to nie ma znaczenia czy to sam7
> > czy stm32 czy target PC.
>
> No i właśnie dzięki eksperymentom z bardziej "egzotycznymi"
> architekturami powoli dochodzę do tego etapu. ;)
IMHO pora wybrać jakiś RTOS i jego się trzymać. Przeciętny RTOS zapewnia i dirvery i
warstwę abstrakcji tzw. HAL-a.
-
9. Data: 2018-08-22 22:02:08
Temat: Re: AT91SAM7/9 i Linux
Od: Jakub Rakus <s...@o...pl>
W dniu 22.08.2018 o 07:48, Atlantis pisze:
>
> Dzięki. Wygląda na to, że przykład kompiluje się po podmienieniu w
> Makefile nazw narzędzi na te z paczki ściągniętej ze strony Microchipa.
> Czyli dobrze rozumiem, że Atmel w tamtym okresie nie rozpowszechniał
> żadnego zintegrowanego środowiska, a ten toolchain to tak naprawdę tylko
> kompilator? Nie ma w nim żadnych plików nagłówkowych z definicjami
> portów/peryferiów procesora i trzeba je sobie ręcznie dodać do projektu,
> tak samo jak plik crt0.s?
>
> Mam nadzieję, że znajduje się tam przynajmniej standardowa biblioteka C? ;)
>
Tak jak inni Ci już zdążyli odpowiedzieć wsparcie producenta dla tych
procków było (i jest) właściwie żadne. To takie były pierwsze (a może
raczej ostatnie?) podrygi Atmela z 32-bitowymi ARMami. Do czego to
doprowadziło to wszyscy widzimy.
PS: Czasem lepiej sprawdzić najpierw dostępność narzędzi niż kupować co
wydaje się tanie ;)
--
Pozdrawiam
Jakub Rakus
-
10. Data: 2018-08-22 22:22:00
Temat: Re: AT91SAM7/9 i Linux
Od: Sebastian Biały <h...@p...onet.pl>
On 8/22/2018 3:05 PM, wujekSamoZło wrote:
> IMHO pora wybrać jakiś RTOS i jego się trzymać.
Na sam7 popedzalem FreeRTOSa. Miał nawet port więc niewiele trzeba robić.