Witam. Kombinuje z różnymi bootloaderami. Do eksperymentów zachęcił mnie Atmelowski avr109. Pliki źródłowe wczytałem do Eclipse, odpowiednio poprzestawiałem parametry dla mojego procka, skomplikowałem bez żadnych błędów i wgrałem. Procek ładnie startuje a bootloader odpowiada po wpisaniu przez terminal odpowiednich komend. Samo wgrywanie programu za pośrednictwem portu szeregowego też działa lecz... program nie startuje. Domyślam się że chodzi o ustawienia odpowiedniego BLS tak jak się to robi w Mirkowym bootloaderze ale niestety nie wiem gdzie to ustawić w Eclipse. W Elektronice praktycznej piszą:
Cytuj: Przed kompilacją trzeba jeszcze zakomunikować linkierowi, aby program nie znajdował się od adresu 0, lecz od początku sekcji bootloadera. Robi się to w następujący sposób: uruchamiamy z menu Project–>Configuration Options. Ukaże się okienko, w którym należy wskazać typ procesora oraz w zakładce Custom Options dla linkiera należy dodać następującą regułę – Ttext=0x1800, gdzie 0x1800 to adres początku sekcji bootloadera, np. można go wziąć z pliku, w którym przygotowywało się konfiguracje (preprocessor.xls), na górze można znaleźć następującą linikę: Z(CODE) INTVEC, FAR_F,SWITCH, CODE=1800-1FFF. To właśnie z niej można wziąć adres. ...ale to tyczy się AVR Studio Czy wie ktoś jak to pozmieniań w Eclipse?
A teraz co chcę osiągnąć - wgrywanie z poziomu Eclipse za pomocą portu szeregowego (FTDI) lub bluetooth. Testowałem bootloadery Arduino i oczywiście działają lecz tam przykładowo dla Atmegi 32 jestem ograniczony do konkretnych częstotliwości CPU. Działa też autoreset za pomcą FTDI (na podstawie Arduino) a autoreset przez Bluetooth tez myślę ze uda mi się w podobny sposób rozwiać.
Może jest jakiś inny bootloader, który będzie mógłby emulować programator szeregowy (np STK500?) lub może da się bootloader Arduino przerobić na inne f CPU
W załączniku artykuł z EP
Pozdrawiam
Po paru godzinach...
Wiec problem udało mi się rozwiązać według obrazka.
Nie osiągnąłem jednak tego co chciałem, gdyż programator o nazwie Atmel AppNote AVR109 Boot Loader (jak na zdjeciu) nie zmienia stanu nogi DTR i RTS w FTDI232 na stan niski w trakcie programowania co chciałem wykorzystać do automatycznego resetu. Robi to chyba jedynie programator o nazwie "arduino". Pracuje na Mirkowym AVRDUDE.
|