Page 3 of 7

TDD w Systemach Embedded – moje pierwsze poprowadzone szkolenie

Ostatnio miałem trochę przerwy od pisania na blogu. Nie oznacza to jednak, że w tym czasie leżałem do góry brzuchem. Większość mojego czasu pochłaniały przygotowania do przeprowadzenia pierwszego w życiu szkolenia – „Test Driven Development dla Systemów Embedded”.

Czytaj dalej

Testy RAM – algorytmy

Ten artykuł jest kontynuacją tematu testów pamięci RAM rozpoczętego w poprzednim wpisie – link. Poprzednio przybliżyłem trochę ogólnych informacji dotyczących RAMu i jego testowania. Dzisiaj zajmę się omówieniem konkretnych algorytmów. Nie udostępniam swojej implementacji opisanych tutaj testów, podaję za to linki do bibliotek producentów mikrokontrolerów, którzy takie testy zaimplementowali i opisali w notach katalogowych.

Czytaj dalej

Testy RAM – wprowadzenie

Pamięć RAM, jak każdy inny element systemu mikroprocesorowego może się zepsuć. Skutki złego działania RAM mogą być bardzo niebezpieczne. Szczególnie kiedy system wykonuje jakieś odpowiedzialne zadanie. Dlatego testy RAM są wymagane do zapewnienia odpowiedniego SIL (Safety Integrity Level – Poziom Nienaruszalności Bezpieczeństwa) przez różne normy:

  • IEC 60730 – Safety standard for household appliances.
  • IEC 61508 – Functional Safety of Electrical/Electronic/Programmable Electronic Safety-related Systems
  • IEC 61513 – Instrumentation & Control for Systems Important to Safety in Nuclear Power Plants
  • EN 50129 – Railway applications. Communication, signalling and processing systems. Safety related electronic systems for signalling
  • IEC 60601 – Medical electrical equipment – Part 1-2: General requirements for basic safety and essential performance

W ostatnim czasie w pracy spędziłem sporo czasu na pisaniu testów poprawności działania mikrokontrolera, w tym testów pamięci RAM. Postanowiłem więc podzielić się zgromadzoną wiedzą.

Czytaj dalej

Integracja funkcji printf z UARTem

Aby ruszyć dalej z pracami nad micromousem, potrzebuję funkcji logujących dane z działania programu na konsolę w czasie rzeczywistym. Są mi one potrzebne do kalibracji czujników ścian i doboru nastaw dla regulatorów silników. Idealnym rozwiązaniem było by wykorzystanie standardowej funkcji printf. Na mikrokontrolerze jednak nie jest to takie proste, ponieważ trzeba dopisać warstwę obsługi drivera USARTa. Poza tym należy rozwiązać pewne problemy implementacyjne. To wszystko opiszę w tym artykule. Poza tym kod data loggera oraz drivera USART jest dostępny na moim GitHubie.

Czytaj dalej

Ciekawe blogi uczestników DSP

W dzisiejszym wpisie zebrałem listę ciekawych blogów uczestników DSP. Większość wybranych przeze mnie pozycji jest dosyć zaawansowana technicznie. Poruszane w nich problemy są często trudne i właśnie przez to interesujące. Linki do innych ciekawych blogów, i może trochę łatwiejszych w odbiorze, można znaleźć we wpisie o gali finałowej – link.

Czytaj dalej

Podsumowanie DSP2017

Konkurs Daj Się Poznać to świetna inicjatywa mająca za zadanie skłonić programistów do wyjścia ze swojej piwnicy. Uczestnicy mają przed sobą dwa zadania – prowadzić bloga technicznego i rozwijać projekt open source. Obie te aktywności skupiają się na udostępnieniu innym osobom naszego kodu, doświadczeń, czy luźnych przemyśleń, a tym samym wystawieniu się na oceny i krytykę. Pewnie nie tylko dla mnie ta wizja wydawała się przerażająca. Jednak okazało się, że dzielenie się swoimi doświadczeniami daje dużo satysfakcji, a ten początkowy lęk ma też pozytywny aspekt objawiający się dokładnym przygotowaniem merytorycznym do każdego wpisu. W końcu nie chcę napisać jakiś bzdur i wyjść na debila 😀

Czytaj dalej

Gala finałowa Daj Się Poznać 2017

Konkurs Daj Się Poznać 2017 dobiegł końca i przyszedł czas na podsumowanie. Nie chciałem brać się za to dopóki mój udział się nie zakończy. Byłem przekonany, że stanie się to po ogłoszeniu wyników głosowania zamkniętego. Jednak ku mojemu wielkiemu zaskoczeniu znalazłem się wśród 25 finalistów, którzy przeszli do otwartego głosowania. Ostatecznie uplasowałem się na 12 miejscu gromadząc 232 punkty. Moje zaskoczenie było jeszcze większe, kiedy okazało się, że zostałem wyróżniony przez jednego ze sponsorów konkursu – firmę Ivanti. Dziękuje w tym miejscu wszystkim, którzy głosowali, a także tym, którzy wchodzą na bloga i czytają to, co piszę.

Wracając pociągiem z Warszawy zacząłem sobie zapisywać, o czym chciałbym wspomnieć w podsumowaniu konkursu. Tematy, jakie chcę poruszyć to:

  • Gala finałowa
  • Podsumowanie mojego udziału
  • Ciekawe blogi innych uczestników
  • O czym chciał bym wiedzieć przed startem / porady dla uczestników przyszłych edycji
  • Dalsze plany

Wyszło tego naprawdę dużo i na pewno nie zmieszczę się ze wszystkim w jednym poście. Dzisiaj skupię się tylko na gali finałowej. Kolejne elementy z listy będą pojawiać się w następnych wpisach.

Czytaj dalej

Modyfikator const w C

Po omówieniu modyfikatora volatile w poprzednim wpisie, dzisiaj zajmę się drugim podobnym modyfikatorem – const. Modyfikator const jest często przedstawiany jako sposób deklarowania stałych liczbowych. W artykule wytłumaczę, dlaczego do definiowania pojedynczych stałych liczbowych lepiej nadają się inne mechanizmy oraz jak używać const w deklaracjach funkcji, aby uzyskać lepszą kontrolę typów.

Czytaj dalej

Jak używać modyfikatora volatile

Dzisiaj omówię element składni języka C, który jest rzadko tłumaczony większości kursów. W książce K&R został wspomniany zaledwie w trzech zdaniach, które zupełnie nie sugerowały, że może on być ważny. Chodzi o modyfikator volatile. Jego nieprawidłowe stosowanie może powodować:

  • Błędne działanie programu po włączeniu optymalizacji.
  • Błędne działanie programów wykorzystujących przerwania lub współbieżność.
  • Problemy z obsługą sterowników sprzętu.
  • Problemy z wydajnością programu.

Czytaj dalej

Robot jeździ o własnych siłach

Problemem na którym zatrzymałem się ostatnio podczas próby wprawienia robota w ruch (link) było przeniesienie napędu z silnika na koła. Osią obrotu koła jest jest śruba przechodząca przez mocowanie silnika. Jest ona dokręcana za pomocą nakrętki, co widać na poniższym zdjęciu.Kiedy nakrętka jest wkręcona za mocno, występuje opór przy próbie obrotu koła. Zębatka na wale silnika przestaje się wtedy kręcić. Po poluzowaniu śruby, koło dobrze się kręci, ale nakrętka zaczyna się odkręcać i po jakimś czasie wypada. Rozwiązaniem mojego problemu okazał się klej do śrub. Dzięki sklejeniu nakrętki ze śrubą, nie odpada ona podczas obracania się koła. Nie muszę więc tak mocno skręcać śruby i koło może swobodnie się kręcić.

Po zamontowaniu kół i sklejeniu śrub robot mógł w końcu wyruszyć w swą pierwszą trasę. Została ona uwieczniona na filmiku:

Czytaj dalej

© 2017 ucgosu.pl

Theme by Anders NorénUp ↑