Feel free to leave your embedded software engineering interview questions in the comments below! Cheers!
@vasanth0x55tube2 жыл бұрын
Some of the questions that immediately came to my mind are 1) What is a race condition? What causes it and how to avoid it? 2) What happens in a startup code? 3) How does a cpu handle an interrupt? 4) what is an interrupt latency? How can it be measured? 5) What is a software interrupt? 6) what is the difference between a breakpoint and watchpoint? 7) What is meant by board bringup activity? 8) Explain a scenario where you have used a logic analyzer
@GreidiAjalik2 жыл бұрын
Great questions! thanks for sharing!
@vamsikrishna98252 жыл бұрын
2) startup code runs bootloader first then checks for the any new firmware for the flash memory. If not bootloader switches to the starting address of the flash memory, where our previously loaded firmware starts excecuting. From then cpu loads address of the each instrcution to the stack pointer. Goes everything normal. 3) Whenever the interrupt triggers, the processors stops the execution and hands over the process to interrupt handler(ISR). The cpu loads the address of the ISR in the Stack pointer. Once the execution of the ISR over. SP intializes with the memory address where it was resumed before. 5) software interrupts are created by the system whenver the exceptions happend. 6) when u are debugging the code breakpoints are helpful to break the execution at required line of code. Where as watchpoint is u can add it to the debug window to see how the variable is changing over time in the process. Any thing wrong i answered feel free to correct me. Thank you.
@tanujkumar79832 жыл бұрын
@@vamsikrishna9825 MCU executes instructions pointed by Program Counter (PC) and not the stack pointer (SP). SP is used to store the return address so that MCU can use it to reinitialise PC in order to resume last process execution after an interrupt or exception.
@evic2622 жыл бұрын
@@tanujkumar7983 return address from a subroutine is kept in link register (LR), SP keeps the pointer to active stack.
@tanujkumar79832 жыл бұрын
@@evic262 that's true in case of ARM. But thanks, actually I am currently working on EFM8 so completely forgot about ARM for a while. Thanks again
@djdarco2 жыл бұрын
Wow, these are some really low-level questions and you really provide great information! As an interviewer I'm much more interested in the person sitting accross me. Such as teamwork, the ability to learn new things, communication skills and so on. Technical skills and abilities are mostly already pointed out in the CV, but the non-technical skills. I think it is also good to add that if you don't have an answer it is okay to be honest about it, not everyone knows everything and again the ability to learn is also very important.
@GreidiAjalik2 жыл бұрын
+1!!! I can’t agree more with this!!! Thanks for bringing this up Dirk!
@SpaceSurferGod2 жыл бұрын
Some questions I answered during an interview I gave recently (Embedded + OOP): 1. How do you prevent memory leaks? 2. How do you use stack? 3. When do you want to use static classes? 4. What is polymorphism and inheritance? 5. Major difference between C and Python. 6. Have you used pointers as parameters to functions? 7. How have you used interrupts in your code before? 8. How have you used watchdogtimer in your code? 9. How do you use pointers? 10. How do you use private constructors? These mostly cover what I was asked, it is not strictly an embedded role but embedded plus general software developer role. Hopefully I'll get in!
@GreidiAjalik2 жыл бұрын
Rahul! Thank you so much for sharing this info! Lots of good questions that can help a lot of people when they prepare for their interviews!
@bagaspermana882 жыл бұрын
those are hard questions :(
@AlonsoNoCarDude2 жыл бұрын
Hopefully you get an offer from them. Thanks for sharing.
@lemon6521 Жыл бұрын
These questions are kinda crazy. Major difference between C and Python? They're polar opposites, how much time does the interviewer have?! How do you use pointers? Have you used pointers as parameters in functions? This basically amounts to "have you ever touched code"
@miloszivkovic6256 Жыл бұрын
I will give my answers and give an * next to an answer I think is incomplete / wrong 1. Use smart pointers instead of raw pointers, but embedded is resource constrained and sometimes raw pointers are absolutely necessary * 2. Not sure if Stack/Heap memory management or stack data structure (they are the same) * 2.a. Stack is a linear data structure that uses LIFO (last in first out) model. Stacks are used for many things like backtracking and expression evaluation. Stack defines three operations: push (creates a new item on top of the stack), pop (removes and returns top item of the stack) and peek (just reads the top item without removing it) 2.b. Most famous use of a stack is memory management in modern languages. Stack is used to track references and primitive values, as programs execution enters a scope a new item is created on a stack that allocates memory for that scope, when program execution exits the scope stack is popped and memory is freed. 3. I have no idea what this is about. Static inner classes in Java come to mind **** 3.a. When do you want to use static variables in classes? Static in classes defines memory that is shared by all instances of that class, there are two use cases: static methods and static variables. Static methods are added to class namespace, limitation of static methods is that they cannot access instance varables. use cases are factory and utility methods. static variables hold data that is global to the class it is often used to store class constants. 4. I am not gonna dignify this with a response 5. C is a statically typed (instead of duck typed), compiled (instead of interpreted), python has automatic memory management (GC), python is portable, C can natively use threads etc. 6. No, I am a normal person that has a life. I primarly use Java that doesn't expose pointers to programmers but it does use pointers below the hub, every time I pass something by reference I use pointers. *** 7. I have never programmed embedded systems but I know what interrupts are. Interrupts are a mechanism that allows microcontroller to interupt current execution and respond to an event, this improves responsivnes of embedded systems. Without interrupts we would have to pool external dependencies 8. *** (I know what it is but that's not the question) 9. Pointers allow us to allocate large chunks of memory once and pass a pointer to that memory instead of copying it. *** 10. Private constructors restrict creation of objects outside of the class, most common use of private constructors is in singleton pattern, factory pattern, utility classes and to prevent subclassing
@nanisaladi47102 жыл бұрын
Thanks a lot for Awesome content 😊 keep going… Some Interesting Questions: 1. multi core programming and debug 2. IoT and Embedded 3. Power management, clocks 4. role of OSI in newer communications like pcie, all wireless, usb, thunderbolt etc 5. Bus 6. Memory management, caching 7. s/w topics like - preprocessors, understanding coredumps, struct vs union 8. LLDB Looking fwd for more videos 👍🏻
@GreidiAjalik2 жыл бұрын
Thank you for the support and sharing the questions!
@TuchoJL2 жыл бұрын
I really appreciate these videos. I am about to finish my degree and I want to make a career in embedded systems. Videos like this are very helpful to get an idea of what I am going to face. It would be great if you continued making videos about embedded systems. Thank you!!
@GreidiAjalik2 жыл бұрын
You’re welcome! Thanks for the support!!
@randomyoutubeuser85092 жыл бұрын
I have seen all of these question in the interview. good video!
@evic2622 жыл бұрын
Great video! Just a little comment on cpu clock freq. on power consumption; in some cases you actually need max clock freq to achieve lower power consumption. (e.g. serve all the tasks and do all the calculations as fast as possible and go back to sleep).
@GreidiAjalik2 жыл бұрын
Thanks for the support! That's true, there can be some corner cases like that :) thanks for clarifying.
@mandar_dessai Жыл бұрын
Race to halt :)
@panagiotisfelekis71052 жыл бұрын
Great Video Greidi! Just started looking for my next Embedded Software job. Great Timing
@GreidiAjalik2 жыл бұрын
Nice! Good luck with your interviews!
@shivas27142 жыл бұрын
Love from India 💯 I just now started as a Embedded C Engineer..... keep doing more videos for us
@GreidiAjalik2 жыл бұрын
Thanks for the support! Cheers! :)
@shivas27142 жыл бұрын
Thanks
@barath39562 жыл бұрын
Hello, shivs s I am goind to learn Embedded could you please provide me your email id or phone number so I can contact you?
@Brave569 Жыл бұрын
English communication is compulsory for that field?
@rahulkumarmahato43576 ай бұрын
Bro give me some suggestions I want to start this career in embedded system
@CaliforniaSunboy Жыл бұрын
For the bonus question about pull-up/down-resistors I would also explain, why I need them, especially because i don't want floating (undefined, random) readings on an input pin. I you have an unconnected pin when the button is not pressed, the input is likely to be random (not really, but hard to predict)
@noahbraasch7854 Жыл бұрын
As a computer engineering student, its great knowing some of these questions! Still have lots to learn though... haha
@emmanuelkorankye11542 жыл бұрын
Great video mate; it's difficult finding embedded systems content on KZbin. I would also like to ask if you have any books you recommend for beginners in embedded systems.
@GreidiAjalik2 жыл бұрын
Thank you for the support! Unfortunately I don't have any right now ... it's a common question I get and I'm working on getting a solid list of books together that are actually good...
@aishwaryashashikumar36452 жыл бұрын
Hey Greidi! I'm so glad you're back with making videos regularly! I remember you were studying at Georgia Tech part time and I'll be going there this fall for master's in ECE Let me know where I can get in touch with you, have a lot to discuss :)
@GreidiAjalik2 жыл бұрын
Thank you for the support!! People can always reach out to me on discord/instagram :)
@MohamadAshtari-c3x11 ай бұрын
great! I was asked some basic questions like how much memory does unsigned char or short data type occupy? Explain what heap memory is? Next week I have another Technical interview with a big company. I will share their questions here .
@ramprasanthudhayabaskar80732 жыл бұрын
Isn't DMA, Direct Memory Access? I only heard it that way and not Dynamic Memory Access as told in the video. Or is this another name?
@GreidiAjalik2 жыл бұрын
it is, it was a mistake on my part, it has already been pointed out in the comments and there is Errata in the video description. Cheers! :)
@pedrovelazquez1382 жыл бұрын
Im from Paraguay. I am finishing my degree in Electronics Engineering and Im surprised by the ammount of questions that I can answer in this video. The thing with the career itself here is that there are not many jobs available for us locally. I tried applying online but I got rejected many times. Can you give some advice?
@kayakMike10009 ай бұрын
Its not an illusion. Processes spend most of their time waiting for IO, so switching among tasks is a good idea.
@philware154621 күн бұрын
I think you missed the entire point about Volatile variables. You didn't mention anything about them changing outside of the compiler's "view" and so to NOT optimise them. That's the point.
@kayakMike10009 ай бұрын
Low power mode... Make sure you do the WFI instruction
@hawwoth2 жыл бұрын
Thank you! These questions are really helpful! Keep it going. You're great! :D
@GreidiAjalik2 жыл бұрын
Thank you for the support! Cheers!
@mitchellbergman74822 жыл бұрын
I was recently asked: How does free() know how much memory to free? #define SQR(a) (a*a) SQR(10) returns 100 But SQR(2+8) returns 26 Why? And how do you debug that? Give me some examples of where you’d use an open/close collector/emitter. As a state machine: How would you prevent an actuator or bearings from seizing up under extreme temperatures provided expensive and sensitive TECs?
@dishakarnataki70192 жыл бұрын
Why use bare metal programing when we have compiler to write a startup code and dump code in microC
@vamsikrishna98252 жыл бұрын
Ans: bare metal code enables direct manuplating the registers to get the required output. Whwere as startup code includes uncessary data some times which u dint required for your project, which increses the size your program. When u are more specific with the program memory u should opt to bare metal. And bare metal some what speed as u are directly manuplating the registers.
@voytek_two_thousand2 жыл бұрын
DMA = Direct Memory Access (not Dynamic)
@GreidiAjalik2 жыл бұрын
Absolutely correct! I have this errata listed in the description of the video already :) thanks for adding it to comments as well!
@voytek_two_thousand2 жыл бұрын
@@GreidiAjalik my bad, should have looked harder
@GreidiAjalik2 жыл бұрын
You’re all good! I’m glad it’s in the comments as well - easier to find/see!! Cheers!
@BenMorse011 ай бұрын
Came here to leave this comment
@MrDajiangyoude9 ай бұрын
I am indebted to this video.
@thisaintmyrealname12 жыл бұрын
Thanks for the content! And please keep featuring your dog in the background 🥲
@GreidiAjalik2 жыл бұрын
Thank you for your support!! I’ll try to make sure he gets more camera time… lol
@sivapraveens96432 жыл бұрын
Good information, thanks a lot💙. Love from India
@GreidiAjalik2 жыл бұрын
Cheers! thank you my friend!
@kaushalpanchalk.p4930 Жыл бұрын
Great video, How can we select a clock ? Of course it depends on the requirement say for example I have only bare metal code there is no rtos and there are only few peripherals like uart, i2c and spi and it works on standard frequency. So can we identify this much clock is enough for this project?
@PALTUBABY2 жыл бұрын
Very nice explanation. I would like to add 1 point for mutex and sem. In addition to what you explained, the difference in mutex and sem is in their usage. Mutex is used for mutual exclusion and sem is used for synchronization between tasks or tasks and ISRs
@bolder995 ай бұрын
synchronization between ISR? Semaphores sleep so using them for ISR is not a good idea.
@dhanushronaldo53782 жыл бұрын
I need to check the interview rounds of top companies like Qualcomm, Rockwell and Honeywell for embedded software engineer. So, where can I find it?
@GreidiAjalik2 жыл бұрын
You can have some luck with leetcode forums or reddit. Take a look there :)
@buddysnackit1758 Жыл бұрын
They ask about what is on the data sheet? It takes like 1/2 hour to read that and understand it. Why would ANYONE memorize this.
@Foersom_ Жыл бұрын
???
@zltn_brkl2 жыл бұрын
Hey Greidi I just wanted to say thank you for this valuable video, I am a self taught electrical and embedded software engineer and I would like to ask what kind of project do you recommend doing and putting to my portfolio. Thank you in advance
@GreidiAjalik2 жыл бұрын
Thanks for the support!!! What projects do you already have there? any specific industry you are targeting? (i.e. automotive, wearables, robotics...)
@zltn_brkl2 жыл бұрын
@@GreidiAjalik I am mainly on IoT. Especially smart home/systems/automation
@GreidiAjalik2 жыл бұрын
I’ll give my best shot here, but I think anything with facial recognition would be a huge +. At home camera monitoring system or something like that. Building the hardware + software and a phone/pc app for it would be a pretty significant effort and good experience. Thoughts?
@zltn_brkl2 жыл бұрын
@@GreidiAjalik sounds great, to be honest I have already experienced with facial recognition, the main idea was something like a smart home security/entrance system. Thanks for your advice and your support as well.
@GreidiAjalik2 жыл бұрын
Also, audio processing stuff is good too… could be voice activation of device, gunshot detection - very low power oriented iot stuff…
@krishna_raj2 жыл бұрын
You are one of a kind make more and from everything
@GreidiAjalik2 жыл бұрын
Thank you so much! :)
@Error__5042 жыл бұрын
How the locking procedure of mutex take place
@bhaveshnaik133710 ай бұрын
The Dog is enjoying his life
@TonyDaExpert2 жыл бұрын
I am only on my first Embedded systems class so I am wondering is DMA a RTOS concept?
@GreidiAjalik2 жыл бұрын
DMA (Direct memory access) is not an RTOS concept. It’s feature/device part of the microcontroller.
@ohwow20742 жыл бұрын
DMA exists everywhere. Even on $300 laptops up to $5000 PC and even super computers and smart phones. It's funny but without DMA the world of computing would be far less efficient.
@bobwmcgrath2 жыл бұрын
How many years of experience do you need before they don't ask you stuff like that? I feel like I used to be able to ace all those questions, but now I'm more focused on my very specific parts of my project and I don't worry about some of that stuff.
@GreidiAjalik2 жыл бұрын
Depends on the job, most companies still will ask some of these questions no matter what years of experience you have.
@kayakMike10009 ай бұрын
Errr... Pulling data in parallel.... Gotta make sure your DMAs are able to work on the bus at the same time...
@JohnSmith-pd7mp2 ай бұрын
DMA is direct memory access not dynamic.
@chadizdroid2 жыл бұрын
You need to provide correct and clear info.. what is miso or mosi.. DMA is Direct Memory Access ..
@GreidiAjalik2 жыл бұрын
Good to know! Thanks for the feedback! :)
@haebrahimi2 жыл бұрын
DMA = Direct Memory Access
@GreidiAjalik2 жыл бұрын
Thank you for clarifying!
@theodoreomtzigt7145 Жыл бұрын
DMA = Direct Memory Access, not Dynamic Memory Access
@zeelpatel1002 Жыл бұрын
Network communication protocols?
@slim_cana5 ай бұрын
Nothing wrong with posting a Mutex/Semaphore in an IRQ as a signaling mechanism. Good video otherwise
@vincentlow41722 жыл бұрын
I like how emo your dog is. =D
@GreidiAjalik2 жыл бұрын
Lol
@infantmano2977 Жыл бұрын
Explain CAN buss brother
@barath39562 жыл бұрын
Hi buddy, I have a question does IoT Engineers use SQL for Analyzing Data?
@GreidiAjalik2 жыл бұрын
If there are databases involved, then maybe, otherwise, I don’t think so…
@barath39562 жыл бұрын
@@GreidiAjalik Why I asked is IoT engineers collect lot of data so how they will analyze the data?
@GreidiAjalik2 жыл бұрын
missed your follow up questions.... Sometimes you do need to analyze data in real time so you analyze some data on the devices directly or partial analyzation and rest is done later within database structure. Otherwise whatever the developers/company decide to use for data analysis is up to them... it could be SQL if the existing infrastructure is there or could be NoSQL or some other fun way of doing it, maybe pandas df?
@Foersom_ Жыл бұрын
It would depend on the size (RAM and CPU) of the IOT device. Many MCU are much too small, you would read data and store in a memory structure / records format. Then send those data by serial or other communication to a PC or larger device that can process and store data maybe in SQL DB.
@keyurpanchal17062 жыл бұрын
in DMA, actually CPU is not in ideal mode and also CPU does not give all controls to the DMA controller.
@thehouseofelamrani5795 Жыл бұрын
the questions in th video : 1. Explain how the spi works. 2. How does a DMA work? 3. What is Semaphore ? How is it different from Mutex ? 4. How to collect data in parallel and in sync ? 5. When and why to use keyword volatile ? 6. What are some ways to minimize MCU power consumption ? 7. What are the benefits of RTOS ? 8. Should we always use RTOS ? 9. What to remember when writing an ISR ? 10. What are little and big Endian ? 11. What are pull-up and pull-down Resistors ?
@darshanpandya6111 Жыл бұрын
Dog behind you is so cute 🥰 !! Thanks for informative video.
@eyalporat30272 жыл бұрын
9/10 :)
@GreidiAjalik2 жыл бұрын
That's pretty good .... lol, thanks for the rating! :)
@buddysnackit1758 Жыл бұрын
DMA ...noty Dynamic but Direct
@msbanda21232 жыл бұрын
👍
@gkpar9 ай бұрын
You dog could care less about embedded questions...he was just waiting for you to take him out for a nice walk.....
@dimabirenbaum9200 Жыл бұрын
2:06 DMA is not a "Dynamic" Memory Access. It is a Direct Memory Access - a technique that allows devices to *directly* access system memory without CPU intervention, as it sounds. Typically controlled and configured through hardware registers and DMA controllers. Dynamic Memory Access (if there is such a definition) - refers to the dynamic allocation and management of memory during program execution, such as managing the process's heap (memory allocations using malloc()), etc. Direct Memory Access focuses on data transfer, and Dynamic Memory Access focuses on memory allocation.