logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

C i procesory ARM - od czego zacząć naukę programowania?

sokmarcin 20 Lis 2007 20:22 3287 6
REKLAMA
  • #1 4502599
    sokmarcin
    Poziom 20  
    Posty: 460
    Pomógł: 7
    Ocena: 235
    Witam

    Potrzebuję nauczyć się programowania ARMow w C. I teraz pytanie: od czego zacząć? :)
    Wcześniej programowałem uP AVR w Bascomie, zabawa niewykle prosta i przyjemna, jednak potrzebuje czegoś mocniejszego niż AVR. Dla procesorów ARm nie ma chyba takiego fajnego odpowiednika?

    Jako że z C nie miałem nigdy doczynienia, na początek chciałbym spróbować napisac coś na PC. Jaki soft polecacie? (w miare prosty ;) )
    Co do uP to przymierzam się do serii 7 firmy ST. WinArm nada się do tego? może Keil?

    pozdrawiam
    Marcin
  • REKLAMA
  • REKLAMA
  • #3 4505172
    sokmarcin
    Poziom 20  
    Posty: 460
    Pomógł: 7
    Ocena: 235
    Dzieki Richter, troche mi to rozjaśniło sprawe, jednak dalej nie wiem czym to programować.
    z tego co sie doczytałem, to musze wgrac jakiegoś bootloadera, zanim zaczne transmisje danych (?)
    Programował ktoś uP STR7xx? Jak to wyglada w praktyce? (tj jake programy, sprzęt)
  • REKLAMA
  • Pomocny post
    #4 4506437
    Richter
    Poziom 31  
    Posty: 2147
    Pomógł: 84
    Ocena: 165
    Najlepiej gdybyś zakupił sobie archiwalne wydania elektroniki praktycznej tam bylo wszysko o ARM bardzo przystępnie napisane.
  • Pomocny post
    #5 4509506
    piotrkopec
    Poziom 17  
    Posty: 189
    Pomógł: 24
    Ocena: 2
    Jeśli już zdecydowałeś o wyborze mikrokontrolera i jest to STR7 to nie mogę Ci pomóć( nie miałem z nimi styczności ale koledzy z działu 'mikrokontrolery' na pewno z nimi pracowali).
    Osobiście polecam rodzinę AT91SAM7 od ATMELa. Procesory przyjazne, odporne na pomyłki :), dużo materiałów( w tym sporo postów na 'mikrokontrolery').
    W praktyce wygląda to tak że instalujesz środowisko( komercyjne Keila, Rowleya lub otwarte WinArm, GNUARM, Yagartoo), Piszesz program w 'C', klikasz 'build' i masz skompilowany program. Teraz musisz go załadować do procka. Z AT91SAM7 masz możliwość zrobienia tego przez USB, 'wbudowany' w procek bootloader i program na hoście. Inną( chyba lepszą) opcją jest zakupienie( 50-300zł) lub zrobienie swojego( 5-10 zł) interfejsu JTAG i ładowanie( oraz debugowanie) progamu przy jego pomocy. Do tego służą darmowe H-JTAG, otwarte OpenOCD i może jeszcze kilka( czasami dostępne bezpośrednio z interfejsu graficznego środowiska).
    Pisania w 'C' najlepiej uczyć się na PC bo będzie to prostrze i szybsze( bez konieczności ładowania do mikrokontrolera i zgadywania co się dzieje).
    Obsługa portów, wysyłanie danych, mierzenie czasu w ARMach to kwestia czytania/pisania do odpowiednich rejestrów procka( dostępna również jako funkcje biblioteczne, w zamkniętej formie, dobrze opisane, przejrzyste).Kod programu/algorytmu pisany na PC praktycznie bez zmian można przenieść na ARMa( dokładając jedynie specyficzne sposoby komunikacji).
    Do wystartowania potrzebne Ci jest napisanie( przepisanie) i zrozumienie kilku tutoriali w 'C' na PC, skompletowanie sprzętu i już jesteś w ARMach.
    Później zaznajomienie się z dokumentacją procesora( data sheet, nazwy rejestrów, kolejność wykonywania czynności).
    W rozwiązywaniu problemów pomoże Ci dział 'mikrokontrolery'. Możesz również pisać na maila czy pw, podzielę się uwagami.
    Pozdrawiam
    kac
  • #6 4525025
    sokmarcin
    Poziom 20  
    Posty: 460
    Pomógł: 7
    Ocena: 235
    Witam,

    dziękuje za bardzo rzeczową odpowiedź.

    Środowisko otwarte tak jak WinARM to narazie nie dla mnie, średnio się moge w tym połapać. Za to Keil wydaje sie dosyć sympatycznym programem i chyba z tym zaczne. (jeszcze tylko nie wiem czy 16k kodu to jest duzo czy malo ;) )
    Mam jeszcze wątpiwości co do tego bootloadera (wogole nie zabardzo wiem co to jest) i interfejsu JTAG, ale myśle, że to już nie ten dział ;)

    A na ST zdecydowałem się ze względu na wbudowane peryferia, które oszczędzą mi kłopotu w innych częsciach układu.

    pozdrawiam
    Marcin
  • REKLAMA
  • #7 4528863
    arturt134
    Poziom 27  
    Posty: 792
    Pomógł: 76
    Ocena: 24
    Ja ze swojej strony radziłbym rzucić okiem na AVR32. Bardzo wydajny procesor (ma więcej MIPS/MHz niż ARM). Poza tym ma kupę fajnych peryferiów i darmowy kompilator, do ściągnięcia ze strony Atmela. Procesory są wysyłane z zaprogramowanym bootloaderem; programowanie poprzez USB.

Podsumowanie tematu

LABEL_AI_GENERATED
Rozpoczynając naukę programowania mikrokontrolerów ARM w języku C, warto zacząć od prostych programów na PC, aby opanować podstawy języka. Do programowania mikrokontrolerów ARM, zwłaszcza serii STR7 firmy ST, można wykorzystać środowiska takie jak Keil, które jest polecane dla początkujących ze względu na przyjazny interfejs. Alternatywnie dostępne są środowiska otwarte, np. WinARM, GNUARM czy Yagarto, jednak mogą być trudniejsze w obsłudze. Programowanie mikrokontrolerów ARM wymaga wgrania programu do pamięci układu, co można zrobić przez bootloader lub interfejs JTAG, który umożliwia także debugowanie. Bootloader to program wbudowany w mikrokontroler, umożliwiający ładowanie kodu przez USB lub inne interfejsy bez konieczności stosowania dodatkowego sprzętu. Warto rozważyć także mikrokontrolery AT91SAM7 firmy Atmel, które mają wbudowany bootloader i szerokie wsparcie materiałowe. Dla osób szukających alternatywy, procesory AVR32 oferują wysoką wydajność i darmowy kompilator, a także programowanie przez USB z wbudowanym bootloaderem. Dodatkowo polecane są archiwalne wydania Elektroniki Praktycznej, które zawierają przystępne materiały o ARM. Wybór mikrokontrolera zależy od potrzeb dotyczących peryferiów i łatwości programowania.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA