<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=24438&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2023-03-28T11:02:12+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=24438&amp;mode</id>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2023-03-28T11:02:12+01:00</updated>
<published>2023-03-28T11:02:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24438&amp;p=236764#p236764</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24438&amp;p=236764#p236764"/>
<title type="html"><![CDATA[Re: Rozmowy kwalfikacyjne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24438&amp;p=236764#p236764"><![CDATA[
<div class="quotetitle">Rafal9018 napisał(a):</div><div class="quotecontent"><br />Cześć,<br /><br />Panowie i być może Panie. Podzielcie się proszę jakie mieliście pytania na rozmowach kwalifikacyjnych na programistę (oczywiście jeżeli są tu takie osoby). Przygotowuję się do własnej i zbieram informacje  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><br /></div><br /><br />I jak, dostałeś tą robotę? <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 28 mar 2023, o 11:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2023-03-22T13:59:35+01:00</updated>
<published>2023-03-22T13:59:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24438&amp;p=236724#p236724</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24438&amp;p=236724#p236724"/>
<title type="html"><![CDATA[Re: Rozmowy kwalfikacyjne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24438&amp;p=236724#p236724"><![CDATA[
<div class="quotetitle">nick_czemnik napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">Rafal9018 napisał(a):</div><div class="quotecontent">Faktycznie jakaś zaćma, jedno myślę a piszę drugie. Ale dzięki za przypomnienie i wyjaśnienie.<br /></div><br /><br />Kumam. Każdemu się zdarza podstaw zapomnieć.<br /><br />Na rozmowę o pracę na programistę embedded (jak mniemam) ja zawszę pytam ludziów według wzorca który mamy w firmie. Poniżej zagadnienia które trzeba znać zanim w ogóle zacznę zadania z kodowania.<br /><br /><strong>BUDOWANIE</strong><br />- etapy kompilacji pokrótce opisać. Mamy pliki .c i .h i chcemy z nich zrobić program. Jakie musimy wywołać komendy, co zrobi po ich wywołani kompilator. Nie oczekuje znajomości systemów wspomagających budowanie (cmake, unix makefiles, ninja)<br />- co to są sekcje .text, .data , .bss itd<br />- po co nam skrypt linkera<br /><br /><strong>PROGRAMOWANIE W C</strong><br />- dyrektywy PREPROCESORA i MAKRA - temat rzeka. Różnica między funkcją inline a makrem. Kiedy czego możemy użyć.<br />- wszystkie znaczenia słowa static w C<br />- arytmetyka wskaźników (<strong>BARDZO WAŻNE!</strong>)<br />- wskaźnik na stałą a stały wskaźnik - różnice<br />- różnica między unią a strukturą<br />- po co nam typy zmiennych uintX_t skoro mamy nazwy jak int long unsigned long itd<br />- jak wymienić strukturę danych między dwoma procesorami o różnej architekturze np poprzez SPI<br />- jaki rzeczwisty rozmiar w pamięci będzie miała struktura danych jak poniżej i czy możemy myć tego zawsze pewni:<br />[syntax=c]struct x<br />{<br />    uint8_t a;<br />    uint32_t b;<br />};[/syntax]<br />- słowo kluczowe const - po co ono nam w ogóle<br />- słowo kluczowo <strong>volatile</strong> - po co ono nam w ogóle<br />- różnica miedzy stosem a stertą, przepełnienie stosu, fragmentacja sterty<br />- dlaczego w systemach embedded gdzie mamy mikrokontroler zazwyczaj nie używamy dynamicznej alokacji pamięci z użyciem malloc() i free()<br />- wskaźniki na funkcje, jak zadeklarować i po co nam one<br />- czy możemy w C pisać obiektowo<br />- różnica między little endian i big endian - jak napisać procedurę sprawdzającą na jakiej architekturze działa nasz program<br />- przekazywanie przez wartość i przekazywanie przez wskaźnik - główna różnica<br />- co się stanie gdy zwrócimy wskaźnik do zmiennej lokalnej i czy taki kod się skompiluje i czy zadziała:<br />[syntax=c]uint32_t *foo(uint32_t inout)<br />{<br />    uint32_t result = 100;<br />    result += inout;<br />    return &amp;result;<br />}<br /><br /><br />int main ()<br />{<br />  uint32_t *ptr = foo(32);<br />  printf(&quot;ptr == %p, *ptr == %u&quot;, ptr, *ptr);<br />  return 0;<br />}[/syntax]<br />- priorytety operatorów w C<br />- domyślna promocja typów w C - dlaczego czasem może być to bardzo złe<br /><br />ogólnie tak można w nieskończoność. Sprawdzam w ten sposób czy kandydat rzeczywiście zna C czy tylko myśli że zna <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><strong>SPRAWY OKOŁOMIKROKONTROLEROWE I PODSTAWY ELEKTRONIKI CYFROWEJ</strong><br />- różnica między architekurą harvardzką a von neumanna<br />- różnica między CISC a RISC<br />- co to jest vector przerwań<br />- co to są przerwania<br />- jak działają przerwania<br />- jak działają priorytety przerwań<br />- pytania o peryferia takie jak UART, SPI, I2C, CAN<br />- co to jest PWM<br />- jak działa przetwornik ADC SAR<br />- bramki logiczne AND, NAND, OR, NOR, XOR, XNOR<br />- jak podłączyc do mikrokontrolera np przekaźnik albo brzęczyk<br />- co to jest MMU, a co to jest MPU, po co w ogóle MMU<br /><br />jak mi coś wpadnie do głowy jeszcze to dopisze <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br /><div class="quotetitle">Jarecki napisał(a):</div><div class="quotecontent"><br />Zerknij sobie na to zadanko poniżej. Zastanów się jaki będzie wynik a na końcu skompiluj i zobacz, czy taki jak zakładałeś <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Składnia: [ Pobierz ] [ Ukryj ]<br />język c<br /><br />    #define BLOCK(x) (x*x*x)<br />     <br />    void fun(void)<br />    {<br />        uint32_t x = 5;<br />        uint32_t y = 0;<br />     <br />        y = BLOCK(x++);<br />     <br />        printf(&quot;BLOCK = %d&quot;, y);<br />    }<br /><br />GeSHi<br /></div><br /><br />Kolega Jarecki, bardzo fajny przykład jak nie pisać kodu w C <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> ale na rozmowę pytanko dobre <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /></div><br /><br />Pięknie Kolega nick_czemnik wypunktował, faktycznie można tymi pytaniami duuuuużo zweryfikować<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 22 mar 2023, o 13:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafal9018]]></name></author>
<updated>2023-03-22T08:49:18+01:00</updated>
<published>2023-03-22T08:49:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24438&amp;p=236719#p236719</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24438&amp;p=236719#p236719"/>
<title type="html"><![CDATA[Re: Rozmowy kwalfikacyjne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24438&amp;p=236719#p236719"><![CDATA[
<div class="quotetitle">nick_czemnik napisał(a):</div><div class="quotecontent"><br />https://onlinegdb.com/AWTOhowj0<br /><br />możesz sobie to sprawdzić powyżej.<br /><br />Nie mniej.<br /><br />A adresy będą zawsze:<br /><br />[syntax=c]ptr1 == 0x4004<br />ptr2 == 0x4001[/syntax]<br /><br />dlaczego? ciężko się takie podstawy tłumaczy zwłaszcza jak ktoś chce iść na rozmowę o pracę... no ale zakładam że masz jakąś wskaźnikową zaćme.<br /><br />[syntax=c]uint32_t *ptr1 = 0x4000; // inicjalizujesz wskaźnik ptr1 adresem 0x4000<br />uint8_t *ptr2 = ptr1; // inicjalizujesz ptr2 adresem na który wskazuje ptr1, teraz ptr1 i ptr2 wskazują na tę samą komórkę pamięci. Swoją drogą inicjalizacja wskaźnika jakimś randomowym adresem to proszenie się o segfault ale jak mnie mam to przykład edukacyjny...<br />ptr1++; // inkrementacja ptr1, w związku że to wskaźnik na uint32_t czyli 4 bajtowego uinta, wskaźnik jest na pozycji 0x4000 + 4 czyli 0x4004<br />ptr2++; // inkrementacja ptr2, w związku że to wskaźnik na uint8_t czyli 1 bajtowego uinta, wskaźnik jest na pozycji 0x4000 + 1 czyli 0x4001[/syntax]<br /><br />I zawsze będzie tak samo. Bo niby czemu miałoby byc inaczej przy każdej kompilacji skoro zawsze ptr1 ustawiasz na tę samą wartość?<br /></div><br /><br /><br />Faktycznie jakaś zaćma, jedno myślę a piszę drugie. Ale dzięki za przypomnienie i wyjaśnienie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3441">Rafal9018</a> — 22 mar 2023, o 08:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2023-03-22T08:15:36+01:00</updated>
<published>2023-03-22T08:15:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24438&amp;p=236717#p236717</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24438&amp;p=236717#p236717"/>
<title type="html"><![CDATA[Re: Rozmowy kwalfikacyjne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24438&amp;p=236717#p236717"><![CDATA[
Zerknij sobie na to zadanko poniżej. Zastanów się jaki będzie wynik a na końcu skompiluj i zobacz, czy taki jak zakładałeś <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />[syntax=c]#define BLOCK(x) (x*x*x)<br /><br />void fun(void)<br />{<br />    uint32_t x = 5;<br />    uint32_t y = 0;<br /><br />    y = BLOCK(x++);<br /><br />    printf(&quot;BLOCK = %d&quot;, y);<br />}[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 10 minutach ]</span></strong><br /><br />Jeszcze jeśli chodzi o wskaźniki to obejrzyj wnikliwie tą serie filmów:<br /><!-- m --><a class="postlink" href="https://www.youtube.com/watch?v=a7TfLQMZXaI" >https://www.youtube.com/watch?v=a7TfLQMZXaI</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 22 mar 2023, o 08:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2023-03-21T18:29:51+01:00</updated>
<published>2023-03-21T18:29:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24438&amp;p=236704#p236704</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24438&amp;p=236704#p236704"/>
<title type="html"><![CDATA[Re: Rozmowy kwalfikacyjne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24438&amp;p=236704#p236704"><![CDATA[
Rozmowa na programistę embedded? Tu masz fajny quiz<br /><!-- m --><a class="postlink" href="https://wordsandbuttons.online/so_you_think_you_know_c.html" >https://wordsandbuttons.online/so_you_t ... now_c.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 21 mar 2023, o 18:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mario2015]]></name></author>
<updated>2023-03-21T15:48:06+01:00</updated>
<published>2023-03-21T15:48:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24438&amp;p=236700#p236700</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24438&amp;p=236700#p236700"/>
<title type="html"><![CDATA[Re: Rozmowy kwalfikacyjne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24438&amp;p=236700#p236700"><![CDATA[
Zrobiłem test na ATmega32 i wynik wychodził za każdym razem ten sam, tzn adres był zawsze ten sam. Po każdej kompilacji i wgraniu wsadu od nowa.<br />Chyba, że ja coś źle robiłem ale nie sądzę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8867">mario2015</a> — 21 mar 2023, o 15:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafal9018]]></name></author>
<updated>2023-03-21T11:55:02+01:00</updated>
<published>2023-03-21T11:55:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24438&amp;p=236695#p236695</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24438&amp;p=236695#p236695"/>
<title type="html"><![CDATA[Rozmowy kwalfikacyjne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24438&amp;p=236695#p236695"><![CDATA[
Cześć,<br /><br />Panowie i być może Panie. Podzielcie się proszę jakie mieliście pytania na rozmowach kwalifikacyjnych na programistę (oczywiście jeżeli są tu takie osoby). Przygotowuję się do własnej i zbieram informacje  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> <br /><br />Przy okazji jak prawidłowo odpowiedzieć na takie pytanie:<br /><br />[syntax=c]uint32_t *ptr1 = 0x4000;<br />uint8_t *ptr2 = ptr1;<br />ptr1++;<br />ptr2++;[/syntax]<br /><br />Jakie adresy wskazują ptr1 i ptr2?<br /><br /><br /><br />Bo moim zdaniem adres za każdym razem będzie inny po każdej kompilacji.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3441">Rafal9018</a> — 21 mar 2023, o 11:55</p><hr />
]]></content>
</entry>
</feed>