-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
b5edd9b
commit 42aeea0
Showing
39 changed files
with
3,691 additions
and
46 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,170 @@ | ||
C | ||
1.Що таке вказівник? | ||
2.Скільки байтів пам’яті займає вказівник? | ||
3.Чим відрізняється stack від heap? | ||
4.Чим відрізняється malloc від calloc? | ||
5.Як звільнити пам’ять в С? | ||
6.Які проблеми можуть виникнути, якщо не звільнити пам’ять? | ||
7.Яке призначення ключового слова static? | ||
8.Опишіть використання модифікатора static в мовах С і С++. | ||
9.Яке призначення ключового слова const? | ||
10.Які проблеми можуть виникнути, якщо функція повертає вказівник на локальну змінну? | ||
11.Опишіть використання модифікатора volatile. | ||
12.Які існують бітові операції? | ||
13.Як працювати з void? | ||
|
||
Embedded | ||
14.В чому полягає різниця між мікропроцесором і мікроконтролером? | ||
15.Як відбувається завантаження програми в мікроконтролері? | ||
16.З якими типами мікроконтролерів вам доводилося працювати? | ||
17.Що таке GPIO? | ||
18.Що таке UART? | ||
19.Як відбувається комунікація через UART? | ||
20.Як працює комунікація RS232? | ||
21.Що таке SPI? | ||
22.Що таке I2C? | ||
23.Що таке PWM? | ||
24.Яка різниця між ОС загального призначення та ОС реального часу? | ||
25.В чому різниця між polling і interrupt? | ||
26.Які типи постійної пам’яті використовуються в Embedded? | ||
27.Що таке watchdog? | ||
28.Які типи сегментів пам’яті ви знаєте? | ||
29.Що таке переривання? | ||
|
||
|
||
С | ||
1.Для чого потрібне вирівнювання структур? | ||
2.Що таке little endian та big endian? | ||
3.Які проблеми можуть виникнути, якщо привести масив байтів до структури? | ||
4.Як репрезентується Union Type в пам’яті? | ||
5.Як працює виділення пам’яті? | ||
6.Як malloc виділяє пам’ять? | ||
7.Як реалізувати ООП, використовуючи C? | ||
8.Які основні принципи ООП ви знаєте? | ||
9.В чому різниця між поліморфізмом та успадкуванням? | ||
10.Яка різниця між статичною та динамічною бібліотекою? | ||
11.Як працює Cmake? | ||
12.Для чого використовують ключові слова static, const, volatile, restrict? Чи можна їх поєднувати? У яких випадках? | ||
13.Порівняйте вказівники та масиви. | ||
14.Як визначити порядок байтів в системі? | ||
15.Що таке бітові поля? Для чого вони використовуються? | ||
16.Як задається розмір бітового поля при описі його в структурі? | ||
17.Для чого використовується вказівник на вказівник? | ||
18.Порівняйте struct та union. Який розмір struct та union? | ||
19.Етапи компіляції. Як зберегти інформацію кожного етапу? | ||
20.Поясніть, як працює утиліта make та makefile. | ||
21.У чому відмінності стандартів C99 та С11? | ||
22.Які існують класи пам’яті в С? | ||
23.Що таке linker? | ||
24.Що таке bootloader? | ||
25.Що таке таймер? | ||
26.Які функції watchdog ви знаєте? | ||
27.Що таке область видимості? | ||
28.Як працює зв’язування? | ||
29.Для чого потрібне ключове слово typedef? | ||
30.Як відбувається виклик функції? | ||
31.Як передаються значення параметрів при виклику функції? | ||
32.Що таке EABI (Embedded Application Binary Interface)? | ||
33.Який розмір цілочисельних типів (знакових і беззнакових) в архітектурі AVR8? | ||
34.В чому суть використання віртуальних деструкторів? | ||
|
||
Embedded | ||
35.Для чого потрібна віртуальна пам’ять? | ||
36.Що таке MMU? | ||
37.Як комунікують пристрої, підключені по I2C? | ||
38.Як працюють переривання? | ||
39.Що таке DMA? | ||
40.Яка різниця між UART vs SPI? | ||
41.В чому перевага інтерфейсів з сигналом синхронізації? | ||
42.Як налагоджувати код, використовуючи мікроконтролер? | ||
43.Який розмір цілочисельних типів (знакових і беззнакових) в архітектурі AVR8? | ||
|
||
//****************************************НЕ У МЕНЕ, АЛЕ ЗНАТИ ТРЕБА (PS: ВладОС)**************************************** | ||
Linux | ||
44.Як комунікує User Space and Kernel Space? | ||
45.В чому різниця між блокуючими і неблокуючими операціями? | ||
46.Які типи IPC ви знаєте? | ||
47.Які способи синхронізації потоків ви знаєте? | ||
48.Що таке сокет? | ||
49.Що таке Mutex? | ||
50.Що таке Semaphore? | ||
51.Що таке Copy on Write? | ||
|
||
Операційні системи | ||
52.Що таке операційна система реального часу (ОСРЧ)? | ||
53.З яких частин складається ОС? Поясніть на прикладі Linux. | ||
54.Що таке interrupt latency? | ||
55.Які особливості компіляції статичних та динамічних бібліотек? | ||
56.Що таке файл формату ELF? | ||
57.Що таке міжпроцесова взаємодія (IPC)? | ||
58.Що таке bash? | ||
59.Наведіть приклади абстрактних типів даних. | ||
60.Що таке процес та потік (thread)? | ||
61.Що таке одиниця трансляції? | ||
62.Що таке конвеєр команд? Наведіть приклади. | ||
63.У чому різниця між архітектурою фон Неймана та архітектурою Гарварда? | ||
64.Що таке кроскомпіляція? | ||
|
||
Protocols | ||
65.Як відбувається перше підключення до інтернету? | ||
66.Опишіть роботу стеку протоколів TCP/IP. | ||
67.Опишіть різницю між MQTT, RMQ, WebSocket. В якому випадку який протокол краще обрати для передачі даних з IoT-пристрою у хмару? | ||
68.Як працює Bluetooth? Поясніть загальні концепції. | ||
69.Що таке TLS? | ||
70.Що таке SSH? | ||
71.Що таке TCP handshake? | ||
72.Яка різниця між TCP та UDP? | ||
|
||
//****************************************ЗНОВУ В МЕНЕ, але не так критично, бо в МК ЧАСТИНА 2 (PS: ВладОС)**************************************** | ||
C | ||
1.Як реалізована команда «delay»? | ||
2.Що таке ISR? | ||
3.Як відбувається передача параметрів в ISR? | ||
4.Чи можливе повернення результату з ISR? | ||
5.Як працюють таймери? | ||
6.Що таке регістри? Як вони працюють? | ||
|
||
CI | ||
7.Чи доводилося вам працювати з Docker? | ||
8.Як налаштувати CI для компіляції коду під різні платформи? | ||
9.Розкажіть про побудову білд-системи. | ||
|
||
Linux | ||
10.Які є типи пристроїв у ядрі? | ||
11.Як написати драйвер для ядра Linux? | ||
12.Що таке вектор переривання? | ||
13.Які фреймворки для збірки ядра ви знаєте? | ||
14.Розкажіть про алгоритми планування задач в операційних системах. | ||
|
||
Embedded | ||
15.Як забезпечити Continuous Delivery для MCU? | ||
16.Як працює RTOS? | ||
17.Що таке задача в RTOS? | ||
18.Які засоби синхронізації є у RTOS? | ||
19.Як працює комунікація через RS485? | ||
20.Boot sequence на мікроконтролерах. | ||
21.Назвіть особливості периферійних інтерфейсів UART, USART, I2C, SPI. | ||
|
||
//****************************************ЗНОВУ НЕ В МЕНЕ(PS: ВладОС)**************************************** | ||
Мережі | ||
22.Як працює BLE? | ||
23.Що таке OSI model? | ||
24.В чому різниця між Bluetooth Classic and BLE? | ||
25.Як працює Wi-Fi? | ||
26.Які способи існують для оновлення прошивки? | ||
27.Що таке OTA? | ||
28.Розкажіть про протокол ARP. | ||
29.Як працює протокол TCP? | ||
30.Що таке маска мережі? | ||
31.Що таке шлюз за замовчуванням? | ||
32.Що таке комутатор L2? Які його функції? | ||
33.Що таке маршрутизатор L3? Назвіть його функції. | ||
34.Розкажіть про інкапсуляцію пакетів при проходженні по рівнях моделі OSI. | ||
35.Яке призначення протоколу ICMP? | ||
36.Що таке Ethernet Frame? | ||
37.Що таке фаєрвол? Як налаштувати його на Linux? | ||
38.Що таке DHCP та DHCP relay? | ||
39.Які види та алгоритми маршрутизації ви знаєте? | ||
40.Що таке NAT? | ||
41.Що таке MQTT, і як він використовується? | ||
42.Розкажіть про автомобільні шини даних CAN, LIN, MOST, FlexRay. |
File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file added
BIN
+12.2 MB
extra/docs/MANUALS_BOOKS/serios_stuff/ALIOT_Multi-Book_Volume2_web.pdf
Binary file not shown.
Binary file not shown.
Binary file added
BIN
+4.43 MB
..._BOOKS/serios_stuff/Mastering_the_FreeRTOS_Real_Time_Kernel-A_Hands-On_Tutorial_Guide.pdf
Binary file not shown.
Binary file added
BIN
+2.42 MB
extra/docs/MANUALS_BOOKS/serios_stuff/SMC System Engineering Handbook.pdf
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added
BIN
+65.7 MB
...ANUALS_BOOKS/serios_stuff/Титце_У_,_Шенк_К_Полупроводниковая_схемотехника_Том_II_2007.pdf
Binary file not shown.
Binary file added
BIN
+43.5 MB
...MANUALS_BOOKS/serios_stuff/Титце_У_,_Шенк_К_Полупроводниковая_схемотехника_Том_I_2007.pdf
Binary file not shown.
Binary file not shown.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
Some ESP-specific APIs related to deep sleep, RTC and flash memories are available in the ESP object. | ||
|
||
ESP.deepSleep(microseconds, mode) will put the chip into deep sleep. mode is one of WAKE_RF_DEFAULT, WAKE_RFCAL, WAKE_NO_RFCAL, WAKE_RF_DISABLED. (GPIO16 needs to be tied to RST to wake from deepSleep.) The chip can sleep for at most ESP.deepSleepMax() microseconds. If you implement deep sleep with WAKE_RF_DISABLED and require WiFi functionality on wake up, you will need to implement an additional WAKE_RF_DEFAULT before WiFi functionality is available. | ||
|
||
ESP.deepSleepInstant(microseconds, mode) works similarly to ESP.deepSleep but sleeps instantly without waiting for WiFi to shutdown. | ||
|
||
ESP.rtcUserMemoryWrite(offset, &data, sizeof(data)) and ESP.rtcUserMemoryRead(offset, &data, sizeof(data)) allow data to be stored in and retrieved from the RTC user memory of the chip respectively. offset is measured in blocks of 4 bytes and can range from 0 to 127 blocks (total size of RTC memory is 512 bytes). data should be 4-byte aligned. The stored data can be retained between deep sleep cycles, but might be lost after power cycling the chip. Data stored in the first 32 blocks will be lost after performing an OTA update, because they are used by the Core internals. | ||
|
||
ESP.restart() restarts the CPU. | ||
|
||
ESP.getResetReason() returns a String containing the last reset reason in human readable format. | ||
|
||
ESP.getFreeHeap() returns the free heap size. | ||
|
||
ESP.getHeapFragmentation() returns the fragmentation metric (0% is clean, more than ~50% is not harmless) | ||
|
||
ESP.getMaxFreeBlockSize() returns the largest contiguous free RAM block in the heap, useful for checking heap fragmentation. NOTE: Maximum malloc() -able block will be smaller due to memory manager overheads. | ||
|
||
ESP.getChipId() returns the ESP8266 chip ID as a 32-bit integer. | ||
|
||
ESP.getCoreVersion() returns a String containing the core version. | ||
|
||
ESP.getSdkVersion() returns the SDK version as a char. | ||
|
||
ESP.getCpuFreqMHz() returns the CPU frequency in MHz as an unsigned 8-bit integer. | ||
|
||
ESP.getSketchSize() returns the size of the current sketch as an unsigned 32-bit integer. | ||
|
||
ESP.getFreeSketchSpace() returns the free sketch space as an unsigned 32-bit integer. | ||
|
||
ESP.getSketchMD5() returns a lowercase String containing the MD5 of the current sketch. | ||
|
||
ESP.getFlashChipId() returns the flash chip ID as a 32-bit integer. | ||
|
||
ESP.getFlashChipSize() returns the flash chip size, in bytes, as seen by the SDK (may be less than actual size). | ||
|
||
ESP.getFlashChipRealSize() returns the real chip size, in bytes, based on the flash chip ID. | ||
|
||
ESP.getFlashChipSpeed(void) returns the flash chip frequency, in Hz. | ||
|
||
ESP.getCycleCount() returns the cpu instruction cycle count since start as an unsigned 32-bit. This is useful for accurate timing of very short actions like bit banging. | ||
|
||
ESP.random() should be used to generate true random numbers on the ESP. Returns an unsigned 32-bit integer with the random number. An alternate version is also available that fills an array of arbitrary length. Note that it seems as though the WiFi needs to be enabled to generate entropy for the random numbers, otherwise pseudo-random numbers are used. | ||
|
||
ESP.checkFlashCRC() calculates the CRC of the program memory (not including any filesystems) and compares it to the one embedded in the image. If this call returns false then the flash has been corrupted. At that point, you may want to consider trying to send a MQTT message, to start a re-download of the application, blink a LED in an SOS pattern, etc. However, since the flash is known corrupted at this point there is no guarantee the app will be able to perform any of these operations, so in safety critical deployments an immediate shutdown to a fail-safe mode may be indicated. | ||
|
||
ESP.getVcc() may be used to measure supply voltage. ESP needs to reconfigure the ADC at startup in order for this feature to be available. Add the following line to the top of your sketch to use getVcc: | ||
|
||
ADC_MODE(ADC_VCC); | ||
TOUT pin has to be disconnected in this mode. | ||
|
||
Note that by default ADC is configured to read from TOUT pin using analogRead(A0), and ESP.getVCC() is not available. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
NOTE: Calling analogRead() too frequently causes WiFi to stop working. When WiFi is under operation, analogRead() result may be cached for at least 5ms between effective calls. | ||
|
||
ESP8266 has a single ADC channel available to users. It may be used either to read voltage at ADC pin, or to read module supply voltage (VCC). | ||
|
||
To read external voltage applied to ADC pin, use analogRead(A0). Input voltage range of bare ESP8266 is 0 — 1.0V, however some boards may implement voltage dividers. To be on the safe side, <1.0V can be tested. If e.g. 0.5V delivers values around ~512, then maximum voltage is very likely to be 1.0V and 3.3V may harm the ESP8266. However values around ~150 indicates that the maximum voltage is likely to be 3.3V. | ||
|
||
To read VCC voltage, use ESP.getVcc() and ADC pin must be kept unconnected. Additionally, the following line has to be added to the sketch: | ||
ADC_MODE(ADC_VCC); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
Arduino | ||
| | ||
--- hardware | ||
| | ||
--- esp8266com | ||
| | ||
--- esp8266 | ||
| | ||
--- bootloaders | ||
--- cores | ||
--- doc | ||
--- libraries | ||
--- package | ||
--- tests | ||
--- tools | ||
--- variants | ||
--- platform.txt | ||
--- programmers.txt | ||
--- README.md | ||
--- boards.txt | ||
--- LICENSE |
Oops, something went wrong.