Skocz do zawartości

Programowanie STM32 Cortex-M0 na rejestrach - plik nagłówkowy


Pomocna odpowiedź

Witam,

Mam płytkę STM32 Discovery z uC z rdzeniem Cortex-M0. Chciałbym programować bezpośrednio na rejestrach - jak w AVR'ach. Wiem że istnieje biblioteka od STM'a, ale po przeczytaniu różnych opinii na jej temat oraz mając na uwadze, że chcę dobrze zrozumieć mikrokontroler, chcę operować bezpośrednio na rejestrach.

I teraz pytanie. W AVR'ach do projektu dołączałem plik nagłówkowy avr/io i śmigało a tutaj, skąd wziąć taki plik? Jak czytam to wszędzie jest opis biblioteki SPL, natomiast nie ma nic o takowym pliku nagłówkowym. Czy jest on już w danym środowisku, np. Keil , CooCox czy go trzeba pobrać skądś?

I drugie pytanie. Czy rdzenie M3 i M0 są na tyle podobne, że jeśli w książce o M3 poczytam o Timerach, UART, DMA, to będę mógł zastosować tę wiedzę w M0?

Pozdrawiam:)

Link to post
Share on other sites

A więc jak masz ściągniętego Coocoxa wystarczy tylko, że zaznaczysz w zakładce repository pliki cmsis'a (ptaszki przy cmsis core i cmsis boot) a do programu dodasz pliki nagłówkowe :

Co do drugiego pytania - te procki są podobne, ale nie takie same. Zobaczysz różnicę w rejestrach, ale samo działanie raczej nie będzie inne.

Jak dobrze rozumiem Ty będziesz działał wstecz tzn czytał o M3 a programował M0, musisz więc tylko dobrze porównywać dokumentacje tych procków, bo czasami M3 mogą mieć coś więcej od M0.

Dobre jest to, że mikrokontrolery w takich samych obudowach mają takie same pinouty niezależnie od rodziny (M0/M3/M4).

  • Lubię! 1
Link to post
Share on other sites

Działa, dzięki, piwko dla Ciebie 🙂

Czyli tak podsumowując, te dwa pliki nagłówkowe są gołymi, podstawowymi plikami od ARM, bez udziwnień funkcjami i za pomocą tego programuje się zawsze, w firmach również, chcąc operować na rejestrach?

Nasunęło mi się pytanie. Rozumiem, że plik startup jest zawsze automatycznie dodawany do projektu i dzięki niemu nie muszę się martwić o inicjalizację mikrokontrolera, tak? On włącza mi też zegary dla peryferiów czy to muszę zrobić sam?

A jakbym nie dołączyć cmsis boot, to bym musiał go sam inicjalizować, a poza tym by było ok?

Link to post
Share on other sites
Czyli tak podsumowując, te dwa pliki nagłówkowe są gołymi, podstawowymi plikami od ARM, bez udziwnień funkcjami i za pomocą tego programuje się zawsze, w firmach również, chcąc operować na rejestrach?

Tak, można to tak nazwać 😉

Co do drugiego pytania, musisz sobie to dobrze zobaczyć. Jak ja programowałem M0/M3 pamiętam że pisałem własną inicjalizację, za to z kolei w M4 po stworzeniu nowego projektu w pliku main.c miałem komentarz dodany automatycznie, że przed wejściem w main wywołuje się funkcja SystemInit().

Także niestety nie powiem Ci na pewno jak to jest, najlepiej napisz proste miganie diodami, raz bez SystemInit() w main'e, a raz z.

Tą funkcję, znajdującą się w system_stm32fxxx, możesz sobie modyfikować, robić tzw overclocking itp.

pozdrawiam

Link to post
Share on other sites
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.