Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 16 mar 2025, o 08:41


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 18 sie 2015, o 12:41 
Offline
Nowy

Dołączył(a): 12 lip 2015
Posty: 6
Pomógł: 0

Witajcie.

Chciałbym zapytać czy istnieje możliwość wgrania dwóch różnych firmware do pamięci mikrokontrolera jednocześnie, tzn pierwszy standardowo, drugi np. w połowie pamięci mikrokontrolera.
W zależności od tego czy jest jakaś zworka zwarta czy nie - uruchamia się odpowiedni firmware. Procek to: Attiny85. oczywiście programy odpowiednio małe (zmieszczą się dwa).

Jeżeli jest to możliwe to byłbym wdzięczny za krótką instrukcję jak to zrobić.

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 sie 2015, o 12:55 
Offline
Użytkownik

Dołączył(a): 25 lut 2015
Posty: 252
Lokalizacja: Lublin
Pomógł: 23

Rozwiązaniem byłoby coś w stylu zmodyfikowanego bootloadera.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 sie 2015, o 13:01 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Nie wiem czy nie piszę glupot w tym momencie ale powiedzmy że masz funkcję main. W niej masz petle while a w niej wywoływane są dwie inne funkcje, powiedzmy main1 i main2. W każdej standardowa inicjalizacja i pętla while(1). W momencie gdy jakaś zwora zostanie zwolniona: if(costam==0) np. dajesz return i powracasz do głównego main. Następna w kolejności jest funkcja main2. Gdy np zewrzesz zworke czyli if(costam==1) dajesz znów return i z niej wyjdziesz, wracasz z powrotem do pierwszej bo jest to wszystko w głównym mainie i while i tyle. Ciałka funkcji mogą być w innych plikach przecież.



Ostatnio edytowano 18 sie 2015, o 13:03 przez Nefarious19, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 sie 2015, o 13:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Radził bym Ci raczej napisać wszystko w jednym programie w którym aktywne bedą tylko wybrane funkcje dla pierwszej opcji i jakieś tam inne dla drugiej. Jak wyglądają te programy?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 sie 2015, o 13:13 
Offline
Użytkownik

Dołączył(a): 25 lut 2015
Posty: 252
Lokalizacja: Lublin
Pomógł: 23

No tak, muszę się zgodzić z kolegami - rozwiązanie z programem ładującym to przerost formy nad treścią.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 sie 2015, o 13:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 mar 2015
Posty: 310
Pomógł: 18

Czy wielozadaniowość można wykonać w AVR - pytasz? Tak myślę , że system operacyjny w C to funkcja main i może być tylko jedna. To main uruchamia(inicjalizuje) zdarzenia - nawet wybudzenie procesora. Tak myślę!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 sie 2015, o 13:57 
Offline
Nowy

Dołączył(a): 12 lip 2015
Posty: 6
Pomógł: 0

jerrylu napisał(a):
No tak, muszę się zgodzić z kolegami - rozwiązanie z programem ładującym to przerost formy nad treścią.


chcę, aby procek działał jako dwa różne urządzenia widziane różnie przez kompa. używam V-USB.
Jak będą dwa firmware to nie będę musiał przerabiać całej biblioteki V-USB (duuużo dyrektyw preprocesora, różne ustawienia dla dwóch programów itd).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 sie 2015, o 15:32 
Offline
Użytkownik

Dołączył(a): 16 cze 2013
Posty: 81
Lokalizacja: Łódź
Pomógł: 3

Programator AVR-Doper, korzysta z rozwiązania o jakim mówisz:
1. założona zworka = urządzenie w trybie HID ( i tak właśnie widziane przez komputer )
2. zdjęta zworka = urzadzenie w trybie wirtualnego portu COM ( i komp tak to widzi )

Tutaj więcej info o tym: https://www.obdev.at/products/vusb/avrdoper.html
a tu masz źródła firmware napisane w C:
Tutaj: https://www.obdev.at/downloads/vusb/AVR ... -12-08.zip
Musisz tylko to przeanalizować i zrobić podobnie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 sie 2015, o 15:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 sie 2013
Posty: 795
Lokalizacja: Poznań
Pomógł: 59

Znalazłem w swoich zbiorach coś takiego. Może troszkę naprowadzi:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 sie 2015, o 09:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 mar 2015
Posty: 310
Pomógł: 18

Tak przy porannej kawie zajrzałem do BB(kawa daleko od książki)!
Najpiękniej by było powołać funkcję menu i programowo lub sprzętowo zmieniać funkcjonalność układu.
Przećwiczyłem komendy wyjścia z funkcji(break, return, continue). Tylko po wyjściu z funkcji zewnętrznych do main, wstydliwą komendą goto mogłem przenieść się do etykiety na początku main - taki częściowy reset programowy funkcji main, by zaczęło się odnowa (takie jump).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO