Mrki z #embedded mam takie pytanie. Załóżmy, że firma zdecydowała się na zbudowanie płytki w oparciu o procek STM32MP135. Na rynku dostępne są development kity itp. Mamy wsparcie w mainline u-boocie, mamy wsparcie w mainline Linux. Płytka, którą stworzy firma zawierać będzie inne elementy niż te dostępne na dev kicie. Jak rozumiem np. oznacza to patchowanie źródeł u-boota, dodanie np. swoich configów do odpowiadających tworzonej płytce. Tak samo z Linuxem? W dużym
- 0
@bielu000: Rosjanie dalej gwalcą i mordują a Ukraina się dzielnie broni.
- Baudi
- Van-der-Ledre
- power-weak
- korkyx
- nie_znam_zadnej_krystyny
- +18 innych
@bielu000: Pewnie przestałeś śledzić jak sytuacja wyglądała tak, że ruskich dzieliły godziny od zajęcia Bachmutu i ruszenia na Kramatorsk. Jeśli tak, to nic się nie zmieniło. Ruscy zdobyli kilka małych wiosek, a ukraińcy kilka odbili. Front stoi, a ukraińcy nawalają artylerią i dronami, robią uderzenia sprawdzające przed kontrofensywą, ruscy zaś nadal walą po blokach mieszkalnych. W Bachmucie nadal trwają walki.
- Baudi
- login__
- Canis_Majoris
- galian
- charygiewont
- +7 innych
- co_to_za_typ
- konto usunięte
- Testuje_Toster
- 3w3linka
- lerlaone
- +2 innych
bielu000 via Wykop
- 0
@give_me_coffee: Zazdro! Na jak długo lecisz? Lecisz w jakieś konkretne miejsce, czy raczej będziesz podróżować po Stanach? Podrzuć link do insta, żeby śledzić relację, może być na PW :)
Fajna szansa na start w IT? Sorry tylko dla kobiet.
TLDR; 3k za pórczony kurs, poźniej egzamin - zdasz - gwarancja pracy. ps tak mam kobiety w teamie. ps.2. jasne prywatna firma może robić co chce, niemniej jednak szkoda, że wielu enuzjastów programowania już na starcie jest dyskryminowanych przez losowy wybryk natury, na który nie mieli wpływu.
z- 312
- #
- #
- #
- #
- #
- #
- 115
TLDR; 3kzł za półroczny kurs programowania (w dogodnych godzinach), a po zdanym egzaminie gwarancja pracy.
- 33
@RandomizeUsr0: Straszny frustrat z Ciebie. Akurat tak się złożyło, że studia skończyłem i nadal uważam, że pójście na studia to nie jest zmarnowany czas. Ale nie będę się tutaj nad tym rozwodził. Wątek z kompleksami i spermiarzami pominę, dodam tylko, żebyś nie mierzył wszystkich swoją miarą. Temat dotyczy nierówności na rynku pracy, którą generują firmy udając, że z tą nierównością walczą - bo akurat coś jest modne.
- 66
@PaaD: "Będziesz pisała kod, testowała oprogramowanie i tworzyła dokumentację. Jeśli dostrzeżesz błąd lub problem w istniejącym oprogramowaniu, Twoim i zespołu zadaniem będzie znalezienie rozwiązania."
to projekt, w ramach którego doświadczeni trenerzy i trenerki z Software Development Academy przeszkolą i przygotują do pracy Software Developera 20 entuzjastek nowych technologii.
Ps. to nie kurs dla mnie jak wspomniałem w opisie - pracuję w teamie z kobietami (akutalnie dwiema), programujemy sobie w C++, spisują
to projekt, w ramach którego doświadczeni trenerzy i trenerki z Software Development Academy przeszkolą i przygotują do pracy Software Developera 20 entuzjastek nowych technologii.
Ps. to nie kurs dla mnie jak wspomniałem w opisie - pracuję w teamie z kobietami (akutalnie dwiema), programujemy sobie w C++, spisują
- 1
@hawat: Nie będę się wypowiadał o wszystkich ale ja mam takie doświadczenie - kobiety, z którymi pracuję radzą sobie bardzo dobrze, są ogarnięte, dostały pracę po normalny procesie rekrutacyjnym. Często wręcz dają z siebie 150%. Obie w wieku wieku <30 więc raczej można powiedzieć, że młodszej daty.
- 6
@marilyn92: Wiesz co ja nie neguję dyskrymninacji kobiet w kontekście zawodowym - pod względem płac, czy równego traktowania. Mężczyźni z natury są bardziej pewni siebie dlatego zwyczajnie łatwiej jest im wynegocjować podwyżki, postawić się szefowi itp. - i na tym powinna się skupić walka z nierównością. Nauczyć kobiet technik negocjacji, być może pomóc im zwiększyć pewność siebie, a nie robić kursy TECHNICZNE skierowane tylko dla kobiet. Pod względem wiedzy technicznej /
- 0
- 0
Czy to zdanie jest prawidłowe gramatycznie i ma sens? Chodzi o wyrażenie czegoś w stylu:
Gdyby nie wytrwała praca / wysiłek zespołu nie udało by się nam zakończyć tego zadania. Słówko unstinting musi zostać użyte.
Hadn't been for the unstinting, team's effort, we wouldn't have managed to complete this task.
Nie do końca rozumiem tą inwersję z Had na początku. Zrobiłem to bardziej na czuja korzystając z innych przykładów, w stylu:
-
Gdyby nie wytrwała praca / wysiłek zespołu nie udało by się nam zakończyć tego zadania. Słówko unstinting musi zostać użyte.
Hadn't been for the unstinting, team's effort, we wouldn't have managed to complete this task.
Nie do końca rozumiem tą inwersję z Had na początku. Zrobiłem to bardziej na czuja korzystając z innych przykładów, w stylu:
-
- 0
Hej dzisiaj kolejne pytanie - zacząłem przenosić projekt z płytki prototypowej na uniwersalną płytkę drukowaną i co chwile pojawiają się jakieś problemy. Ale do rzeczy - mam sensor - kontraktron. W momencie kiedy przyłoży się do niego tą drugą część, obwód się zamyka i powinien się zmienić stan na gpio.
Zmienia się i owszem problem w tym, że wygląda jakby tam był straszny bałagan, zmiana stanu na sensorze wykrywana jest jakby wydarzyła
Zmienia się i owszem problem w tym, że wygląda jakby tam był straszny bałagan, zmiana stanu na sensorze wykrywana jest jakby wydarzyła
- 0
@bielu000: Eh póki co nie ma co się spieszyć z podpowiedziami bo i tak nie sprawdzę. Przez przypadek zwarłem, któryś PIN Rpi do 12V, dioda z płytki zgasła i już nie wstaje, grzeje się w okolicach zasilania więc pewnie uwaliłem.
Aczkolwiek sam problem, który opisałem wyżej jest dość dziwny.
Aczkolwiek sam problem, który opisałem wyżej jest dość dziwny.
- 0
@Jarek_P: Jak według Ciebie miałby wyglądać schemat podłaczenia tego sensora? Rozwiązanie wziałem to od Kardasia gdzie twierdził, że według niego to "najlepszy" sposób na filtrowanie digital input-u.
- 0
@Jarek_P: Czy ja dobrze rozumiem, że w takim razie miałbym wywalić całkowicie połączenie przez rezystor 10k? W takim razie o co temu Kardasiowi chodziło, bo w takim razie całkowicie niepotrzebne wrzuciłem na płytkę przetownice - ona była tylko do tych kontaktronów.... Odległość to max 1,5m.
- 0
@Jarek_P: Jak tylko znajdę to Ci podrzucę, bo ten filmik to miał jakąś taką dziwną nazwę nie związaną z tematem, ale w filmiku właśnie wszedł na temat drgań styków. Poszukam i wrzucę.
A co do schematu - bo generalnie chyba nie do końca Cię rozumiem - w sensie nie do końca wiem co do czego mam podpiać, co najciekawsze to jest ostatnia część schematu, która wydawała mi się, że będzie najprostsza
A co do schematu - bo generalnie chyba nie do końca Cię rozumiem - w sensie nie do końca wiem co do czego mam podpiać, co najciekawsze to jest ostatnia część schematu, która wydawała mi się, że będzie najprostsza
- 1
- 0
@Jarek_P dobra na MCU póki co stan się zmienia, ale patrzyłem tylko na pollingu, przerwania + debouncing sprawdzę później bo to ciutkę więcej kodu.
- 0
@Jarek_P: Jeszcze jedno czy odległość pomiędzy sensorem a GPIO ma znaczenie? Tj. załóżmy, że zamiast PB1 na obrazku, PB1 jest w odległości 20cm. Czy tranzystor oraz rezystor powinien być jak najbliżej pinu?
- 0
@Jarek_P: Dzięki wielkie. Powiedzmy, że działa, dodałem chamski debouncing w postaci delay 50ms w przerwaniu, ale w Linuxie to sobie jakoś inaczej ogarne.
- 0
@Jarek_P: Mam jeszcze jedno pytanie, bo kończę układ i dla pewności dodałbym jeszcze te diody.
Na płytce jest tylko linia 12V, po której płynie prąd z natężeniem nawet 1,5A. Czy mogę tą diodę (1N4004 max 1A) idącą od sensora podpiąc bezpiecznie do tej linii?
Parametr odnosi się do maksymalnego prądu przewodzenia, a nie ma opcji aby od strony sensora taki prąd mógł płynąć, zastanawiam się czy jednak prąd płynący przez linię
Na płytce jest tylko linia 12V, po której płynie prąd z natężeniem nawet 1,5A. Czy mogę tą diodę (1N4004 max 1A) idącą od sensora podpiąc bezpiecznie do tej linii?
Parametr odnosi się do maksymalnego prądu przewodzenia, a nie ma opcji aby od strony sensora taki prąd mógł płynąć, zastanawiam się czy jednak prąd płynący przez linię
- 0
Hej mam prawdopodobnie trochę głupie pytanie ale nie do końca rozumiem dlaczego dzieje się tak a inaczej.
Mam wentylator sterowany przez mosfet IRL540N.
Próbuję tym sterować przez pin mikrokontrolera. Jest to część większego schematu, reszta działa ale z tym cholerstwem mam problem.
1) Działa na płytce stykowej, nie działa na polutowanej płytce uniwersalnej.
2) Działą na płytce stykowej, działa na polutowanej płytce uniwersalnej.
Na płytce uniwersalnej, a prototypowej są dwa różne tranzystory,
Mam wentylator sterowany przez mosfet IRL540N.
Próbuję tym sterować przez pin mikrokontrolera. Jest to część większego schematu, reszta działa ale z tym cholerstwem mam problem.
1) Działa na płytce stykowej, nie działa na polutowanej płytce uniwersalnej.
2) Działą na płytce stykowej, działa na polutowanej płytce uniwersalnej.
Na płytce uniwersalnej, a prototypowej są dwa różne tranzystory,
- 1
@bielu000: Nie napisałeś jakim napięciem steruje mikrokontroler na wyjściach i ile prądu potrzebuje ten wentylator. Tranzystor IRL540 ma napięcie sterujące bramką określone na "od 2V do 4V". W większości przypadków pewnie się otworzy przy napięciach bliższych tych 2V, szczególnie dla niskich prądów drenu, jednak może ci się trafić egzemplarz który będzie miał napięcie Ugs bliższe tym górnym widełkom, a jeśli dodatkowo ten wentylator potrzebuje trochę więcej prądu to już prawie na
Komentarz usunięty przez autora
- 0
Mirki brałem udział w dwóch semestrach języka ang na poziomie B2+/C1. O ile materiał jako tako ogarniałem o tyle jeżeli chodzi o gadanie to tak powiedzmy, że średnio bym powiedział, tzn. na 6 osób postawiłbym się tam na 3 miejscu jeżeli chodzi o rozmowy. Zaproponowano mi kontynuację + rozgrzewkę na kursie konwersacyjnym w wakacje na poziomie C1+, a następnie 2 semestry na C1+. I pojawił się problem. Jestem teraz na tym kursie
@bielu000: To zależy od twojego podejścia, jeśli wstydzisz się tego jak mówisz i bycie najsłabszym w grupie Cię blokuje to faktycznie zmień grupę, bo mimo solidnego poziomu na którym się znajdujesz nabawisz się tylko blokady. Jeśli jednak wyznajesz trochę filozofię xD i się nie wstydzisz to możesz to potraktować jako świetną okazję do nauki poprzez otaczanie się słownictwem i zwrotami których jeszcze nie opanowałeś. Ogarnij [parafrazowanie(https://managementhelp.org/blogs/personal-and-professional-coaching/2012/01/26/useful-communications-skills-how-to-paraphrase-and-summarize/) i jak nie do
- 0
Mam problem, chce sterować tranzystorem przez GPIO. Tranzystor to IRL540N Logic level.
Połączenie jak na schemacie poniżej nie działa. Tzn. działa jak zamiast GPIO podepnę 3.3V. Co ciekawe GPIO skonfigurowane jako out, ale w momencie kiedy podpinam je w bramkę transytora to cat value pokazuje 0, a jak odepnę pin to wskazuje tak jak ustawiłem: 1.
Co tu jest nie tak?
#elektronika #rasp
Połączenie jak na schemacie poniżej nie działa. Tzn. działa jak zamiast GPIO podepnę 3.3V. Co ciekawe GPIO skonfigurowane jako out, ale w momencie kiedy podpinam je w bramkę transytora to cat value pokazuje 0, a jak odepnę pin to wskazuje tak jak ustawiłem: 1.
Co tu jest nie tak?
#elektronika #rasp
- 0
@Loperamid: Naryswałem jakieś dziadostwo w paincie bo jak na złośc narzędzie, z którego korzystam wywala jakiś error i nie mogę się zalogować, więc rysunek wziałem pierwszy z brzegu i go tylko lekko zmieniłem. Wiem, słabo wrzucę normalny jak to cholerstwo zacznie działać bo tam mam wszystkie schematy.
- 0
Udało mi się zalogować, tak to wygląda. Ma to służyć do sterowania przekaźnikiem. Bardzo mnie zastanawia dlaczego jak podpnę 3.3V to jest ok, a wysterowanie pinem nic nie daje. Czy może być jakiś problem z masą? Ewentualnie zepsuty tranzystor?
- 0
@atehxx: Wystawiam 1 na GPIO. Tyle, że po wystawieniu value z /sysfs/gpio/gpioX wskzuje mi 0. Po odpieciu pinu od bramki tranzystora nagle pojawia się 1
- 0
Sprawdzę jeszcze te masy
- 0
@atehxx:
- 0
@atehxx: Próbowałem z 1K, 4.7K i w ogóle bez rezystora. Żadnego efektu.
- 0
@credenss: Tak
- 0
@atehxx: Czy po wywaleniu rezystora, oraz odpięciu bramki od GPIO, przykładając multimetr do bramki oraz do masy powinienem słyszeć ciągły sygnał?
- 0
@atehxx: Zdrutowałem na szybko inny tranzystor. Wydaje się działać. Jakim sposobem ten tranzystor sie zepsuł? Trzymałem go przez cały czas w woreczku tym anytelektrostatycznym czy jakoś tak. Sprawdzałem czy działa na płyce prototypowej. Co tu się stało?
- 0
Hej mam pytanie co do RS485. Załóżmy, że z poziomu RaspberryPi chciałbym komunikować się z wieloma urządzeniami podłączonymi do tej samej magistrali. RPI byłoby masterem i to ono inicjowałoby komunikację z innymi urządzeniami. Niemniej jednak nie do końca rozumiem jak te urządzenia powinno się łaczyć. Czy ja dobrze rozumiem, że do każdego urządzenia musiałbym dokupić taki konwerter: klik a następnie stworzyć coś w rodzaju huba? Przygotowałem też schemat jak to sobie wyrobarażam.
- 0
@Tymian: Ale czy generalnie to co ja narysowałem to nie jest to samo? Wszystkie porty na hubie są spięte razem, hub to tylko po to, żeby mieć możliwość wygodnego wpięcia urządzeń do głównej linii. Jeżeli się mylę to proszę o wyjaśnienie :)
- 0
@HamRadioOp: Możesz coś wiecej napisać dlaczego to by nie zadziałało? Absolutnie nie upieram się przy tym co mam, chciałbym wiedzieć dlaczego to nie ma sensu.
- 0
@Tymian: Czyli wywalając konwertery z huba powinno być ok tak? Konwertery na MCU muszą zostać zgadza się?
- 0
@zarowka12: Dzięki wielkie za bardzo obszerne wyjaśnienie!
Mam jeszcze pytanie co do samych konwerterów.
@Tymian:
@atehxx:
@zarowka12:
Czy coś z tej listy powinno być ok? Chciałbym aby było zasilane 3.3V
klik
Nie patrzyłem jeszcze w konkretne datasheeet, ale czy takie układy obstawia się generalnie jeszcze jakimiś dodatkowymi elementami typu kondensatory, rezystory itp?
Mam jeszcze pytanie co do samych konwerterów.
@Tymian:
@atehxx:
@zarowka12:
Czy coś z tej listy powinno być ok? Chciałbym aby było zasilane 3.3V
klik
Nie patrzyłem jeszcze w konkretne datasheeet, ale czy takie układy obstawia się generalnie jeszcze jakimiś dodatkowymi elementami typu kondensatory, rezystory itp?
- 0
@zarowka12: @atehxx:
a czy np zakładając że zrobiłbym sobie taki prosty hub jak wyżej czy miałoby to sens jeżeli dodatkowo oprócz tych linii do danych puściłbym dodatkowo zasilanie? Np hub podpięty do zasilania i dodatkowo każde urządzenie podpięte przez RJ11mialoby zapewnione zasilanie. Ma to sens czy raczej nie?
a czy np zakładając że zrobiłbym sobie taki prosty hub jak wyżej czy miałoby to sens jeżeli dodatkowo oprócz tych linii do danych puściłbym dodatkowo zasilanie? Np hub podpięty do zasilania i dodatkowo każde urządzenie podpięte przez RJ11mialoby zapewnione zasilanie. Ma to sens czy raczej nie?
- 1
- 0
Mirki albo już za późno albo nie wiem bo totalnie już zgłupiałem patrząc na ten schemat. Chce podłaczyć sobie kontaktrony, jako active low.
Czy jest jakaś różnica między połączeniem tym po lewej i tym po prawej czy to jest to samo narysowane inaczej i oba powinny zadziałać?
#elektronika
Czy jest jakaś różnica między połączeniem tym po lewej i tym po prawej czy to jest to samo narysowane inaczej i oba powinny zadziałać?
#elektronika
- 0
- 0
Cześć, patrząc po poradnikach pisania driverów do Linuxa, zauważyłem, że np. w przykładzie jakiegoś drivera, który korzysta z GPIO, numer GPIO jest hardcodowany w źródle drivera. A co jeżeli mam board A, na którym chce wykorzystać GPIO10, oraz board B, na którym ten sam driver chce użyć ale z GPIO25?
#linux #embedded #programowanie
#linux #embedded #programowanie
- 2
- 0
@Rosly: Hej dzięki za informacje . Właśnie tak przeglądając przykładowe pliki device tree, wyglada na to, że to dobre miejsce aby wrzucić np. id gpio, których miałby używać mój driver. O ACPI totalnie nic nie wiem, ale strzelam, że to pewnie robi to samo co DTS ale w inny sposób. Zobacze na to dokładniej.
- 1
Kurde chciałem sobie uruchomić tylko i wyłacznie przerwanie IDLE na STM32F103 i udało się ale dzieje się coś dziwnego - cały czas jestem przerzucany do procedury obsugi przerwania, mimo, że teoretycznie flaga powinna być wyczyszczona, zgodnie z dokumentacją:
It is cleared by a software sequence (an read to the USARTSR register followed by a read to the USARTDR register). as you can see I do it in my code, but
It is cleared by a software sequence (an read to the USARTSR register followed by a read to the USARTDR register). as you can see I do it in my code, but
- 0
@zarowka12: Czy przy -O0 też by mogło coś takiego wystąpić? Przekopiowałem procedurę czyszczenia flag z implementacji w LL od STM i nadal to samo. Breakpoint mi łapie bezpośrednio w miejscach gdzie przypisywane są zmienne więc wydaje mi się, że nie zostały wywalone podczas kompilacji.
- 0
- 0
@bielu000: Zastanawiam się jeszcze nad jednym - w libopencm3 nie w przypadku usart1 dla STM32F103 nie ma żadnej funkcji, która włączałaby przerwanie po wykryciu IDLE. W api jest tylko funkcja, w której ciało wygląda tak:
USARTCR1(usart) |= USARTCR1_RXNEIE;
Ale z drugiej strony są definicje, pozwalające ustawić w CR przerwanie na to zdarzenie. Już się zastanawiam czy może to coś jest nie tak w przypadku tego MCU, ale nie mogę
USARTCR1(usart) |= USARTCR1_RXNEIE;
Ale z drugiej strony są definicje, pozwalające ustawić w CR przerwanie na to zdarzenie. Już się zastanawiam czy może to coś jest nie tak w przypadku tego MCU, ale nie mogę
- 0
@zarowka12: Chcę właczyć przerwanie opisane dokładnie jako: "Idle line detected" na USART1, żadne inne mnie nie interesuje aktualnie.
Nie wdając się zbytnio w szczegóły - potrzebuję tego do wywołania procedury przetwarzania danych, które zostaną przesłane przez USART i które DMA skopiuje do mi bufora. Dane te mogą być zmiennej długości więc przerwania HT oraz TC z DMA nie do końca mi leżą.
Nie wdając się zbytnio w szczegóły - potrzebuję tego do wywołania procedury przetwarzania danych, które zostaną przesłane przez USART i które DMA skopiuje do mi bufora. Dane te mogą być zmiennej długości więc przerwania HT oraz TC z DMA nie do końca mi leżą.
- 0
@zarowka12: Właśnie trafiłem na ten artykuł, prześledzę go i spróbuję zrobić tak jak tam jest. [[maybeunused]] to po prostu atrybut, który mówi kompilatorowi aby mimo, że zmienna jest nieużywana to nie wywalał błędu przy kompilacji. Aktualnie w usart1isr mam skopiowany kod z procedury z LLUSARTClearFlag_IDLE. Niestety nic to nie zmienia. To raczej niemożliwe, aby z chipem było coś nie tak prawda?
- 0
@zarowka12: Tak aktualnie wygląda moja procedura obsługi przerwania klik
- zwykły kod
- przpuszczony przez preprocesor, więc widać na co się rozwijają makra
Muszę to porównać z adresami ze struktur z CMSIS.
Funkcję LLUSARTClearFlag_IDLE wziąłem z kodu źródłowego HAL od STM, tak aby mieć u siebie dokładnie to co oni w tej procedurze.
- zwykły kod
- przpuszczony przez preprocesor, więc widać na co się rozwijają makra
Muszę to porównać z adresami ze struktur z CMSIS.
Funkcję LLUSARTClearFlag_IDLE wziąłem z kodu źródłowego HAL od STM, tak aby mieć u siebie dokładnie to co oni w tej procedurze.
- 0
@zarowka12: Właśnie w tym momencie skończyłem przeglądać kod HAL i też podliczylem te wartości i wyszło mi to samo. UART jest podpięty do konwertera FTDI FT232RL i nic czego jestem świadom nie jest przez niego aktualnie wysyłane.
- 0
@zarowka12: Assembler też wygląda ok, jest read zarówno z SR jak i DR. Nie mam pomysłu co to może być. Jutro spróbuje szukać dalej. Mógłbym pewnie wymyślić jakiś workaround na to, ale bez sensu skoro powinno to działać.
- 0
@zarowka12: Wywiązałem pewną dyskusję na stacku odnośnie tego tematu. Ale czegoś nie rozumiem - czy jeżeli nie wysyłam żadnych danych przez UART, czy flaga IDLE w SR powinna być cały czas zapalona, czy nie?
- 0
@zarowka12 Bo jeżeli tak to zastanawiam się jeszcze nad jedną rzeczą
- wyłaczyć przerwanie IDLE
- włączyć przerwanie RX
- po pierwszym otrzymanym bajcie w isr właczyć przerwanie IDLE, wyłaczyć RX
- po przerwaniu IDLE wyłaczyć... przerwanie IDLE i włączyć ponownie RX.
Tylko nie wiem czy to nie jest workaround.
- wyłaczyć przerwanie IDLE
- włączyć przerwanie RX
- po pierwszym otrzymanym bajcie w isr właczyć przerwanie IDLE, wyłaczyć RX
- po przerwaniu IDLE wyłaczyć... przerwanie IDLE i włączyć ponownie RX.
Tylko nie wiem czy to nie jest workaround.
- 0
@zarowka12: Dlatego też nie chce go robić, to tylko takie moje przemyślenie było.
Ale wracając jeszcze do pytania, tak aby miał pewność, że dobrze rozumiem.
Wlączam przerwanie na IDLE Line Detected, nie wysyłam żadnych danych - czy w tej sytuacji procedura obsługi tego przerawnia powinna być wywoływana (raz, cały czas), czy to przerwanie powinno zostać dopiero wywołane w momencie po otrzymaniu jakichś danych, gdzie nic już więcej nie jest otrzymywane przez
Ale wracając jeszcze do pytania, tak aby miał pewność, że dobrze rozumiem.
Wlączam przerwanie na IDLE Line Detected, nie wysyłam żadnych danych - czy w tej sytuacji procedura obsługi tego przerawnia powinna być wywoływana (raz, cały czas), czy to przerwanie powinno zostać dopiero wywołane w momencie po otrzymaniu jakichś danych, gdzie nic już więcej nie jest otrzymywane przez
- 0
@bielu000: W sumie sam sobie odpowiem -> The IDLE bit will not be set again until the RXNE bit has been set itself (i.e. a new idle line occurs)
- 0
@zarowka12: Tak, prosto z aliexpres.. mam gdzieś drugi taki sam, to najpierw spróbuje z nim, może ten w jakiś sposób uszkodziłem - aczkolwiek nie mam pojęcia jak, bo póki co to ma podpięty jedynie konwerter pod uart i nic więcej.
- 0
Na drugim procku bez zmian - to samo.
- 0
@zarowka12: Tak zrobię, ale to pewnie dopiero może w weekend, bo tutaj nie mam środowiska do używania tych narzędzi od STM.
- 0
@zarowka12: Jeszcze jedno - dodałem w isr kawałek kodu, który sprawdza czy bit IDLE w SR is ustawiony, jeżeli tak to inkrementowany jest pewien licznik.
I teraz dzieją się dwie rzeczy:
- nie ustawiam breakpointa
- wysyłam 20 bajtów
- ustawiam breakpoint
- wysyłam kolejne 20 bajtów
- łapię breakpoint -> licznik jest równy 0...
Drugi scenariusz:
- ustawiam breakpoint
- wysyłam 20 bajtów
- łapię breakpoint
- wchodzę w ifa
I teraz dzieją się dwie rzeczy:
- nie ustawiam breakpointa
- wysyłam 20 bajtów
- ustawiam breakpoint
- wysyłam kolejne 20 bajtów
- łapię breakpoint -> licznik jest równy 0...
Drugi scenariusz:
- ustawiam breakpoint
- wysyłam 20 bajtów
- łapię breakpoint
- wchodzę w ifa
- 0
Czy jest możliwość, że ten konwerter może coś pieprzyć na linii RX?
- 0
Coś jest nie tak z tymi MCU tutaj podobny problem https://community.st.com/s/question/0D50X00009XkfxzSAB/idle-interrupt-on-stm32f0-fires-when-enabling-it
Kolejny podobny problem: https://community.st.com/s/question/0D50X0000BB3Tb7/usart-idle-interrupt-without-rxne
Jak nie dojdę z tym do ładu to kupuje jakieś F4.
Kolejny podobny problem: https://community.st.com/s/question/0D50X0000BB3Tb7/usart-idle-interrupt-without-rxne
Jak nie dojdę z tym do ładu to kupuje jakieś F4.
- 0
@zarowka12:
Uruchomiłem kod od msalamon, breakpoint na UARTDMA_UartIrqHandler i jestem cały czas wrzucany w ową procedurę... Oczywiście nie wysyłam żadnych danych poprzez UART. Jakieś pomysły? Może to ten konwerter coś w ciula gra?
Uruchomiłem kod od msalamon, breakpoint na UARTDMA_UartIrqHandler i jestem cały czas wrzucany w ową procedurę... Oczywiście nie wysyłam żadnych danych poprzez UART. Jakieś pomysły? Może to ten konwerter coś w ciula gra?
- 0
@zarowka12: Niestety nie mam oscyloskopu, ale spróbuję spiąć dwa MCU ze sobą i zobaczymy co wtedy się będzie działo.
- 0
@zarowka12: Podpiąłem dwa MCU.
Master -> Skonfigurowałem USART (bez przewań), zapaliłem LED, zostawiłem w pętli gdzie wykonują się nop-y.
Slave - Skonfigurowałem USART, ustawiłem przerwania na IDLE state, w ISR mrugam diodą w momencie gdy licznik osiąga wartość 3000 (podbijana przy każdym przerwaniu). Efekt jest taki, że wspomniana dioda mruga... czyli przerwania wywołują się cały czas.
Master -> Skonfigurowałem USART (bez przewań), zapaliłem LED, zostawiłem w pętli gdzie wykonują się nop-y.
Slave - Skonfigurowałem USART, ustawiłem przerwania na IDLE state, w ISR mrugam diodą w momencie gdy licznik osiąga wartość 3000 (podbijana przy każdym przerwaniu). Efekt jest taki, że wspomniana dioda mruga... czyli przerwania wywołują się cały czas.
- 0
@zarowka12: Możesz coś więcej na ten temat napisać? W sensie co można by osiągnać przez to?
Przychodzi mi do głowy jeszcze jedynie to, że coś z tymi płytkami jest nie tak. Bo to nie jest do końca ten tzw. blue pill, bo ta płytka ma złącze JTAG. Standardowy blue pill tego nie ma. Aczkolwiek nie wiem co to może zmieniać. Co by tam musiało być namieszane. Mam jeszcze kilka tych "zwyczajnych"
Przychodzi mi do głowy jeszcze jedynie to, że coś z tymi płytkami jest nie tak. Bo to nie jest do końca ten tzw. blue pill, bo ta płytka ma złącze JTAG. Standardowy blue pill tego nie ma. Aczkolwiek nie wiem co to może zmieniać. Co by tam musiało być namieszane. Mam jeszcze kilka tych "zwyczajnych"
- 0
@zarowka12: Rozumiem - póki co odpuściłem temat - tzn. sprawdzę to jeszcze na tym blue pillu (ale to po powrocie do krk, bo pracuje teraz zdalnie poza miastem) - bo tak jak pisałem to co mam ja to troszkę inna płytka - a w międzyczasie kupiłem STM32F4 - i tak miałem się na to przerzucić to lepiej teraz gdy mam mniej kodu do przepisania. Tak w ogóle czy kupienie gołego chipu
- 0
@zarowka12: W sumie masz rację. Dzisiaj prawdopodobnie dojdą do mnie STM32F411CEU6 to przetestuję czy tam to działa prawidłowo.
- 0
@zarowka12: Swoją drogą co sądzisz o tych wszystkich (rt)osach, typu FreeRTOS, TNKernel, TNeo, mbed ect... Pełno tego jest. Z jedej strony wydaje mi się, że fajnie by było się z tym zaznajomić, ale z drugiej strony czułbym się trochę.. "upoźledzony" zdając się na "magię" os-a nie wiedząc co tam się pod spodem dzieje.
- 0
@zarowka12: #!$%@?ąc na chwilę od dyskusji na temat RTOS-ów.
Skonfigurowałem w końcu STM32F4. Chwilę to zajęło, bo api libopencm4 dla F1 i F4 trochę się różni, poza tym trochę zmian przy kompilacji w związku z dodatkowymi rejestrami do operacji zmiennoprzecinkowych na F4.
Kod wygląda tak: klik
Połączenie tak jak było FTDI -> STM32F4
Włączone przerwanie na idle.
I co? I wygląda na to, że działa jak należy... Co prawda zrobiłem dopiero
Skonfigurowałem w końcu STM32F4. Chwilę to zajęło, bo api libopencm4 dla F1 i F4 trochę się różni, poza tym trochę zmian przy kompilacji w związku z dodatkowymi rejestrami do operacji zmiennoprzecinkowych na F4.
Kod wygląda tak: klik
Połączenie tak jak było FTDI -> STM32F4
Włączone przerwanie na idle.
I co? I wygląda na to, że działa jak należy... Co prawda zrobiłem dopiero
- 0
Mirki mam dziwny problem. Kod po otrzymaniu danych przez UART ma je odesłać. Przygotowałem dwie wersje kodu:
- wersja 1 - w main wołam serverrun(), który posiada swoją nieskończoną pętlę.
- wersja 2 - w main w pętli wołam funkcję servertask(), która sprawdza warunek, jeżeli spełniony to odsyła dane. Jedyna różnica co do funkcji server_run() to taka, że tutaj nie ma pętli nieskończonej.
Zresztą zobaczcie sami, kod jest bardzo prosty.
- wersja 1 - w main wołam serverrun(), który posiada swoją nieskończoną pętlę.
- wersja 2 - w main w pętli wołam funkcję servertask(), która sprawdza warunek, jeżeli spełniony to odsyła dane. Jedyna różnica co do funkcji server_run() to taka, że tutaj nie ma pętli nieskończonej.
Zresztą zobaczcie sami, kod jest bardzo prosty.
- 0
@zetisdead: Korzystałem z debuggera. Co ciekawe w pierwszym rozwiązaniu nie łapie mi w ogóle ustawionego breakpointa, w drugim bez problemu.
- 0
Wygląda chyba na jakiś race condition i jak o tym myślę to faktycznie może tak przecież być.
Zmiana kodus serverrun na:
naprawia działanie wersji pierwszej, Muszę to przeanalizowac, gdyż to rozwiązanie zostało napisane dość 'na szybko' aby coś sprawdzić.
Zmiana kodus serverrun na:
void server_run()
{
while(true)
{
cm_disable_interrupts();
size_t s = read_rb.capacity();
cm_enable_interrupts();
if (s >= 64)
{
while (read_rb.capacity() != 0)
{
write_rb.write(read_rb.read());
}
sendData();
}
}
}
naprawia działanie wersji pierwszej, Muszę to przeanalizowac, gdyż to rozwiązanie zostało napisane dość 'na szybko' aby coś sprawdzić.
- 1
@zarowka12: Oczywiście masz rację: Repo -> https://gitlab.com/bielu000
- uartworkingversion
- uartnotworking_version
Najważniejsze pliki:
- src/app/src/main,cpp
- src/app/src/server.cpp
- uartworkingversion
- uartnotworking_version
Najważniejsze pliki:
- src/app/src/main,cpp
- src/app/src/server.cpp
- 0
@zarowka12: Szlag, oczywiście, że nie widzisz bo takiego nie ma. Tutaj jest repo -> https://gitlab.com/bielu000/stm32-libopencm3 chodziło mi oczywiście o branche. Wybacz ale robiłem przy okazji jeszcze coś innego i się zakręciłem :)
- 0
@zarowka12: Tak sprawdzę to jeszcze raz, tylko używając bezpośrednio GDB, bo akutalnie korzystam z VSCdeo i pluginu Cortex-M Debug. Nie miałem z nim póki co problemu, aczkolwiek w tym NIEdziałającym przypadku - sytuacja się trochę zmieniła, bo mimo, że stawiam breakpoint na wywołaniu capacity(), w momencie wysłania danych z PC, owszem breakpoint jest łapany przez debugger, ale przerzuca mnie do usart1_isr(), gdzie w ogóle breakpointa nie mam. Dodatkowo wyłączenie przerwań -
- 0
@zarowka12: Interesujące, w read_rb, mam capacity = 64 bajty, czyli otrzymane dane faktycznie wleciały do bufora. W związku z tym powineinem wejść w blok ifa, ale nie wchodzę. Próbowałem innych warunków typu >=, lub 54 zamiast 64 i nic. Inwestyguję dalej.
- 0
@bielu000: Co ciekawe w takiej formie funkcja działa:
Dane są wpisane do bufora gdzieś u góry w inicie. Raz na stałe.
void server_run()
{
while(true)
{
if (read_rb.capacity() == 64)
{
// while (read_rb.capacity() != 0)
// {
// write_rb.write(read_rb.read());
// }
sendData();
}
}
}
Dane są wpisane do bufora gdzieś u góry w inicie. Raz na stałe.
- 0
@zarowka12: Testuję jeszcze w vscode. Nie mam pojęcia dlaczego, ale ten drugi breakpoint (x = 100), nie jest łapany, mimo, że wartość zmiennej xsize == 64.
Może coś przez to, że ten ring buffer jest akutalizowany zarówno z przerwania jak i z pętli głównej?
Może coś przez to, że ten ring buffer jest akutalizowany zarówno z przerwania jak i z pętli głównej?
- 0
@zarowka12: Zgadza się, kiedy chcę odesłać dane z powrotem, nic już do tego bufora nie jest ładowane, więc też mi to nie pasuje. Kompiluję z -O0 więc raczej żądnych agresywnych optymalizacji nie ma.
- 0
@zarowka12: Niestety nie. W ogóle jakby nie chciał wskoczyć do tego bloku. Jutro jeszcze to sparwdzę bezpośrednio w gdb i rzuce okiem na assembly, choć wątpię, że będzie tam coś ciekawego. Jak dla mnie bardzo dziwna sprawa. Jak wspomniałem wcześniej - jeżeli dane wpiszę na stałe do bufora, np. w wywołaniu serverinit(), to po otrzymaniu 64 bajtów, dane odsyłane są bez problemu (oczywiście te zahardcodowane), bo w tym przypadku nie
- 0
@zarowka12: Tak to wygląda: https://pastebin.pl/view/b2547ef5
Zmieniłem warunek na >= ale nic to nie daje. Podglądałem zawartość zmiennej xsize, tej która trzyma capacity bufora i zwiększa się odpowiednio do otrzymanych danych. Tj. najpierw 0 -> 64 -> 128 - 192 etc.
Zmieniłem warunek na >= ale nic to nie daje. Podglądałem zawartość zmiennej xsize, tej która trzyma capacity bufora i zwiększa się odpowiednio do otrzymanych danych. Tj. najpierw 0 -> 64 -> 128 - 192 etc.
- 0
@zarowka12: Znalazłem poszlakę...
- -O0 - działa
- -O1 - nie działa
CMAKEBUILDTYPE -> Debug && -O0 -> działa
CMAKEBUILDTYPE -> Release && -O0 -> nie działa
- -O0 - działa
- -O1 - nie działa
CMAKEBUILDTYPE -> Debug && -O0 -> działa
CMAKEBUILDTYPE -> Release && -O0 -> nie działa
- 0
@zarowka12: Ciekawe, dodaje screena. Po lewej używałem -O1, a do funkcji serverrun dodałem attribute_((optimize("-O0"))). I to działa.
Po prawej również -O1 ale bez atrybutu, jednak tu nie działa.
Po prawej również -O1 ale bez atrybutu, jednak tu nie działa.
- 0
@zarowka12: Zmieniłem trochę kod: std::atomic xsize = read_rb.capacity(); i teraz działa...
- 0
Ale wydaje mi się, że to nie rozwiązanie, a po prostu schowałem buga w jakiś sposób.
- 0
@zarowka12: Ostatni raz wołam bo wiem, że już trochę dupę zawracam :D Nie do końca widzę, aby gdzieś w kodzie było UB, które mogłoby się uaktywnić przy agresywniejszej optymalizacji. A teraz moje pytanie - czy jest opcja, aby kompilator zrobił rozwinął inline kilka wywołań funkcji, przez co kod nie działał poprawnie? Przerzuciłem implementację Ring buffera z .hpp do .cpp i teraz działa. Czy to raczej kolejne przykrycie buga?
- 0
@zarowka12: Muszę zobaczyć jak to wygląda w przypadku C++, bo z tego co wiem volatile ma być deprecated w cpp20. Ale chyba można skorzystać z std::atomic.
- 0
@zarowka12: Ale zostańmy na chwilę przy volatile.
Skoro mam obiekt reprezentujący ringbuffer, na którym wywołuję metody write(w przerwaniu), read w pętli programu - to co właściwie powinno być volatile? Deklaracja zmiennej reprezentującej ten bufor, czy może indexy nawigujące w buforze? Mam na myśli tail oraz head.
Skoro mam obiekt reprezentujący ringbuffer, na którym wywołuję metody write(w przerwaniu), read w pętli programu - to co właściwie powinno być volatile? Deklaracja zmiennej reprezentującej ten bufor, czy może indexy nawigujące w buforze? Mam na myśli tail oraz head.
- 0
@zarowka12: Właśnie czytam szczegóły jak to wygląda z tym volatile http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1152r0.html#inC i jest tak jak mówisz.
- 1
Macie jakieś dobre materiały na temat tego jak handlować komunikację poprzez układ UART? Nie mam na myśli konfiguracji samego układu bo to sobie znajdę w manualu. Mam na myśli coś innego - jakieś dobre praktyki, może jak zaprojektować warstwy od tych wysokopoziomowych do niskopoziomowych (ale bez szaleństw, celuje w MCU). Tak swoją drogą materiały nie muszą być oczywiście stricte związane z programowaniem MCU, ale może coś związanego z embedded Linux ,w końcu
- 0
@elfo: Nie sprawdzałem, natomiast nie chce nic tykać przy ESP8266. Oczywiście zdaję sobie sprawę, że są lepsze rozwiązania (zapewne to o którym wspomniałeś), natomaist możemy założyć że ze względów edukacyjnych chce się skupić na implementacji rozwiązania na STM. ESP8266 nie ruszam.
- 0
@elfo: Bez RTOS-a. Tzn. może sprecyzuję - nie chce gotowego rozwiązania na tacy. Przypuszczam, że RTOS i scheduling rozwiązałoby wiele problemów. Bardziej chodzi mi o ideę i dlaczego będę miał problem nie korzystając z RTOS-a, oraz na jakie inne problemy mogę natrafić próbując coś takiego zaimplementować.
- 0
@zarowka12: O dzięki, z tymi timeoutami to w sumie bardzo sensowne.
- 0
@zetisdead
@zarowka12
Zastanawiam się nad czymś takim:
Pomijając już protokół http. Myślałem, żeby ustawić stałą długośc ramki, np. 48 bajtów.
Wykorzystałbym DMA do kopiowania danych UART -> memory. Za każdym razem kiedy otrzymam 48 bajtów, parsuję sobie ramkę, jeżeli wszystko jest ok, handluję wiadomość itp, później odsyłam. Czy muszę mieć dwie kolejki fifo? Jedna do odbierania, druga do nadawania?
A co sądzicie o tym rozwiązaniu, że za pomocą tego samego medium (mam
@zarowka12
Zastanawiam się nad czymś takim:
Pomijając już protokół http. Myślałem, żeby ustawić stałą długośc ramki, np. 48 bajtów.
Wykorzystałbym DMA do kopiowania danych UART -> memory. Za każdym razem kiedy otrzymam 48 bajtów, parsuję sobie ramkę, jeżeli wszystko jest ok, handluję wiadomość itp, później odsyłam. Czy muszę mieć dwie kolejki fifo? Jedna do odbierania, druga do nadawania?
A co sądzicie o tym rozwiązaniu, że za pomocą tego samego medium (mam
- 0
- 0
@elfo: @elfo: W sumie racja, całkiem sensowne. W ogóle mam wrażenie, że ciężko znaleźć jakieś fajne przykłady jak to wszystko wykrzystać w praktyce, więc zapewne będę trochę improwizowal :)
@anuar2k: Dzięki jak coś to odezwę się :) Robiłem już coś kiedyś podobnego ale po USB i wszystko działało, tyle, że tamto było dużo prostsze. Tutaj mimo wszystko chciałbym odspearować trochę warstw. Tzn. mam na myśli coś w stylu
Serwer
@anuar2k: Dzięki jak coś to odezwę się :) Robiłem już coś kiedyś podobnego ale po USB i wszystko działało, tyle, że tamto było dużo prostsze. Tutaj mimo wszystko chciałbym odspearować trochę warstw. Tzn. mam na myśli coś w stylu
Serwer
- 0
W ogóle - tak przy okazji - współpracuje teraz w pracy z gośćmi, którzy u nas w fimie zajmują się właśnie rzeczmi bardzo blisko systemu operacyjnego i właśnie jest problem z handlowaniem danych przez UART. Ja supportuje ich z warstwy wyżej, gdzie kodzimy już faktyczną logikę biznesową i korzystamy z interfejsów jakie nam udostępniają. Cholera zazdroszczę im, bo tam zajebiste rzeczy muszą robić :D Szkoda, że to zagraczny zespól, bo ciężko bedzie
- 0
- 0
@HetmanPolnyKoronny: @ghost1511: @eNse:
Dzięki, coś czytałem już wcześniej opinie na necie i właśnie słyszałem, że jest w miarę okej. W sumie za tą cenę to wart przetestować.
@kipowrot: auxa już dawno miałem zrobić ale w sumie przyzwyczaiłem się już, że nie muszę nic wpinać do telefonu - ostatnio słucham muzyki na słuchawkach bezprzewodowych. Z tego co tutaj wyżej pisali to jest już wersja 3s, więc może między 3s,
Dzięki, coś czytałem już wcześniej opinie na necie i właśnie słyszałem, że jest w miarę okej. W sumie za tą cenę to wart przetestować.
@kipowrot: auxa już dawno miałem zrobić ale w sumie przyzwyczaiłem się już, że nie muszę nic wpinać do telefonu - ostatnio słucham muzyki na słuchawkach bezprzewodowych. Z tego co tutaj wyżej pisali to jest już wersja 3s, więc może między 3s,
- 0
@kipowrot: Nie znałem tego, brzmi to całkiem dobrze, a czy jest możliwość zasilenia tego jakoś inaczej, tak żebym miał dalej napięcie w zapalniczce? Mimo wszystko coś jakiś czas ładuje sobie telefon podczas jazdy.
- 0
@kipowrot: Okej super, dzięki wielkie za informacje. To rozwiązanie bardziej mnie przekonuje niż ten transmiter :)
- 0
@noiwyladowal: Czy te gniazda latarki to w każdym e46 jest? Jakoś nie kojarzę czegoś takiego u siebie, chyba że słabo patrzyłem.
- 0
Spędzam codziennie dużo czasu przy kompie - w pracy i w domu więc chciałbym trochę zadbać o oczy bo mam wrażenie że trochę pogorszył mi się wzrok. Prawdopodobnie za jakiś czas będę musiał skorzystać z okularów korekcyjnych, natomiast zastanawiam się czy korzystanie z tzw. okularów do komputera, które rzekomo chronią przed szkodliwym niebieskim światlem ma w ogóle jakiś sens? Ktoś korzysta i może coś na ten temat napisać?
#okulary #okulista #kiciochpyta #
#okulary #okulista #kiciochpyta #
konto usunięte via Wykop Mobilny (Android)
- 13
To już ostatnia kontrola nadgarstków w tym roku #zegarki #watchboners
- 4
- 0
Zastanawiam się nad #casio GPR-B1000-1ER. W necie widziałem kilka pozytywnych recenzji, natomiast z recenzjami to różnie bywa. Czy ktoś z was mirki posiada ten sikor i mógłby coś na ten temat powiedzieć? Czy korzystacie z niego na codzień czy raczej jest zbyt uciążliwy przez swoje gabaryty? Jakieś szczególne wady czy zalety?
#zegarki
#zegarki
- 0
- 0
@jathek: dzięki wielkie za informacje. Przed chwilą mierzyłem i świetnie leży - bardzo mi się spodobał. Aczkolwiek myślałem, że będzie cięższy bo takie wrażenie sprawiał na zdjęciach :)
- 0
@jathek: Pięknie się prezentują :) Trochę mało ofert na allegro czy olx. Mam nadzieję, że po nowym roku pokaże się coś tego więcej w sensownych cenach :)
- 0
- 0
@patrol798: Tak chodziło mi o podróbkę, bo mam wrażenie, że gdzieś mi się przewinęła na jakichś grupach z chińskim sprzętem.
- 0
@patrol798: Racja wygląda zdecydowanie inaczej. Zastanawia mnie jeszcze jedna rzecz - mam ofertę, po zdjęciach widać że zegarek z dystrybucji Zibi. Dowiedziałem się od sprzedawcy, że wystawia gwarancje w momencie zakupu. Na jakiej zasadzie w takim razie to może być? On kupuje od Zibiego, a następnie sprzedaje też jako przedsiębiorca skoro gwarancja obowiązuje od momentu kiedy on go sprzeda? Zapytam sprzedawcę o to, ale dobrze by było, żebym się chociaż troszkę
- 1
- 0
@jathek: Ostatecznie wyszło 2625zł :) Nie jakoś szczególnie tanio, ale ceny oscylują mimo wszystko w okolicach 3000 zł.
- 2
1) Czy korzystacie z Fit image w swoich konfiguracjach czy nie? Jeżeli tak, to czy w wynikowym obrazie (np. na partycji boot) powinien się zawierać plik fit image czy np. powinien też być Image. Moim zdaniem tylko fitImage, jako, że on już zawiera obraz kernela.
2) Czy w Yocto, zmiany w np. u-boocie, które da się ogarnać np. configiem - np. CONFIG_BOOTARGS,
ja już jakiś (dłuższy) czas nie dłubałem z tej strony, ale z tego co pamiętam, nie używaliśmy fitimage, a szkoda, jak sobie przeczytałem artykuł to fajna koncepcja. Pytanie tylko jak z aktualizacją czegoś takiego, zdaje się że w tym przypadku musiałbyś po prostu lecieć modelem A-B jeśli się zaktualizował i zbootował z B to się udało, jak nie to wracamy do bootowania A.
Co do Yocto to wydaje mi się