Category: Basics of Computer Science

Hardware, Software, Firmware, Middleware, Drivers, OS & Applications, The Difference?

We hear a lot of these “wares” terms all the time, some are hard, some are soft, some are firm and some are in the middle. But why some many types of wares? How do they all fit in? Let’s learn more about them in this article. Let’s start with the familiar term hardware. Hardware What is Hardware? Hardware is a system consisting of electronic devices, designed to work together as a single unit. It is the only tangible “ware” out of our list that you can physically interact with. Examples include PCBs like motherboard, RAM, Integrated Circuits, Processor, Microcontroller,...

interview questions 7 cover image

200 Embedded and IoT Software Engineering Interview Questions – Part 7 Debugging Skills

So far in part-1 of this interview questions series, we saw about Questions about yourself Questions about the projects you have done and Questions from C programming language Then in part-2, we saw some questions about the Basics of electronics. In part-3 we same some questions about Microcontrollers and peripherals. Then in Part 4, we saw about operating systems and in the last part (part 5) we saw questions on Networking followed by Part 6 on Software Engineering and Design patterns. You can find parts 1, 2, 3, 4, 5 and 6 in the links below. 200 Embedded and IoT...

interview questions 6 cover image

200 Embedded and IoT Software Engineering Interview Questions – Part 6 Software Engineering & Design Patterns.

So far in part-1 of this interview questions series, we saw about Questions about yourself Questions about the projects you have done and Questions from C programming language Then in part-2, we saw some questions about the Basics of electronics. In part-3 we same some questions about Microcontrollers and peripherals. Then in Part 4, we saw about operating systems and in the last part (part 5) we saw questions on Networking You can find parts 1, 2, 3, 4 and 5 in the links below. 200 Embedded and IoT Software Engineering Interview Questions – Part 1 200 Embedded and IoT...

FreeRTOS, A Complete Beginners Guide

When I started out learning about FreeRTOS, I was not able to find good short resources to read, and hence I had to spend weeks reading a 400 page eBook, see a bunch of webinars and videos, then cross-reference to some other resources when concepts were not clear, before I was finally able to understand what FreeRTOS is, how it works and how to use it in applications. So I decided to write this guide to summarise all the information I have learned over my research in an easy to understand manner so that you can get started with FreeRTOS...

How to Detect, Debug and Prevent Stack-Overflow!

Today I ran into my very first stack overflow bug. It was a frustrating experience to find the actual bug as I had to go through all of my code and double-check the logic, buffers, pretty much my entire code before I was finally able to detect that the bug I got was due to stack overflow. But once I managed to find out the fact that the source of my problem is stack overflow, the fix was a pretty easy one. This is one of those bugs that will make you doubt pretty much everything you know..! I am...

Bootloader And Stages of Booting Process Explained!

During the early days in my career as an embedded software engineer, I was hearing the term ‘bootloader’ very often. Even though I had a basic understanding of the term, I felt that my knowledge about it is incomplete. For example, when they say the system is ‘booting up’ I knew it meant the system is getting ready for the user to start using its applications, but how exactly is it ‘getting ready’? As days passed by, I read some books, used some development boards, read some forums and with all that my knowledge of bootloader improved to a stage...

Computer Memory Explained Through Analogies and Illustrations

When I began my career in Computer Science, one of the technologies that amazed me most was the memory of computers. As my career progressed I was constantly being introduced to several types of memory. I had several questions in my mind such as How does memory work on computers? Why there are so many types of memory? Can’t a single memory device be used for all purposes? If ROM is read-only then how come we are able to write data to our hard disks, USB flash drives, and SSDs? If I can access any file I need at any...