O usłudze
PrzetłumaczoneJestem inżynierem systemów wbudowanych i piszę oprogramowanie niskiego poziomu, które sprawia, że sprzęt działa. Każdego dnia programuję w C dla mikrokontrolerów takich jak STM32, ESP32, AVR i Nordic, przechodząc od kart katalogowych i schematów bezpośrednio do rejestrów, gdy jest to potrzebne. Ręcznie konfiguruję zegary, przerwania, DMA i peryferia, potrafię odczytywać przebiegi z oscyloskopu i analizatora logicznego, aby zrozumieć, dlaczego magistrala nie działa poprawnie. Gdy projekt wymaga struktury, uruchamiam system operacyjny czasu rzeczywistego, dzielę pracę na zadania z przemyślanymi priorytetami i używam kolejek, semaforów i flag zdarzeń, aby utrzymać przewidywalność czasową, a nie polegać na nadziei i jednej dużej pętli.
Większość mojej pracy polega na komunikacji ze światem fizycznym. Piszę i debuguję sterowniki dla czujników, wyświetlaczy, pamięci i modułów radiowych przez I2C, SPI i UART, a na ich podstawie implementuję lub dostosowuję protokoły wyższego poziomu. Efektywność energetyczna ma dla mnie znaczenie: profiluję pobór prądu, konfiguruję tryby uśpienia i źródła budzenia oraz tworzę oprogramowanie układowe, aby urządzenie zasilane baterią działało przez miesiące, a nie dni. Niezawodność jest również częścią wyniku — dodaję timery watchdog, obsługę spadków napięcia, kontrole CRC i staranny bootloader, aby urządzenie w terenie mogło się odzyskać i bezpiecznie zaktualizować, a nie stać się cegłą.
Możesz mnie zatrudnić, aby uruchomić nową płytkę od podstaw, uratować utkniony projekt oprogramowania układowego, napisać konkretny sterownik, podłączyć czujnik lub zmniejszyć pobór energii istniejącego produktu. Piszę czytelny kod z jasnymi komentarzami, trzymam go pod kontrolą wersji i przekazuję coś, co następny inżynier może wspierać. Powiedz mi, jaki chip, peryferia i cele produktu — a ja przedstawię realistyczny plan i oprogramowanie układowe, które działa tak samo na stole, jak i w produkcji.
— Oprogramowanie układowe bare-metal i RTOS w C (FreeRTOS, Zephyr)
— Uruchamianie MCU: zegary, przerwania, DMA, timery, GPIO
— Sterowniki urządzeń dla I2C, SPI, UART i 1-Wire
— Podłączanie czujników, wyświetlaczy, pamięci i modułów radiowych
— Efektywność energetyczna: tryby uśpienia, profilowanie prądu
— Bootloadery, aktualizacje oprogramowania układowego i odzyskiwanie w terenie
— Debugowanie przez JTAG/SWD, analizator logiczny i oscyloskop
Większość mojej pracy polega na komunikacji ze światem fizycznym. Piszę i debuguję sterowniki dla czujników, wyświetlaczy, pamięci i modułów radiowych przez I2C, SPI i UART, a na ich podstawie implementuję lub dostosowuję protokoły wyższego poziomu. Efektywność energetyczna ma dla mnie znaczenie: profiluję pobór prądu, konfiguruję tryby uśpienia i źródła budzenia oraz tworzę oprogramowanie układowe, aby urządzenie zasilane baterią działało przez miesiące, a nie dni. Niezawodność jest również częścią wyniku — dodaję timery watchdog, obsługę spadków napięcia, kontrole CRC i staranny bootloader, aby urządzenie w terenie mogło się odzyskać i bezpiecznie zaktualizować, a nie stać się cegłą.
Możesz mnie zatrudnić, aby uruchomić nową płytkę od podstaw, uratować utkniony projekt oprogramowania układowego, napisać konkretny sterownik, podłączyć czujnik lub zmniejszyć pobór energii istniejącego produktu. Piszę czytelny kod z jasnymi komentarzami, trzymam go pod kontrolą wersji i przekazuję coś, co następny inżynier może wspierać. Powiedz mi, jaki chip, peryferia i cele produktu — a ja przedstawię realistyczny plan i oprogramowanie układowe, które działa tak samo na stole, jak i w produkcji.
— Oprogramowanie układowe bare-metal i RTOS w C (FreeRTOS, Zephyr)
— Uruchamianie MCU: zegary, przerwania, DMA, timery, GPIO
— Sterowniki urządzeń dla I2C, SPI, UART i 1-Wire
— Podłączanie czujników, wyświetlaczy, pamięci i modułów radiowych
— Efektywność energetyczna: tryby uśpienia, profilowanie prądu
— Bootloadery, aktualizacje oprogramowania układowego i odzyskiwanie w terenie
— Debugowanie przez JTAG/SWD, analizator logiczny i oscyloskop