Citat:
vos: Odnosno, ucenjem cega se od nekog programera ocekuje da savlada STM32F4xx?
Kao i za svaki drugi - citanjem datasheetova.
Za dokumentaciju pogledaj ovdje:
http://www.st.com/internet/mcu/subclass/1521.jsp
Trebace ti ovo:
http://www.st.com/internet/com...ATURE/DATASHEET/DM00037051.pdf
ovo (za ST periferije i memoriju koju je ST nalijepio na Cortex jezgro):
http://www.st.com/internet/com...EFERENCE_MANUAL/DM00031020.pdf
i ovo (za samo Cortex jezgro i ono sto ARM isporucuje uz jezgro):
http://infocenter.arm.com/help...DI0439C_cortex_m4_r0p1_trm.pdf
... za pocetak :)
Sto se tice ove biblioteke koju ST isporucuje: daleko od toga da je ona "obavezna" da se koristi, kao i da je to jedini nacin. Ona je manje-vise napisana da optimizuje preglednost, razumljivost, kompatibilnost.... medjutim, vjerovatno nije optimizovana ni za brzinu izvrsavanja ni za velicinu koda. Ali je ok za koriscenje u nekriticnim aplikacijama gdje brzina ne igra ulogu i gdje velicina programa nije problem, zgodna je za ucenje, jer bacanjem pogleda u kod neke funkcije lako vidis sa kojih par registara nesto treba da radis, umjesto da isto to ganjas kroz 50 strana datasheet-a.
Najlakse je da bibliotecke funkcije i gotove primjere koristis kao vodic, a u datasheetu citas detalje o onome sto ti nije jasno iz funkcije.
Za sve nejasnoce i detalje - datasheet je ustav.
Biblioteka je samo dodatna pogodnost, ali potpuno neobavezujuca ni kao izvor informacija ni kao konkretna realizacija.
U programiranju mikrokontrolera - sve se svodi na to da u odredjenom trenutku nesto upises u odredjeni registar koji se nalazi na odredjenoj memorijskoj lokaciji.
Da li ces ti to uraditi ovako direktno:
Code:
(* ((volatile unsigned long *) 0x12345678)) = 0xFFFF0000; // adresu registra koji te interesuje pronadjes u datasheetu
ili ces to "zamotati" u neku finu funkciju da istu tu stvar radis ovako:
Code:
Write_word_to_PORTB(0xFFFF0000): // ova funkcija negdje u sebi sadrzi nista drugo nego ono gore
...ili ces mozda koristiti funkciju iz ST biblioteke, potpuno je svejedno, jedino sto je bitno je da ti moras znati da u taj i taj registar trebas nesto upisati.
U slucaju ST-ove biblioteke ne moras toliko da zalazis u hardverske detalje, pa je moguce koristiti periferije samo proucavanjem funkcija, bez da se zamlacujes hardverskim detaljima.
Medjutim, poziv funkcije kosta dodatno vremena (sporiji program) i dodatno mjesta (veci kod). Pa kad hoces da imas brzi program i manji kod - lupaj direktno kao u prvom primjeru, kad ti je svejedno - includuj biblioteku i vozi...
[Ovu poruku je menjao Odin D. dana 29.02.2012. u 12:51 GMT+1]