26-10-2023, 22:59
W tej chwili mam najbardziej ograniczone zasoby czasowe - nie zakładałem, że takie 'kwiatki' mogą się pojawić
Generalnie używam produktów Microchip (PIC) i mam narzędzia. Chciałem 'pobawić' się nieco więcej z Arduino i zmontowałem jakiś układ na bazie Adafruit M0 Adalogger (bo taką akurat miałem). Tam jest SAMD21G18. Postanowiłem jednak całość zrobić na samodzielnej płytce ze względu na wymagany kształt. Kupiłem więc mniejszy procesor (łatwiejszy w montażu) o tej architekturze: SAMD21E17, (zasoby wystarczą do uruchomienia tego samego kodu) zrobiłem płytkę i chciałem wszystko wgrać ... a tu takie przygody. Wydawało mi się, że o ile Arduino może wygenerować samodzielny kod (plik HEX) to spokojnie użyję mojego PICkit4. Okazało się, że wygenerowany HEX zaczyna się od 2000H, zatem samodzielnie nie będzie w stanie obsługiwać np. przerwań. Pomyślałem OK, wgram bootloader z Arduino IDE i dolutuję złącze do USB, żeby potem wgrać sam kod programu... i dlatego dokupiłem programator, który Arduino IDE obsłuży. Niestety tak jak napisałem - to też bez sukcesu.... Z tego co się zorientowałem - coś jest źle w plikach konfiguracyjnych ustawiających obsługę ATMEL ICE z OpenOCD, ale w którym konkretnie pliku to poprawić (dopisać transport select swd) nie wiem.
W tej chwili trochę na ślepo, w celach edukacyjnych, programowałem bootloadery z użyciem PICkit4 (jak znalazłem HEXy do tej rodziny procków) i uzyskałem efekt taki, że któryś się wgrał i miga mi dioda, ale zostały poustawiane bity blokujące nadpisanie bootloadera i teraz już nic nie mogę wgrać bo wyskakuje błąd przy weryfikacji pierwszej komórki...
Instaluję Atmel Studio (Microchip Studio), bo znalazłem instrukcję jak przy jego użyciu wgrać poprawny bootloader
A i tak najlepsze byłoby wyjście, gdyby Arduino IDE rzeczywiście był w stanie wygenerować kod, który mógłby pracować zupełnie samodzielnie... (intuicyjnie wydaje mi się, że to musi dać się jakoś ustawić)
Generalnie używam produktów Microchip (PIC) i mam narzędzia. Chciałem 'pobawić' się nieco więcej z Arduino i zmontowałem jakiś układ na bazie Adafruit M0 Adalogger (bo taką akurat miałem). Tam jest SAMD21G18. Postanowiłem jednak całość zrobić na samodzielnej płytce ze względu na wymagany kształt. Kupiłem więc mniejszy procesor (łatwiejszy w montażu) o tej architekturze: SAMD21E17, (zasoby wystarczą do uruchomienia tego samego kodu) zrobiłem płytkę i chciałem wszystko wgrać ... a tu takie przygody. Wydawało mi się, że o ile Arduino może wygenerować samodzielny kod (plik HEX) to spokojnie użyję mojego PICkit4. Okazało się, że wygenerowany HEX zaczyna się od 2000H, zatem samodzielnie nie będzie w stanie obsługiwać np. przerwań. Pomyślałem OK, wgram bootloader z Arduino IDE i dolutuję złącze do USB, żeby potem wgrać sam kod programu... i dlatego dokupiłem programator, który Arduino IDE obsłuży. Niestety tak jak napisałem - to też bez sukcesu.... Z tego co się zorientowałem - coś jest źle w plikach konfiguracyjnych ustawiających obsługę ATMEL ICE z OpenOCD, ale w którym konkretnie pliku to poprawić (dopisać transport select swd) nie wiem.
W tej chwili trochę na ślepo, w celach edukacyjnych, programowałem bootloadery z użyciem PICkit4 (jak znalazłem HEXy do tej rodziny procków) i uzyskałem efekt taki, że któryś się wgrał i miga mi dioda, ale zostały poustawiane bity blokujące nadpisanie bootloadera i teraz już nic nie mogę wgrać bo wyskakuje błąd przy weryfikacji pierwszej komórki...
Instaluję Atmel Studio (Microchip Studio), bo znalazłem instrukcję jak przy jego użyciu wgrać poprawny bootloader
A i tak najlepsze byłoby wyjście, gdyby Arduino IDE rzeczywiście był w stanie wygenerować kod, który mógłby pracować zupełnie samodzielnie... (intuicyjnie wydaje mi się, że to musi dać się jakoś ustawić)