ATNEL tech-forum
https://forum.atnel.pl/

MkBootLoader 3 - już jest!
https://forum.atnel.pl/topic21727.html
Strona 1 z 4

Autor:  mirekk36 [ 19 gru 2018, o 12:33 ]
Tytuł:  MkBootLoader 3 - już jest!

A teraz można obejrzeć, jeśli ktoś ma "troszkę" czasu wideo prezentację nowych możliwości oraz informacje o zasadach sprzedaży i specjalnych promocjach z okazji premiery ;)

Obrazek

przy okazji na blogu krótkie info o najnowszej aktualizacji na prośbę jednego z widzów na youtube ;)

Autor:  zubik [ 19 gru 2018, o 12:45 ]
Tytuł:  Re: MkBootLoader 3 - już (prawie) jest! tuż tuż ;)

Takie dwa pytania/uwagi. Uważam że opcja kasowania pamięci po nieudanym wgraniu to jest majstersztyk miodzio :P i nieraz się przyda(no mnie nieraz krew zalewała jak było trzeba wchodzić do sterownika żeby ręcznie resetować up)! Ale czy będzie działało polecenie AT+RST? Druga sprawa to jest to z czy kiedyś walczyłem https://forum.atnel.pl/topic21271.html a rozwiązałem tak https://forum.atnel.pl/topic21310.html Czy będzie może w przyszłości opcja żeby na czas wgrywania firmware MkBotloader przejmował port? Tak żeby nie było trzeba wyłączać bądź resetować terminala?

Autor:  mirekk36 [ 19 gru 2018, o 14:04 ]
Tytuł:  Re: MkBootLoader 3 - już (prawie) jest! tuż tuż ;)

zubik napisał(a):
i nieraz się przyda(no mnie nieraz krew zalewała jak było trzeba wchodzić do sterownika żeby ręcznie resetować up)! Ale czy będzie działało polecenie AT+RST?

Ale jak jest wgrany tylko sam BLS do procka to kompletnie nie jest ważne czy puści się AT+RST? czy inny string czy się go nie puści - BLS i tak ZAWSZE wystartuje ;) i to jest właśnie w tym fajne. Po skasowaniu wsadu ZAWSZE mamy pewność - że BLS ... MUUUUUUSI zadziałać ;)

zubik napisał(a):
Czy będzie może w przyszłości opcja żeby na czas wgrywania firmware MkBotloader przejmował port? Tak żeby nie było trzeba wyłączać bądź resetować terminala?

No tu muszę przyznać, że z taką opcją będzie ciężko

Autor:  zubik [ 19 gru 2018, o 14:14 ]
Tytuł:  Re: MkBootLoader 3 - już (prawie) jest! tuż tuż ;)

mirekk36 napisał(a):
Ale jak jest wgrany tylko sam BLS do procka to kompletnie nie jest ważne czy puści się AT+RST? czy inny string czy się go nie puści - BLS i tak ZAWSZE wystartuje i to jest właśnie w tym fajne. Po skasowaniu wsadu ZAWSZE mamy pewność - że BLS ... MUUUUUUSI zadziałać
No to elegancko, czekałem na to długo. Choć nie wiedziałem że jest mi takie coś potrzebne :D Super! Ile nerwów nerwów mnie kosztowało zrywanie komunikacji w przy wgrywaniu programu to ino ja wiem :P

------------------------ [ Dodano po: 14 minutach ]

mirekk36 napisał(a):
zubik napisał(a):
Czy będzie może w przyszłości opcja żeby na czas wgrywania firmware MkBotloader przejmował port? Tak żeby nie było trzeba wyłączać bądź resetować terminala?

No tu muszę przyznać, że z taką opcją będzie ciężko
W sumie od czasu kiedy zbudowałem bramkę problemu niema sprawuje się doskonale.

Autor:  mirekk36 [ 19 gru 2018, o 19:37 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

No! ... ;) program już można pobierać i testować

https://atnel.pl/mkbootloader3.html

Autor:  micky [ 19 gru 2018, o 19:51 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

Ulala, nocka będzie długa :)

Autor:  xxabaxx [ 19 gru 2018, o 20:49 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

1) Błąd kompilacji
Pobrałem a nawet już zakupiłem nową wersję, tymczasem w wersji demo odkryłem problem z kompilacją (w wersji pełnej o dziwo działa).
W przypadku wybrania mikrokontrolera ATmega8 pojawia się następujący błąd:
Obrazek
w przypadku innych mikrokontrolerów z wersji demo wszystko kompiluje się poprawnie.

2) Kod źródłowy bootloadera
Szkoda że nie będzie widać i nie można edytować kodu źródłowego tak jak w starej wersji, zawsze to programista lepiej wie co się dzieje, a czasem jakiś szczegół może być kluczowy w projekcie np.:
  • Watchdog, który się wyłączy, a potem nie wiadomo czy się ponownie włączył czy nie albo wręcz wymagane jest aby Watchdog pracował nawet w bootladerze,
  • mikrokontroler inny niż te na liście,
  • chęć zmiany lub dodania jakiś tekstów przesyłanych po UART przed, po lub w trakcie działania bootloadera,
  • chęć dodania jakiejś weryfikacji wsadu, np. poprzez specjalną komendę bootladera i sumę kontrolną,
  • ogólnie pomysłowość ludzka a tym bardziej programistów nie zna granic ;) także fajnie jest mieć dostęp do kodu (no oczywiście w wersji DEMO może nie być tego podglądu).

3) Podgląd HEX
W starej wersji był dostępny podgląd pliku HEX, który chcemy wgrać do mikrokontrolera, a nawet posiadał opcję auto-refresh i wyświetlanie rozmiaru kodu. Myślę że fajnie było by przywrócić tą funkcjonalność, a nawet rozbudować ją o wyświetlanie daty modyfikacji pliku HEX a także ładniejszy podgląd pliku HEX. Uważam to za niezwykle pomocne.

4) Pasek postępu wgrywania
Nowy pasek postępu w procentach jest super, ale co gdyby dodać na nim lub gdzieś indziej wartość w bajtach (<liczba bajtów wgranych>/<liczba bajtów łącznie>).

5) Opcja skasowania wsadu
Wymyśliłem jeszcze jedną ciekawą funkcjonalność, której nie było nawet w poprzedniej wersji. Co gdyby dodać opcję skasowania wsadu? Obecnie można jedynie skasować i od razu wgrać. Myślę że może to być przydatne w sytuacjach gdy z jakiegoś powodu chcemy usunąć wsad ale nie chcemy kasować bootloadera.

6) AVR FLASH as EEPROM
Przyszła mi do głowy jeszcze taka kwestia: jak wgrać bootloader i AVR FLASH as EEPROM? Może przydał by się do tego jakiś poradniczek, a może i dodanie integracji AVR FLASH as EEPROM do bootloadera.

7) Weryfikacja
Pomysł weryfikacji wsadu, który mi przyszedł do głowy w punkcie 2) tez wydaje się ciekawy. Implementacja mogła by być zrealizowana np. poprzez obliczenie sumy kontrolnej wsadu przez bootloader po otrzymaniu odpowiedniej komendy, przesłaniu do PC i porównaniu jej z sumą kontrolną obliczoną na PC z pliku HEX/bin (wiem że może to zwiększyć rozmiar bootloadera, ale to całkiem przydatna funkcja na która wartą poświęcić trochę bajtów :D - zresztą nie musi być obowiązkowa, bootloader bez tej funkcji zwracał by do PC że nie umie tego policzyć).

8) Podsumowanie
Ogólnie program robi bardzo dobre wrażenie. Ma bardziej przejrzysty i zrozumiały interfejs, fajnie wymyślone nowe przydatne funkcjonalności w bootloaderze. Jednakże wymienione w punkach 2) i 3) kwestie są lekkim krokiem wstecz.

Pozdrawiam,
aba

PS. trochę sporo tych moich przemyśleń, ale fajnie było by je zobaczyć w programie :D; po raz pierwszy poczułem taki niedosyt że aż musiałem napisać swój pierwszy post na forum ;)

PS2. wiem że proponowane zmiany znacząco zwiększyły by okno programu, ale to chyba dobrze - nadaje jeszcze większej powagi i profesjonalizmu programowi :D - jeszcze bardziej przydatny "kombajn' do obsługi bootloadera

PS3. Tak mi jeszcze przyszło do głowy: czy dało by się jakoś fajnie zaimplementować kasowanie wyłącznie wymaganej liczby stron w pamięci FLASH zamiast wszystkich?

Autor:  akenes [ 19 gru 2018, o 20:54 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

No to czekam na Gwiazdora z Upgrejdem ;)

Autor:  xxabaxx [ 19 gru 2018, o 21:19 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

akenes napisał(a):
No to czekam na Gwiazdora z Upgrejdem ;)

ja też ;) :D

Autor:  mirekk36 [ 19 gru 2018, o 23:28 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

xxabaxx napisał(a):
3) Podgląd HEX

Przede wszystkim DZIĘKUJĘ za zgłoszenia - chociaż ich STRASZNIE DUŻO ;) no ale jeśli chodzi o pkt.3 to pomyślimy nad tym ;) obiecuję

xxabaxx napisał(a):
) Pasek postępu wgrywania

OK .. pomyślimy

xxabaxx napisał(a):
5) Opcja skasowania wsadu

Tego kompletnie nie rozumiem - ale nie mówię, że to zły pomysł czy coś - ale postaraj się bardziej to uzasadnić i opisać ok?

xxabaxx napisał(a):
6) AVR FLASH as EEPROM
Przyszła mi do głowy jeszcze taka kwestia: jak wgrać bootloader i AVR FLASH as EEPROM? Może przydał by się do tego jakiś poradniczek

BARDZO Dobry pomysł - no MUSZĘ w końcu zrobić ten poradniczek dla czytelników YB - bo tu potrzebne będzie ... hmmm baaaardzo specyficzne podejście ... no temat poważny i chyba warto o nim oddzielnie porozmawiać - dzięki za sugestię

Cytuj:
7) Weryfikacja

no o tym już sam myślałem - myślę, że kolejny dobry pomysł na dalsze aktualizacje ;)

xxabaxx napisał(a):
3) Podgląd HEX

sorry, że nie po kolei ale w tej wersji już nie jest potrzebny auto refersh ;) uwierz mi ... a jeśli chodzi o rozmiar kodu ... ok dodamy ;)

xxabaxx napisał(a):
PS3. Tak mi jeszcze przyszło do głowy: czy dało by się jakoś fajnie zaimplementować kasowanie wyłącznie wymaganej liczby stron w pamięci FLASH zamiast wszystkich?

tego znowu nie rozumiem .... bo po pierwsze kasowanie powoduje skasowanie wszystkich stron, ale może nie wiesz o tym, że jeśli strona do skasowania już była skasowana czyli zawiera tylko wartości 0xFF to jej ponowne niby skasowanie - nie pomniejsza cyklu zapisów do FLASH - więc spokojnie ;)

PRZEŚLICZNIE DZIĘKUJĘ za te przemyślenia - chociaż przyznam, że jak zobaczyłem ilość punktów to o mało co się nie załamałem

ale w miarę czytania - i mnie ślinka zaczęła cieknąć na myśl o nowych funkcjonalnościach .... a więc? .... zapisujemy je do skoroszytu życzeń ;)

------------------------ [ Dodano po: kilkunastu sekundach ]

a nawiasem mówiąc - nie wiem czy już ktoś zauważył ale w dniu premiery już się pojawiła aktualizacja do 3.0.1 !!! ;)

------------------------ [ Dodano po: 20 minutach ]

xxabaxx napisał(a):
1) Błąd kompilacji

a to wynika ze złego dobrania adresu BLS, ale w wersji 3.0.1 jest już to nieistotne i nie wystąpi ;)

Autor:  gizmo5418 [ 20 gru 2018, o 00:05 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

Witam,

Ja tylko chcę dodać info, że pod Linuksem nowa wersja się uruchamia, poprawnie kompiluje i..... resztę sprawdzę, jak dojedzie zestaw ATB.
Obrazek

Autor:  mirekk36 [ 20 gru 2018, o 00:16 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

gizmo5418 napisał(a):
Ja tylko chcę dodać info, że pod Linuksem nowa wersja się uruchamia, poprawnie kompiluje i

Jaaaaa pierdziu! dla mnie to zawsze jest MEGA ZDZIWIENIE ! ;) ... jak to jest, że ja piszę tylko pod Łindołsa ... a koledzy Linuxowcy robią z tym "co chcą" pod Linuxem o którym ja zielonego pojęcia nie mam ;)

ale ślicznie dziękuję za takie info - dla mnie brzmi to bardzo ciekawie

gizmo5418 napisał(a):
resztę sprawdzę, jak dojedzie zestaw ATB

No to czekam na informacje ! ;)

Autor:  misiulu [ 20 gru 2018, o 00:33 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

Takie może głupie pytanie, czy przy zakupie i płatnością przelewem to mamy czekać na jakiegoś maila zwrotnego, że rabat został przyznany i kwotę do zapłaty, czy mamy sami se to policzyć i wpłacić na konto i dopiero wtedy będzie dalej to procedowane? :)

Autor:  mirekk36 [ 20 gru 2018, o 07:07 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

misiulu napisał(a):
Takie może głupie pytanie, czy przy zakupie i płatnością przelewem to mamy czekać na jakiegoś maila zwrotnego, że rabat został przyznany i kwotę do zapłaty, czy mamy sami se to policzyć i wpłacić na konto i dopiero wtedy będzie dalej to procedowane? :)

Dlaczego głupie pytanie, pewnie że tak można zrobić - może ja zapomniałem tego dodać - dopiszę to jeszcze na stronach sklepu.

Autor:  JarekB [ 20 gru 2018, o 07:41 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

Nie wiem czy to możliwe "technicznie" ale jak dla mnie przydała by się jeszcze jedna funkcjonalność.
Przyjmijmy że mamy kilka urządzeń połączonych ze sobą magistralą RS485
Czy można by było oprogramować BLS i BOOTLOADERA
w taki sposób żeby bez rozpinania magistrali programować określone wybrane urządzenie urządzenie.

Wiem, jest jakieś pośrednie wyjście, czyli pojawił się ACTIVE PIN.
Można sobie o biedy tym "zaprotezować" taką funkcjonalność.
Ale nadal trzeba się dobrać fizycznie do urządzenia.

Autor:  tonygryps [ 20 gru 2018, o 09:28 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

Dla mnie ten program ma jedną bardzo ważną wadę w stosunku do poprzednika. Brak możliwości dostępu do kodu źródłowego co uniemożliwia wprowadzanie własnych pomysłów i tu przytoczę Pana słowa "ilu programistów tyle pomysłów na dany kod".

Autor:  mirekk36 [ 20 gru 2018, o 09:59 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

JarekB napisał(a):
Nie wiem czy to możliwe "technicznie" ale jak dla mnie przydała by się jeszcze jedna funkcjonalność.
Przyjmijmy że mamy kilka urządzeń połączonych ze sobą magistralą RS485
Czy można by było oprogramować BLS i BOOTLOADERA
w taki sposób żeby bez rozpinania magistrali programować określone wybrane urządzenie urządzenie.
.


Wydaje mi się, że tę funkcjonalność można uzyskać w prosty sposób. Wystarczy wszczepić do swojego wsadu reagowanie nie na komendę AT+RST? tylko na jakąś inną własną - zawierającą np jakiś adres urządzenia, nawet w HEX'ie ;) np

AT+RST=AE

no i wtedy spośród wszystkich urządzeń na magistrali zareaguje tylko jedno resetem i rozpocznie się aktualizacja - ale trzeba byłoby sprawdzić w praktyce ten sposób, ja jeszcze nie sprawdzałem

------------------------ [ Dodano po: 5 minutach ]

tonygryps napisał(a):
Dla mnie ten program ma jedną bardzo ważną wadę w stosunku do poprzednika. Brak możliwości dostępu do kodu źródłowego

Coś za coś .... zawsze każdemu coś nie będzie pasowało ... ja wiem jedno, zdecydowana większość ludzi wolała używać automatu. Wiem wiem, są też tacy którzy robili sobie własne modyfikacje ale - później ja miałem sporo maili z pytaniami dlaczego coś tam nie chce działać, jak to naprawić, czy mogą mi przesłać kod do poprawki, czy ja bym nie napisał komuś zmienionego kodu itp itd ....

tonygryps napisał(a):
co uniemożliwia wprowadzanie własnych pomysłów i tu przytoczę Pana słowa "ilu programistów tyle pomysłów na dany kod".

Oczywiście i dlatego ja dzięki temu miałem mnóstwo pytań jak wyżej

Ale żeby nie było tak smutno to powiem, że planuję wprowadzić możliwość dodawania jakichś własnych fragmentów kodu do BLS, więc może zrobić się ciekawie. Czyli będzie może w przyszłości dodatkowe okienko gdzie będzie można wpisać jakiś własny fragmencik kodu, gdzie opisane będzie jakimi ew zmiennymi możemy dysponować itp ... no ale to na razie przyszłość

Autor:  tonygryps [ 20 gru 2018, o 10:35 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

Cytuj:
Coś za coś .... zawsze każdemu coś nie będzie pasowało ... ja wiem jedno, zdecydowana większość ludzi wolała używać automatu. Wiem wiem, są też tacy którzy robili sobie własne modyfikacje ale - później ja miałem sporo maili z pytaniami dlaczego coś tam nie chce działać, jak to naprawić, czy mogą mi przesłać kod do poprawki, czy ja bym nie napisał komuś zmienionego kodu itp itd ....

Wiem że Pan jest Bardzo zajętym człowiekiem ale czy nie po to jest te forum żeby pytać jak się czegoś nie rozumie, w końcu trzeba pogrzebać poćwiczyć by się nauczyć. Poza tym w starszej wersji była też opcja wgrania bez mieszania w kodzie jak ktoś chciał.
Nowa wersja ma fajne funkcjonalności takie jak wynajdowanie tulczajna ,kasowanie wsadu w razie niepowodzenia ale to przynajmniej mi nie rekompensuje braku możliwości wprowadzania zmian .

Autor:  JarekB [ 20 gru 2018, o 10:55 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

Cytuj:
"Wydaje mi się, że tę funkcjonalność można uzyskać w prosty sposób. Wystarczy wszczepić do swojego wsadu reagowanie nie na komendę AT+RST? tylko na jakąś inną własną - zawierającą np jakiś adres urządzenia, nawet w HEX'ie ;) np

AT+RST=AE

no i wtedy spośród wszystkich urządzeń na magistrali zareaguje tylko jedno resetem i rozpocznie się aktualizacja - ale trzeba byłoby sprawdzić w praktyce ten sposób, ja jeszcze nie sprawdzałem
"


Oj tak, oj tak.
Czyli w zakładce BootLoader rozwijane menu wybierz urządzenie. (gdy chcemy programować)
I w zakładce BLS Generator takie samo menu i kompilacja pliku BLS z informacją o tym który do jest device.

Skoro odwaliliśmy już lwią część pracy, to zostaje to tylko wklepać do wersji 3.0.3
:)

Autor:  mirekk36 [ 20 gru 2018, o 11:46 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

JarekB napisał(a):
I w zakładce BLS Generator takie samo menu i kompilacja pliku BLS z informacją o tym który do jest device.

ale po co to ? ;) .... przecież w BLS nie musi być tego adresu ... toż komendą AT+RST=<adres urządzenia> zresetujesz tylko jedno urządzenie na magistrali i BLS zacznie reagować ;)

Autor:  JarekB [ 20 gru 2018, o 11:57 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

No co racja to racja.
Przecież można założyć że skoro jest rs 485 to jest i obsługa komend AT.
Ha
Skoro tak, to można też podmienić numer urządzenia po wgraniu nowego softu.
Zapisać do flasha i trzepnąć to funkcją load_defaults do eepromu.

Autor:  xxabaxx [ 20 gru 2018, o 11:58 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

mirekk36 napisał(a):
xxabaxx napisał(a):
3) Podgląd HEX

sorry, że nie po kolei ale w tej wersji już nie jest potrzebny auto refersh uwierz mi ... a jeśli chodzi o rozmiar kodu ... ok dodamy

ok, w sumie to ten podgląd HEX to bardziej był bajer dla większości użytkowników
Może datę modyfikacji pliku też dodać, jak proponowałem?

BTW, gdy doda się wyświetlanie rozmiaru kodu i datę modyfikacji pliku HEX/Bin to auto-refresh tych dwóch wartości będzie chyba potrzebny

mirekk36 napisał(a):
xxabaxx napisał(a):
PS3. Tak mi jeszcze przyszło do głowy: czy dało by się jakoś fajnie zaimplementować kasowanie wyłącznie wymaganej liczby stron w pamięci FLASH zamiast wszystkich?

tego znowu nie rozumiem .... bo po pierwsze kasowanie powoduje skasowanie wszystkich stron, ale może nie wiesz o tym, że jeśli strona do skasowania już była skasowana czyli zawiera tylko wartości 0xFF to jej ponowne niby skasowanie - nie pomniejsza cyklu zapisów do FLASH - więc spokojnie

Trochę się pogubiłem ze sposobem działania kasowania FLASH, ale już rozumiem. Także pomysł do zignorowania, bo jest bez sensu.


mirekk36 napisał(a):
xxabaxx napisał(a):
5) Opcja skasowania wsadu

Tego kompletnie nie rozumiem - ale nie mówię, że to zły pomysł czy coś - ale postaraj się bardziej to uzasadnić i opisać ok?

OK, postaram się teraz wyjaśnić bardziej obrazowo.

W starej wersji mieliśmy taki fragment kodu w bootladerze:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Program w momencie naciśnięcia przycisku upload wysyłał komendę 'u' potem 'w' (rozpoczynało się kasowanie pamięci programu w FLASH), bootloader odpowiadał znakiem '@' po skasowaniu programu w FLASH, a program na PC zaczynał wysyłać wsad.

Pierwszy pomysł, który mi przyszedł do głowy gdy zobaczyłem ten fragment kodu w starej wersji, to odpalić PuTTY i gdy jesteśmy w bootloaderze mikrokontrolera wpisać 'u' a potem 'w'. Reakcja była następująca pamięc programu w FLASH się skasowała, bootloader odczekał sobie sekundę ale nie dostał żadnego kodu do wgrania i zakończył komendę 'w'.

Związek opisanej wyżej czynności/eksperymentu z moim pomysłem:

dodać przycisk w nowym programie bootloadera na PC, który skasuje/wyczyści pamieć programu w mikrokontrolerze, ale nic nie będzie nowego wgrywać. Czyli mielibyśmy dwa przyciski "ERASE PROGMEM" oraz już istniejący "UPLOAD HEX/BIN" (lub dla większej jasności zamieniony na "ERASE & UPLOAD HEX/BIN").

Po co ten przycisk? Po prostu np. w sytuacji gdy chcemy mieć wyczyszczoną pamieć programu w FLASH i nadal mieć bootloader, bez konieczności jego ponownego wgrania, bo np. wymieniamy mikrokontroler w urządzeniu a ten chcemy odłożyć do "pudełka" z wgranym dawno temu bootloaderem.




Na koniec odnośnie twojej ostatniej odpowiedzi na mój komentarz na YT:

Cytuj:
@aba Absolutnie nie odbieram jako krytykę ... ale uważam, że damy radę wprowadzić te rzeczy i bez kodu źródłowego. Wiesz np z tym watchdogiem to nie taka prosta sprawa jak piszesz bo ze względu na czas zwłoki 1 sekundy nie za bardzo da się zwrócić status ... nie mniej jednak planuję na przyszłość dać możliwość (jak się uda bo na razie tylko takie luźne myśli mi chodziły po głowie) żeby można było dodawać do kodu swoje wstawki krótkie .. no ale to może z kolei rozwalić ideę krótkiego kodu BLS (max 256 słów) ... tyle że z drugiej strony w większych prockach przecież i tak minimalny rozmiar to 512 słów - więc jeśli to wyjdzie to nie będzie tak źle.


Po przejrzeniu kodu starego bootloadera i ponownym zastanowieniu, rzeczywiście z watchdogiem to nie taka prosta sprawa zwłasza przez oczekiwania w transmisji UART np.:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


A pomysł dodawania wstawek jest moim zdaniem niezwykle ciekawy. Co więcej, uważam że dodawanie nowych opcjonalnych funkcjonalności do kodu BLS, nie psuje idei krótkiego kodu BLS (max 256 słów), gdyż wówczas użytkownik sam wybiera (zaznaczając checkboxy w programie) jakie dodatkowe "bajery" mieć kosztem rozmiaru kodu BLS (często bywa tak że kod programu nie zajmuje całej przeznaczonej pamięci FLASH - a wręcz jest spory zapas, zatem ktoś może wolał by posiadać bardziej rozbudowany bootloader).

PS.
mirekk36 napisał(a):
Cytuj:
7) Weryfikacja

no o tym już sam myślałem - myślę, że kolejny dobry pomysł na dalsze aktualizacje


Może się przyda:
ftp://www.inf.fh-dortmund.de/pub/contri ... AVR236.PDF

W sumie weryfikacja z wartością CRC w EEPROM też ciekawa bo można zawsze weryfikować przy uruchamianiu i po uart np. wysyłać diagnostycznie coś w stylu "FLASH CRC OK" albo jak błąd to jakaś dioda się by zapalała w urządzeniu i nie wychodzi z bootloadera. Z drugie strony weryfikacja z oryginalnym HEX/bin bezpieczniejsza i weryfikuje przekłamanie bajtów podczas uploadu wsadu o które częściej (aczkolwiek zawsze fajnie mieć wybór rodzaju weryfikacji - tyle pomysłów, tyle opcji, a wszystko fajne :D, generalnie zależy co komu potrzebne ).

Autor:  malu [ 20 gru 2018, o 14:43 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

JarekB napisał(a):
Oj tak, oj tak.
Czyli w zakładce BootLoader rozwijane menu wybierz urządzenie. (gdy chcemy programować)


Super byłaby możliwość zapisania sobie takiej listy urządzeń,
gdzie była by nazwa urządzenia do której można by przypisać rozkaz resetu i adres na magistrali.

Buduję w wolnym czasie prostą automatykę domową w oparciu o rs485, obecnie jest to około 30 urządzeń.
We wszystkich jest BLS z MKbootloadera 2.0 z dopisaną możliwością sterowania kierunkiem transmisji.

Możliwość wybierania z wcześniej stworzonej listy urządzenia które chcemy zresetować była by myślę ze nie tylko dla mnie świetną opcją.

Autor:  mirekk36 [ 20 gru 2018, o 15:16 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

malu napisał(a):
Super byłaby możliwość zapisania sobie takiej listy urządzeń,


No ale jak wyobrażacie sobie panowie taką listę ?

przecież to chyba nie problem wpisać swoją własną komendę - i na końcu podawać tylko adres własny z ręki

jak chcę np zresetować urządzenie o adresie 01 to wpiszę

Cytuj:
AT+RST=01


i już ... a jeśli chcę kolejne o adresie 08, to

Cytuj:
AT+RST=08


wystarczy żeby wasz wsad rozpoznał komendę AT+RST , oddzielił to co jest po znaku = czyli adres i sprawdził czy ma taki adres ustawiony - jeśli tak to się zresetuje a jeśli nie to zignoruje komendę

chyba że wam chodzi o dodanie jakiegoś pola rozwijanego (ComboBox) w którym będą np zapamiętywane wydawane przez was takie polecenia ?

bo ciężko na siłę stworzyć listę gdzie każdy może mieć inny pomysł na taką komendę, no chyba żeby wczytywać ją z pliku który sami sobie stworzycie i będzie w nim np:

Cytuj:
AT+RST=01 // czujka ruchu
AT+RST=02 // wyłącznik światła
AT+RST=03 // czujniki temperatury


nie wiem - tak głośno sobie myślę i na gorąco

Autor:  JarekB [ 20 gru 2018, o 15:29 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

Tak w pierwszej chwili myślałem że lista w combo box bootloadera mogła by składać z kilku cyfr od 0 do 16
Wybór danej liczby powoduje automatyczne wysłanie komendy restartu do określonego urządzenia
(czytaj określone urządzenie zareaguje na komendę)
Analogicznie w generatorze BLS stworzony zostanie mechanizm który spowoduje że tylko to określone urządzenie zareaguje na daną komendę.

No ale tak się nie da.
Czyli zmiana planu
Zamiast combo box pole do wpisania nr urządzenia
Domyślnie zawsze ustawine jest "0"
I dalej w kodzie każde urządzenie indywidualnie parsuje komendę RST i robi restart kiedy trzeba.
Redukujemy pomysł do tego że gdy jest zero to boot loader resetuje wszystko
a gdy jest jakaś wartość od 1 do 255 to wysyła restart i do określonego urządzenia
I wilk syty i owca nieco tylko nadgryziona

Autor:  malu [ 20 gru 2018, o 15:44 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

Cytuj:
Zamiast combo box pole do wpisania nr urządzenia
Domyślnie zawsze ustawine jest "0"
I dalej w kodzie każde urządzenie indywidualnie parsuje komendę RST i robi restart kiedy trzeba.
Redukujemy pomysł do tego że gdy jest zero to boot loader resetuje wszystko
a gdy jest jakaś wartość od 1 do 255 to wysyła restart i do określonego urządzenia
I wilk syty i owca nieco tylko nadgryziona


Nie wydaje mi się by to był dobry pomysł, ponieważ różne osoby mogą mieć różny kształt ramki i różne komendy resetu.

Ja widziałbym to tak że tworzymy jakiś plik/tabele, w którym zapisujemy własna ramkę z rozkazem resetu i adresem urzadzenia , do każdej ramki na liście przypisujemy jakąś nazwę urządzenia. Następnie w programie klikamy na rozwijaną listę na której widać będzie nazwy zapisanych przez nas urządzeń.Wybieramy to które chcemy zresetować, a program wysyła na na magistrale ramkę(komendę i adres) wcześniej przypisany do tej nazwy.

------------------------ [ Dodano po: 11 minutach ]

JarekB napisał(a):
Redukujemy pomysł do tego że gdy jest zero to boot loader resetuje wszystko


Taka opcja musiałaby być zapisana w firmware urządzeń które chcemy resetować a nie w bootloaderze,
po co resetować przez bootloader wszystkie urządzenia jednocześnie?
Aktualizacja oprogramowania wszystkich urządzeń jednocześnie wydaje mi się być niemożliwa.

Autor:  JarekB [ 20 gru 2018, o 16:00 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

Chodziło mi o to że gdy jest "zero" to domyślnie jest jedno urządzenie do zaprogramowania.

Autor:  mirekk36 [ 20 gru 2018, o 16:28 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

malu napisał(a):
Ja widziałbym to tak że tworzymy jakiś plik/tabele, w którym zapisujemy własna ramkę z rozkazem resetu i adresem urzadzenia , do każdej ramki na liście przypisujemy jakąś nazwę urządzenia. Następnie w programie klikamy na rozwijaną listę na której widać będzie nazwy zapisanych przez nas urządzeń.Wybieramy to które chcemy zresetować, a program wysyła na na magistrale ramkę(komendę i adres) wcześniej przypisany do tej nazwy.


A co ja wyżej zaproponowałem ? ;) nawet przykładową formę takiego zapisu

AT+RST=01 // czujka ruchu
AT+RST=02 // wyłącznik światła
AT+RST=03 // czujniki temperatury

gdzie MkBootloader nie brałby pod uwagę, do wysłania tego co jest po //

------------------------ [ Dodano po: kilkunastu sekundach ]

JarekB napisał(a):
Chodziło mi o to że gdy jest "zero" to domyślnie jest jedno urządzenie do zaprogramowania.

na jedno wychodzi - zero to też adres - więc nie ma tu żadnej domyślności ;) można zero dać np Masterowi w sieci

Autor:  malu [ 20 gru 2018, o 16:49 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

Cytuj:
A co ja wyżej zaproponowałem ? nawet przykładową formę takiego zapisu

Kurcze, jakoś nie zatrybilem że chodź Ci właśnie o taki sposób. W każdym razie takie rozwiązanie wydaje mi się być najbardziej optymalnym. Każdy mógłby stworzyć, sobie własny plik z swoimi nazwami urządzeń i swoimi rozkazami resetu.

Autor:  mirekk36 [ 20 gru 2018, o 16:54 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

malu napisał(a):
Kurcze, jakoś nie zatrybilem że chodź Ci właśnie o taki sposób. W każdym razie takie rozwiązanie wydaje mi się być najbardziej optymalnym. Każdy mógłby stworzyć, sobie własny plik z swoimi nazwami urządzeń i swoimi rozkazami resetu.

No właśnie - bo jak mówię - i jak ty pisałeś (jakby niezależnie o tym samym pomyśleliśmy) ;) ... to ze względu na te różnice - to chyba byłby najbardziej optymalny sposób ... pomyślę nad wdrożeniem ;)

Strona 1 z 4 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/