Rafal9018 napisał(a):
Faktycznie jakaś zaćma, jedno myślę a piszę drugie. Ale dzięki za przypomnienie i wyjaśnienie.
Kumam. Każdemu się zdarza podstaw zapomnieć.
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.
BUDOWANIE- 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)
- co to są sekcje .text, .data , .bss itd
- po co nam skrypt linkera
PROGRAMOWANIE W C- dyrektywy PREPROCESORA i MAKRA - temat rzeka. Różnica między funkcją inline a makrem. Kiedy czego możemy użyć.
- wszystkie znaczenia słowa static w C
- arytmetyka wskaźników (
BARDZO WAŻNE!)
- wskaźnik na stałą a stały wskaźnik - różnice
- różnica między unią a strukturą
- po co nam typy zmiennych uintX_t skoro mamy nazwy jak int long unsigned long itd
- jak wymienić strukturę danych między dwoma procesorami o różnej architekturze np poprzez SPI
- jaki rzeczwisty rozmiar w pamięci będzie miała struktura danych jak poniżej i czy możemy myć tego zawsze pewni:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
- słowo kluczowe const - po co ono nam w ogóle
- słowo kluczowo
volatile - po co ono nam w ogóle
- różnica miedzy stosem a stertą, przepełnienie stosu, fragmentacja sterty
- dlaczego w systemach embedded gdzie mamy mikrokontroler zazwyczaj nie używamy dynamicznej alokacji pamięci z użyciem malloc() i free()
- wskaźniki na funkcje, jak zadeklarować i po co nam one
- czy możemy w C pisać obiektowo
- różnica między little endian i big endian - jak napisać procedurę sprawdzającą na jakiej architekturze działa nasz program
- przekazywanie przez wartość i przekazywanie przez wskaźnik - główna różnica
- co się stanie gdy zwrócimy wskaźnik do zmiennej lokalnej i czy taki kod się skompiluje i czy zadziała:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
- priorytety operatorów w C
- domyślna promocja typów w C - dlaczego czasem może być to bardzo złe
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
SPRAWY OKOŁOMIKROKONTROLEROWE I PODSTAWY ELEKTRONIKI CYFROWEJ- różnica między architekurą harvardzką a von neumanna
- różnica między CISC a RISC
- co to jest vector przerwań
- co to są przerwania
- jak działają przerwania
- jak działają priorytety przerwań
- pytania o peryferia takie jak UART, SPI, I2C, CAN
- co to jest PWM
- jak działa przetwornik ADC SAR
- bramki logiczne AND, NAND, OR, NOR, XOR, XNOR
- jak podłączyc do mikrokontrolera np przekaźnik albo brzęczyk
- co to jest MMU, a co to jest MPU, po co w ogóle MMU
jak mi coś wpadnie do głowy jeszcze to dopisze
------------------------ [ Dodano po: 2 minutach ]Jarecki napisał(a):
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ś
Składnia: [ Pobierz ] [ Ukryj ]
język c
#define BLOCK(x) (x*x*x)
void fun(void)
{
uint32_t x = 5;
uint32_t y = 0;
y = BLOCK(x++);
printf("BLOCK = %d", y);
}
GeSHi
Kolega Jarecki, bardzo fajny przykład jak nie pisać kodu w C
ale na rozmowę pytanko dobre
Pięknie Kolega nick_czemnik wypunktował, faktycznie można tymi pytaniami duuuuużo zweryfikować