{"id":1760,"date":"2018-06-18T10:40:55","date_gmt":"2018-06-18T10:40:55","guid":{"rendered":"https:\/\/deepbluembedded.com\/?p=1760"},"modified":"2023-08-17T23:53:34","modified_gmt":"2023-08-17T20:53:34","slug":"embedded-systems-tutorials","status":"publish","type":"post","link":"https:\/\/deepbluembedded.com\/embedded-systems-tutorials\/","title":{"rendered":"Embedded Systems Tutorials"},"content":{"rendered":"<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">In the Embedded Systems Tutorials category of my website, you&#8217;ll find educational materials in form of &#8220;Tutorials&#8221;, that start at the very basic concepts to the advanced ones. You&#8217;ll be creating some exciting embedded projects using a variety of platforms. <span style=\"color: #333333;\"><strong>Just stick with me<\/strong>!<\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">However, you still be able to skip over this introduction and directly jump to the end of this post to <a href=\"#start\"><span style=\"color: #333333;\"><strong>Get Started<\/strong><\/span><\/a>. But I strongly recommend that you give it a shot as it will definitely answer the most of your probable questions and make everything crystal clear. If it&#8217;s your first time here, it&#8217;s not recommended to skip over this post.<\/span><\/p>\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr>\n<td style=\"width: 100%; background-color: #ffffff;\"><a href=\"https:\/\/deepbluembedded.com\/embedded-systems-tutorials\/#start\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1793\" src=\"https:\/\/deepbluembedded.com\/wp-content\/uploads\/2018\/06\/skip.jpg\" alt=\"skip to get started\" width=\"219\" height=\"82\" srcset=\"https:\/\/deepbluembedded.com\/wp-content\/uploads\/2018\/06\/skip.jpg 400w, https:\/\/deepbluembedded.com\/wp-content\/uploads\/2018\/06\/skip-300x113.jpg 300w, https:\/\/deepbluembedded.com\/wp-content\/uploads\/2018\/06\/skip-1320x500.jpg 1320w\" sizes=\"auto, (max-width: 219px) 100vw, 219px\" \/><\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 100%; text-align: center; background-color: #ffffff;\"><strong><span style=\"font-size: 10pt;\">It&#8217;s not recommended to skip this post !<\/span><\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\"><span style=\"color: #000000; font-family: arial, helvetica, sans-serif;\">I still remember that day when I got a couple of LEDs flashing because I told them to. Well, I was really hooked! Sooner I realized that this thing is meant to be for me. I love writing software that interacts with hardware. All I can say that it makes you feel so powerful, you can almost control anything you want to. In this way, I can touch the world, do changes and make a difference. I can touch people&#8217;s lives, minds, and hearts. The reason for which I love this profession.<\/span><\/p>\n<p>[toc]<\/p>\n<hr \/>\n<h3 style=\"text-align: left;\"><strong><span style=\"font-family: arial, helvetica, sans-serif; color: #ffffff; background-color: #7094ff;\">\u00a0 \u00a0What Are Embedded Systems?\u00a0 \u00a0<\/span><\/strong><\/h3>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">There exist so many definitions for what an embedded system really is. But I do believe that<\/span><\/p>\n<p style=\"text-align: justify;\">[click_to_tweet tweet=&#8221;An Embedded System is a computerized system that has a computer built-in, without being the final product a real computer!&#8221; quote=&#8221;An Embedded System is a computerized system that has a computer built-in, without being the final product a real computer!&#8221; theme=&#8221;style2&#8243;]<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Which means that any device that has any computing machine embedded within is said to be an &#8220;Embedded System&#8221;. <strong>However<\/strong>, an embedded system can be a very simple piece of electronic circuitry that performs a specific function within a larger system. Despite the fact that this kind of systems may not seem very embedded to many people. But in fact, it does!<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">The definition is so broad to include all of the following devices<\/span><\/p>\n<table style=\"border-collapse: collapse; width: 100%; height: 44px;\" border=\"1\">\n<tbody>\n<tr style=\"height: 22px;\">\n<td style=\"width: 33.3333%; height: 22px; text-align: center; background-color: #ffffff;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #333333;\">Heaters<\/span><\/td>\n<td style=\"width: 33.3333%; height: 22px; text-align: center; background-color: #ffffff;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #333333;\">Air Conditioners<\/span><\/td>\n<td style=\"width: 33.3333%; height: 22px; text-align: center; background-color: #ffffff;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #333333;\">Microwaves<\/span><\/td>\n<\/tr>\n<tr style=\"height: 22px;\">\n<td style=\"width: 33.3333%; height: 22px; text-align: center; background-color: #ffffff;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #333333;\">Smart Phones<\/span><\/td>\n<td style=\"width: 33.3333%; height: 22px; text-align: center; background-color: #ffffff;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #333333;\">Digital Alarms<\/span><\/td>\n<td style=\"width: 33.3333%; height: 22px; text-align: center; background-color: #ffffff;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #333333;\">Routers<\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 33.3333%; text-align: center; background-color: #ffffff;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #333333;\">Toys<\/span><\/td>\n<td style=\"width: 33.3333%; text-align: center; background-color: #ffffff;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #333333;\">Wearable gadgets<\/span><\/td>\n<td style=\"width: 33.3333%; text-align: center; background-color: #ffffff;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #333333;\">Smart Locks<\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 33.3333%; text-align: center; background-color: #ffffff;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #333333;\">Rockets<\/span><\/td>\n<td style=\"width: 33.3333%; text-align: center; background-color: #ffffff;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #333333;\">Avionics<\/span><\/td>\n<td style=\"width: 33.3333%; text-align: center; background-color: #ffffff;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #333333;\">Robotics<\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 33.3333%; text-align: center; background-color: #ffffff;\" colspan=\"3\"><span style=\"font-family: arial, helvetica, sans-serif; color: #333333;\">And much more&#8230;<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Even the computer peripherals are actually examples of embedded systems applications. Such as mouse, keyboard, monitor, webcam, scanner, joysticks, printer, speaker system, etc. Every single piece is a standalone embedded device that communicates with the main CPU via (Serial\/Parallel) Buses.<\/span><\/p>\n<ul>\n<li style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\"><span style=\"color: #333333;\"><strong>Mouse: <\/strong><\/span>has its own computer that interfaces an optical flow sensor to determine the speed and direction of motion. It also streams out the data via a USB cable to the main CPU through the motherboard.<\/span><\/li>\n<li style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\"><span style=\"color: #333333;\"><strong>Keyboard<\/strong><\/span>: it also has its own computer that scans out all the keys and sends out some coded data when a key is pressed.<\/span><\/li>\n<li style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\"><span style=\"color: #333333;\"><strong>Monitors<\/strong><\/span>: also have their own circuitry with built-in computers to display the data streamed to it via the parallel port of the CPU.<\/span><\/li>\n<li style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\"><span style=\"color: #333333;\"><strong>Printers<\/strong><\/span>: typically comes with a USB port to receive that files from your PC and start performing its tasks sequentially.<\/span><\/li>\n<li style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">And so on&#8230;<\/span><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Every single piece of your computer has an embedded computer built-in somehow. However, the average user may not recognize them and mistakenly believe that the CPU is the only computer involved in the whole machine!<\/span><\/p>\n<hr \/>\n<h3 style=\"text-align: left;\"><strong><span style=\"font-family: arial, helvetica, sans-serif; color: #ffffff; background-color: #7094ff;\">\u00a0 \u00a0Examples For Embedded Systems\u00a0 \u00a0<\/span><\/strong><\/h3>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">In fact, most of the devices which we are using on a daily basis are actually embedded systems applications. There is too way examples to count, but I&#8217;ll try categorizing and listing down a handful of them.<\/span><\/p>\n<ul>\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\"><span style=\"color: #333333;\"><strong>Home Devices<\/strong><\/span>. [Heaters, TVs, TV&#8217;s Remote, Digital Alarm, Air Conditioner, DVD Video Player, Cameras, Boilers, Smart Door Lock, etc.]<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\"><span style=\"color: #333333;\"><strong>Robotics<\/strong><\/span>. [Groung Vehicles, Aerial Robots (Drones), Underwater Vehicles (ROVs), Industrial Robots, Humanoids]<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\"><span style=\"color: #333333;\"><strong>Avionics<\/strong><\/span>. This term represents all the electronic circuits within an airplane. This includes [Buttons, Interfaces, Controls, Screens, GPS, Autopilot systems, Tracking systems, Landing planning, etc.]<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\"><span style=\"color: #333333;\"><strong>Networking Devices<\/strong><\/span>. [Routers, Switches, Firewalls, Cellphones, GSM, Radio Stations, etc.]<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\"><span style=\"color: #333333;\"><strong>Automobiles<\/strong><\/span>. a typical car could possibly have over 20 embedded computers built-in. [Lighting System, Air Bags, Fuel Injection, Windows, Door Locks, Parking Assistant System, Anti-stealing Alarms, Whippers Motion, etc.]<\/span><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Well, I think it&#8217;s really tough to write down an exhaustive list of all the embedded systems applications. However, I&#8217;ve done my best and hope you&#8217;ve got the point of it.<\/span><\/p>\n<hr \/>\n<h3 style=\"text-align: left;\"><strong><span style=\"font-family: arial, helvetica, sans-serif; color: #ffffff; background-color: #7094ff;\">\u00a0 \u00a0A\u00a0perspective on the embedded industry\u00a0 \u00a0<\/span><\/strong><\/h3>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">A couple of years ago, the embedded systems was an over-hyped industry. Due to the huge advances in the automation and the IOT craze. Yet it slid down to make room for the Ai and deep-learning which is overhyped nowadays.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">The embedded industry has been there for quite a long time since the early 60&#8217;s for more than 50+ years up till today. And it&#8217;s consistently growing at a steady rate over the past few decades. In 2015, the size of the embedded industry was evaluated at 159Billion$ and it&#8217;s expected to exceed 225 Billion$ by 2021.<\/span><\/p>\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr>\n<td style=\"width: 100%; background-color: #ffffff;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1743 size-full\" src=\"https:\/\/deepbluembedded.com\/wp-content\/uploads\/2017\/06\/Global-Embedded-System-Market.png\" alt=\"Embedded-Systems-Tutorials\" width=\"650\" height=\"350\" srcset=\"https:\/\/deepbluembedded.com\/wp-content\/uploads\/2017\/06\/Global-Embedded-System-Market.png 650w, https:\/\/deepbluembedded.com\/wp-content\/uploads\/2017\/06\/Global-Embedded-System-Market-300x162.png 300w\" sizes=\"auto, (max-width: 650px) 100vw, 650px\" \/><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 100%; background-color: #ffffff; text-align: center;\"><span style=\"font-family: arial, helvetica, sans-serif; font-size: 10pt;\">Global Embedded Systems Market Analysis &amp; Forecast. Image From\u00a0<a href=\"http:\/\/www.marketresearchstore.com\/report\/embedded-systems-market-z60569\">marketresearchstore.com<\/a><\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">The first embedded processors were created by Intel in the early 60s, called 4001 Microprocessor. This one was used for the early calculators in that age. However, it has no internal memory and they needed to hook an external memory to accommodate for that. But developing embedded computers with internal memories didn&#8217;t come very long after. And the embedded suppliers started to pump their products onto the market at a lower price that is getting lower and lower, with a decent performance that is getting better and better.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">The leading industry suppliers nowadays include NXP, Microchip, Atmel Corporation, Qualcomm, Texas Instruments, Freescale Semiconductors, Fujitsu, Samsung Electronics, Renesas Electronics, and many more.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">The embedded industry has been and still continue growing every single year! It&#8217;s not overpopulated or replaceable by any means. At least for the seeable upcoming future decades. If you really love this profession, you can surely pursue a career in such a promising field. Or you may be doing it for fun if it seems appealing to you.<\/span><\/p>\n<hr \/>\n<h3 style=\"text-align: left;\"><strong><span style=\"font-family: arial, helvetica, sans-serif; color: #ffffff; background-color: #7094ff;\">\u00a0 \u00a0Jobs in the embedded systems industry\u00a0 \u00a0<\/span><\/strong><\/h3>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">For embedded systems, the role is same as most system engineers, you are 20% architect, 60% troubleshooter, and 20% subject matter expert. In embedded stuff, this tends to be more about the overall perceptual view of the whole system and determining when and where changes have to be made.<\/span><\/p>\n<p>[click_to_tweet tweet=&#8221;In Embedded Systems, it&#8217;s all about the overall perceptual view of the whole system and determining when and where changes have to be made&#8221; quote=&#8221;In Embedded Systems, it&#8217;s all about the overall perceptual view of the whole system and determining when and where changes have to be made&#8221; theme=&#8221;style2&#8243;]<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Typically the job of an embedded engineer depends on the field of application. In embedded systems, we handle both software\/hardware stuff. Embedded Engineers work on a vast number of verticals ranging from low range commercial electronics to high-value industrial electronics. Typically their work focuses on using Electronics knowledge to implement circuits and write code in most cases. The end goal is to achieve desired outputs using required\/available inputs and by maintaining optimum resource utilization.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">But, we can categorize the jobs in the embedded industry into two major categories.<\/span><\/p>\n<ol style=\"text-align: justify;\">\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Embedded Hardware<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Embedded Software<\/span><\/li>\n<\/ol>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\"><span style=\"color: #333333;\"><strong>Firstly<\/strong><\/span>, the embedded hardware-related jobs are not so common. These positions require specific hardware analysis\/design skills and in my experience, there are a few of them. However, you can go for this surely if it suits you well.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\"><span style=\"color: #333333;\"><strong>Secondly<\/strong><\/span>, the embedded software jobs are the most common ones. Firmware engineers are in a high demand these days and there is an increasing demand for these positions indeed. It&#8217;s my specialty and I hope this doesn&#8217;t cause any sort of bias. Therefore the most of these tutorials are software-oriented focusing on teaching you how to efficiently write software that drives the hardware pieces between your hands.<\/span><\/p>\n<hr \/>\n<h3 style=\"text-align: left;\"><strong><span style=\"font-family: arial, helvetica, sans-serif; color: #ffffff; background-color: #7094ff;\">\u00a0 \u00a0What is Embedded Programming?\u00a0 \u00a0<\/span><\/strong><\/h3>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Embedded programming is the field of knowledge and practice that involves creating the software which runs the embedded devices. Which is not limited to microcontrollers programming. Hence we can say that the microcontroller&#8217;s programming is embedded programming and the opposite is not true. As for this series of tutorials, we&#8217;ll be learning the theoretical fundamentals and the best practices that will make you\u00a0better at the embedded programmer specifically with Microcontrollers.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">It&#8217;s amazing how many embedded computers are being shipped every single year compared to the traditional PCs. The embedded shipping volume exceeds by a factor that is greater than 30 times more sales! Which is an obvious evidence that we need more programmers to write the code for these chips. If you stop reading right now and start thinking about every electronic device you&#8217;re using daily, you&#8217;ll then realize that we&#8217;re surrounded by a tremendous number of embedded computers almost in everything.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Embedded computers do exist in homes, buildings, and streets. They&#8217;re everywhere on the entire planet, and also orbiting the earth 24\/7. While some of them are exploring the moon, mars and the outer space to provide us with information about the whole universe.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Writing the code for these devices is our job as embedded software engineers (Firmware Engineers). On the other hand, it&#8217;s really amazing to write code that makes stuff happens and move around following your own commands. Many software enthusiasts, including me, enjoy this kind of programming so much. I particularly find embedded programming a fascinating and addicting branch of practical knowledge compared to desktop or android programming.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Next, we&#8217;ll identify the typical tasks that an Embedded Software (Firmware) Engineer does and the most common required skills among various companies that you need to acquire.<\/span><\/p>\n<hr \/>\n<h3 style=\"text-align: left;\"><strong><span style=\"font-family: arial, helvetica, sans-serif; color: #ffffff; background-color: #7094ff;\">\u00a0Needed Skills For Embedded Software Engineers\u00a0<\/span><\/strong><\/h3>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Obviously, you needn&#8217;t have all of these skills combined right at the beginning. But it&#8217;s getting to be a more competitive field every single year, hence the requirements are in a consistent increase. Here are few common tasks from the job description for major companies:<\/span><\/p>\n<ul>\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">High-level coding skills in C\/C++<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Coding in python, Linux Bash Shell scripts<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Matlab\/Simulink for model-based control systems<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Developing Device Drivers<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Software Apps programming<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">RTOS customization and porting<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Cross-development and deploying packages<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Module level and integration testing<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Software projects documentation<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Reading out datasheets of electronic stuff\u00a0which is intended to be used in the project<\/span><\/li>\n<\/ul>\n<hr \/>\n<h3 style=\"text-align: left;\"><strong><span style=\"font-family: arial, helvetica, sans-serif; color: #ffffff; background-color: #7094ff;\">\u00a0 \u00a0Firmware VS Software\u00a0 \u00a0<\/span><\/strong><\/h3>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">There are some major differences between both of software and firmware. This topic particularly needs an entire article itself. So we&#8217;ll discuss a few points which differ firmware from software in hope to make both concepts crystal clear for all of you.<\/span><\/p>\n<p style=\"text-align: justify;\"><strong><span style=\"font-family: arial, helvetica, sans-serif; color: #000000; font-size: 14pt;\">1. Nature\u00a0of the code<\/span><\/strong><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\"><span style=\"font-family: 'times new roman', times, serif;\">I-<\/span> General purpose computers (e.g. desktops, laptops, etc.) usually run general purpose\u00a0<strong>software<\/strong> applications such as: browsers, readers, games, media players, photoshop, etc. A typical user may run one or more of these software applications whenever he wants. Nobody can predict what a user may do when his PC is turned on! He may start a game or search google on chrome or play movie or whatever.<\/span><\/p>\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr>\n<td style=\"width: 100%; background-color: #ffffff;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1742 size-medium\" src=\"https:\/\/deepbluembedded.com\/wp-content\/uploads\/2017\/06\/Computer-Application-300x119.jpg\" alt=\"Embedded-Systems-Tutorials\" width=\"300\" height=\"119\" srcset=\"https:\/\/deepbluembedded.com\/wp-content\/uploads\/2017\/06\/Computer-Application-300x119.jpg 300w, https:\/\/deepbluembedded.com\/wp-content\/uploads\/2017\/06\/Computer-Application-768x305.jpg 768w, https:\/\/deepbluembedded.com\/wp-content\/uploads\/2017\/06\/Computer-Application.jpg 795w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 100%; background-color: #ffffff; text-align: center;\"><span style=\"font-family: arial, helvetica, sans-serif; font-size: 10pt;\">General Purpose Computer Software Applications. Image from <a href=\"https:\/\/iimtstudies.edu.in\/emphatic\/single-course.php?cid=28\">iimtstudies.edu.in<\/a><\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\"><span style=\"font-family: 'times new roman', times, serif;\">II-<\/span> Specific purpose computers (e.g. microcontrollers) usually run firmware applications such as: mobile robots, drones, heaters, voltmeters, digital alarms, etc. When a line-follower is powered-up it will do nothing other than following that black line. The developer who wrote the code knows exactly what the machine will be doing after pressing the Power-ON button! Hence the term <strong>firm<\/strong>, which points to this deterministic nature of firmware applications that will always perform the exact same tasks when Powered-Up! Maybe forever or until the firmware is updated or completely changed.<\/span><\/p>\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr>\n<td style=\"width: 100%; background-color: #ffffff;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1740 size-medium\" src=\"https:\/\/deepbluembedded.com\/wp-content\/uploads\/2017\/06\/IMG_20131220_062900-300x225.jpg\" alt=\"Embedded-Systems-Tutorials\" width=\"300\" height=\"225\" srcset=\"https:\/\/deepbluembedded.com\/wp-content\/uploads\/2017\/06\/IMG_20131220_062900-300x225.jpg 300w, https:\/\/deepbluembedded.com\/wp-content\/uploads\/2017\/06\/IMG_20131220_062900-768x576.jpg 768w, https:\/\/deepbluembedded.com\/wp-content\/uploads\/2017\/06\/IMG_20131220_062900-1024x768.jpg 1024w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 100%; text-align: center; background-color: #ffffff;\"><span style=\"font-family: arial, helvetica, sans-serif; font-size: 10pt;\">\u00a0Microcontroller-Based Line-Follower Robot. Image from <a href=\"http:\/\/123paintcolor.com\/xy-table-let-s-make-robots-robotshop.html\">123paintcolor.com<\/a><\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><strong><span style=\"font-family: arial, helvetica, sans-serif; color: #000000; font-size: 14pt;\">2. Failure in Sofware VS Firmware<\/span><\/strong><\/p>\n<p><span style=\"color: #ffffff; background-color: #333333; font-size: 14pt;\"><strong><span style=\"font-family: arial, helvetica, sans-serif;\">\u00a0Software Failure\u00a0<\/span><\/strong><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">A typical failure in <strong>software<\/strong> can be a crashing message that pops-up at your face while using photoshop or whatever software you&#8217;re using. A software failure may cause your pc to freeze for a short time period. Holding Ctrl+Alt+Delete will terminate any failed software at once. However, in the worst case, your PC may not respond to open the task manager at all. In this case, a machine hardware-restart will fix everything up!<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">You may have noticed that a failure in <strong>software<\/strong> is a pretty feasible issue that can be easily resolved. Despite the fact that it feels annoying and kind of frustrating at some points. But all in all, a failed software is an issue that causes no damage almost in all scenarios.<\/span><\/p>\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr>\n<td style=\"width: 100%; background-color: #ffffff;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1744\" src=\"https:\/\/deepbluembedded.com\/wp-content\/uploads\/2017\/06\/skype-crash-1-800x420.png\" alt=\"Computer Software Crash\" width=\"350\" height=\"184\" srcset=\"https:\/\/deepbluembedded.com\/wp-content\/uploads\/2017\/06\/skype-crash-1-800x420.png 800w, https:\/\/deepbluembedded.com\/wp-content\/uploads\/2017\/06\/skype-crash-1-800x420-300x158.png 300w, https:\/\/deepbluembedded.com\/wp-content\/uploads\/2017\/06\/skype-crash-1-800x420-768x403.png 768w\" sizes=\"auto, (max-width: 350px) 100vw, 350px\" \/><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 100%; background-color: #ffffff; text-align: center;\"><span style=\"font-family: arial, helvetica, sans-serif; font-size: 10pt;\">Computer Software Crash. Image from <a href=\"https:\/\/www.slashgear.com\/ios-envy-skype-message-bug-sends-it-into-endless-crash-loop-02386472\/\">slashgear.com<\/a><\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"color: #ffffff; background-color: #333333; font-size: 14pt;\"><strong><span style=\"font-family: arial, helvetica, sans-serif;\">\u00a0Firmware Failure\u00a0<\/span><\/strong><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">A typical failure in <strong>firmware<\/strong> can lead to an out of control drone, ROV or any robot. Maybe an accident for a passengers plane that reports a crazy behavior for the embedded avionics built-in. A firmware failure can possibly lead a self-driving car to a confirmed accident. Well, the short video down below is a recording for the Ariane5 launched back in the 90&#8217;s.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">After only 36 seconds of the launching, everything was gone with the wind. More than 7Billion$ was spent for the development of this project that took up to a complete decade of dedicated development efforts. It was a catastrophic failure indeed. And the reason was?<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Well, they used some of the <strong>firmware<\/strong> written for the Ariane4 which was a completely different machine (physically). so at some point, the LOC (Line of code) responsible for the horizontal velocity of the rocket with respect to the platform variable conversion from a floating-point 64-bit to a 16-bit signed-integer caused the catastrophic results. The failed variable conversion has led to an overflow that consequently forced the vehicle to deviate from its original trajectory. To finally run the self-destructing code that prevents any further disasters.<\/span><\/p>\n<p style=\"text-align: justify;\">[click_to_tweet tweet=&#8221;A single defect in firmware code is more than enough to endanger people&#8217;s lives or money.&#8221; quote=&#8221;A single defect in firmware code is more than enough to endanger people&#8217;s lives or money.&#8221; theme=&#8221;style2&#8243;]<\/p>\n<hr \/>\n<h3 style=\"text-align: left;\"><strong><span style=\"font-family: arial, helvetica, sans-serif; color: #ffffff; background-color: #7094ff;\">\u00a0 \u00a0Embedded Systems Terminologies\u00a0 \u00a0<\/span><\/strong><\/h3>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #ffffff; background-color: #333333; font-size: 14pt;\"><strong><span style=\"font-family: arial, helvetica, sans-serif; background-color: #333333;\">\u00a0Reliability\u00a0<\/span><\/strong><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">This is a measure of the survival probability of the system when the function is critical during the mission time. The less failure probability of a system is, the more reliable it is.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #ffffff; background-color: #333333; font-size: 14pt;\"><strong><span style=\"font-family: arial, helvetica, sans-serif; background-color: #333333;\">\u00a0Fault-Tolerance\u00a0<\/span><\/strong><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">This is the ability of a computer system to survive in the presence of faults. All environments are assumed to be noisy and our systems must tolerate all the external inconsistencies.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #ffffff; background-color: #333333; font-size: 14pt;\"><strong><span style=\"font-family: arial, helvetica, sans-serif; background-color: #333333;\">\u00a0Real-Time\u00a0<\/span><\/strong><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Our systems must meet various timing and other constraints that are imposed on it by the real-time natural behavior of the external world that is being interfaced. There is no Ctrl+Alt+Delete option for a passengers plane that lost control! A system that is tracking incoming missile attacks in an aerial defense agency must precisely calculate and plan for the counter-attack due to a Hard-Time deadline. Otherwise, it&#8217;ll get destroyed and so do us! If a system is lagging when a real-time response is critical, then it&#8217;s a pure crap.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #ffffff; background-color: #333333; font-size: 14pt;\"><strong><span style=\"font-family: arial, helvetica, sans-serif; background-color: #333333;\">\u00a0Flexibility\u00a0<\/span><\/strong><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">It&#8217;s building systems with built-in debugging opportunities that allow for a remote maintenance and so. Just imagine that we&#8217;re building a spacecraft that will land on another planet to collect different types of data and sends them back to us. If this ROV has gone insane for whatever reason and lost control, we should be able to make some diagnostics. And in the worst case, we may have to upload an entirely new firmware that will travel thousands of miles away in the space to land on the ROV&#8217;s memory to bring it back to life. This is what really happened with the Mars Pathfinder back in the 90&#8217;s!<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 14pt; color: #ffffff; background-color: #333333;\"><strong><span style=\"font-family: arial, helvetica, sans-serif;\">\u00a0Portability\u00a0<\/span><\/strong><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">This is a measure of the ease of using the same software in different environments. Portability requires generalized abstractions between the application program logic itself and the low-level system interfaces. When software with the same functionality is being upgraded or reproduced for several computing platforms, then portability is fundamentally the key factor for development cost reduction.<\/span><\/p>\n<hr \/>\n<h3 style=\"text-align: left;\"><strong><span style=\"font-family: arial, helvetica, sans-serif; color: #ffffff; background-color: #7094ff;\">\u00a0 \u00a0What you&#8217;ll be learning here?!\u00a0 \u00a0<\/span><\/strong><\/h3>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">After choosing the platform which you prefer the most. You&#8217;ll be guided through consecutive tutorials that have many practical examples within and some additional tasks for practice. All of which aim to give you a deeper understanding of the main concepts, modules, and mechanics in embedded systems. Which definitely include:<\/span><\/p>\n<ul style=\"text-align: justify;\">\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Overview for the microcontrollers architectures.<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Getting familiar with the embedded development ecosystem.<\/span><\/li>\n<li><span style=\"color: #000000; font-family: arial, helvetica, sans-serif;\">Coding in the standard ANSI-C usually called &#8221; C-programming language &#8220;. It&#8217;s also well known in the embedded community as &#8221; Embedded-C &#8220;.\u00a0<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Guided flipping through various datasheets for components, modules, and MCUs.<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Developing basic input\/output projects to control a variety of actuators.<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Interfacing a wide range of sensors and modules.<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Dealing with signals analog\/digital.<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Complete understanding of all serial port communication protocols (USART, SPI, I2C, and USB) and creating practical applications in which we&#8217;ll link multiple MCUs together or Hook any of them to a PC for receiving\/sending commands.<\/span><\/li>\n<li><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Debugging (Chasing down) dodgy projects effectively. With various tips and tricks in order to avoid tremendous bugs in the first place.<\/span><\/li>\n<li><span id=\"start\" style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Creating your own embedded projects!<\/span><\/li>\n<\/ul>\n<hr \/>\n<h3 style=\"text-align: left;\"><strong><span style=\"font-family: arial, helvetica, sans-serif; color: #ffffff; background-color: #7094ff;\">\u00a0 \u00a0Let&#8217;s Get Started!\u00a0 \u00a0<\/span><\/strong><\/h3>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">As a beginner, I highly recommend you start with the Microchip PIC MCUs Tutorials as a starting point for your journey. In case you feel frustrated, you can always email me or leave a comment wherever it looks relevant.<\/span><\/p>\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr>\n<td style=\"width: 33.3333%; background-color: #ffffff;\"><\/td>\n<td style=\"width: 33.3333%; text-align: center; background-color: #ffffff;\"><a href=\"https:\/\/deepbluembedded.com\/pic-programming-tutorials\/\"><strong><span style=\"font-family: arial, helvetica, sans-serif;\">Microchip PIC Tutorials<\/span><\/strong><\/a><a href=\"https:\/\/deepbluembedded.com\/pic-programming-tutorials\/\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1758 size-medium\" src=\"https:\/\/deepbluembedded.com\/wp-content\/uploads\/2017\/06\/intro2es2-300x142.jpg\" alt=\"Embedded-Systems-Tutorials\" width=\"300\" height=\"142\" srcset=\"https:\/\/deepbluembedded.com\/wp-content\/uploads\/2017\/06\/intro2es2-300x142.jpg 300w, https:\/\/deepbluembedded.com\/wp-content\/uploads\/2017\/06\/intro2es2-520x245.jpg 520w, https:\/\/deepbluembedded.com\/wp-content\/uploads\/2017\/06\/intro2es2.jpg 720w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/td>\n<td style=\"width: 33.3333%; background-color: #ffffff;\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: center;\"><strong><span style=\"font-family: arial, helvetica, sans-serif; color: #000000;\">Good Luck Dudes!<\/span><\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-1629 aligncenter\" src=\"https:\/\/deepbluembedded.com\/wp-content\/uploads\/2017\/06\/Signature.png\" alt=\"Author Khaled Magdy Signature\" width=\"180\" height=\"90\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p> &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"Embedded Systems Tutorials\" class=\"read-more button\" href=\"https:\/\/deepbluembedded.com\/embedded-systems-tutorials\/#more-1760\" aria-label=\"Read more about Embedded Systems Tutorials\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":1761,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[28,30,27],"tags":[13,14,15,32,33,16,31,17],"class_list":["post-1760","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-embedded-systems","category-embedded-tutorials","category-microchip-pic","tag-embedded-c","tag-embedded-systems-tutorials","tag-firmware","tag-learn-embedded-systems","tag-learn-microcontrollers-programming","tag-microchip-pic-tutorials","tag-microcontroller-programming","tag-microcontrollers","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-33","no-featured-image-padding"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Embedded Systems Tutorials Introduction | Embedded Systems Online Course<\/title>\n<meta name=\"description\" content=\"In the Embedded Systems Tutorials category of my website, you&#039;ll find educational content in form of Tutorials. that start at the very basic concepts to adv\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/deepbluembedded.com\/embedded-systems-tutorials\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Embedded Systems Tutorials Introduction | Embedded Systems Online Course\" \/>\n<meta property=\"og:description\" content=\"In the Embedded Systems Tutorials category of my website, you&#039;ll find educational content in form of Tutorials. that start at the very basic concepts to adv\" \/>\n<meta property=\"og:url\" content=\"https:\/\/deepbluembedded.com\/embedded-systems-tutorials\/\" \/>\n<meta property=\"og:site_name\" content=\"DeepBlue\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/khaled.elrawy.359\/\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/khaled.elrawy.359\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-06-18T10:40:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-17T20:53:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/deepbluembedded.com\/wp-content\/uploads\/2018\/06\/intro2es1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"720\" \/>\n\t<meta property=\"og:image:height\" content=\"340\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Khaled Magdy\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Khaled Magdy\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/deepbluembedded.com\\\/embedded-systems-tutorials\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/deepbluembedded.com\\\/embedded-systems-tutorials\\\/\"},\"author\":{\"name\":\"Khaled Magdy\",\"@id\":\"https:\\\/\\\/deepbluembedded.com\\\/#\\\/schema\\\/person\\\/30259d66cf68c6c681562dbe551b7867\"},\"headline\":\"Embedded Systems Tutorials\",\"datePublished\":\"2018-06-18T10:40:55+00:00\",\"dateModified\":\"2023-08-17T20:53:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/deepbluembedded.com\\\/embedded-systems-tutorials\\\/\"},\"wordCount\":2916,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/deepbluembedded.com\\\/#\\\/schema\\\/person\\\/30259d66cf68c6c681562dbe551b7867\"},\"image\":{\"@id\":\"https:\\\/\\\/deepbluembedded.com\\\/embedded-systems-tutorials\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/deepbluembedded.com\\\/wp-content\\\/uploads\\\/2018\\\/06\\\/intro2es1.jpg\",\"keywords\":[\"Embedded C\",\"Embedded Systems Tutorials\",\"Firmware\",\"Learn Embedded Systems\",\"Learn Microcontrollers Programming\",\"Microchip PIC Tutorials\",\"Microcontroller Programming\",\"Microcontrollers\"],\"articleSection\":[\"Embedded Systems\",\"Embedded Tutorials\",\"Microchip PIC\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/deepbluembedded.com\\\/embedded-systems-tutorials\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/deepbluembedded.com\\\/embedded-systems-tutorials\\\/\",\"url\":\"https:\\\/\\\/deepbluembedded.com\\\/embedded-systems-tutorials\\\/\",\"name\":\"Embedded Systems Tutorials Introduction | Embedded Systems Online Course\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/deepbluembedded.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/deepbluembedded.com\\\/embedded-systems-tutorials\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/deepbluembedded.com\\\/embedded-systems-tutorials\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/deepbluembedded.com\\\/wp-content\\\/uploads\\\/2018\\\/06\\\/intro2es1.jpg\",\"datePublished\":\"2018-06-18T10:40:55+00:00\",\"dateModified\":\"2023-08-17T20:53:34+00:00\",\"description\":\"In the Embedded Systems Tutorials category of my website, you'll find educational content in form of Tutorials. that start at the very basic concepts to adv\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/deepbluembedded.com\\\/embedded-systems-tutorials\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/deepbluembedded.com\\\/embedded-systems-tutorials\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/deepbluembedded.com\\\/embedded-systems-tutorials\\\/#primaryimage\",\"url\":\"https:\\\/\\\/deepbluembedded.com\\\/wp-content\\\/uploads\\\/2018\\\/06\\\/intro2es1.jpg\",\"contentUrl\":\"https:\\\/\\\/deepbluembedded.com\\\/wp-content\\\/uploads\\\/2018\\\/06\\\/intro2es1.jpg\",\"width\":\"720\",\"height\":\"340\",\"caption\":\"Introduction To Embedded Systems Tutorials\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/deepbluembedded.com\\\/embedded-systems-tutorials\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/deepbluembedded.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Embedded Systems Tutorials\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/deepbluembedded.com\\\/#website\",\"url\":\"https:\\\/\\\/deepbluembedded.com\\\/\",\"name\":\"DeepBlueMbedded\",\"description\":\"Embedded Systems And Computer Engineering Tutorials &amp; Articles\",\"publisher\":{\"@id\":\"https:\\\/\\\/deepbluembedded.com\\\/#\\\/schema\\\/person\\\/30259d66cf68c6c681562dbe551b7867\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/deepbluembedded.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/deepbluembedded.com\\\/#\\\/schema\\\/person\\\/30259d66cf68c6c681562dbe551b7867\",\"name\":\"Khaled Magdy\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a8b5dc7385ec807e129b584974394d27e41c9979f3a2d0fd785b552b73529032?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a8b5dc7385ec807e129b584974394d27e41c9979f3a2d0fd785b552b73529032?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a8b5dc7385ec807e129b584974394d27e41c9979f3a2d0fd785b552b73529032?s=96&r=g\",\"caption\":\"Khaled Magdy\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a8b5dc7385ec807e129b584974394d27e41c9979f3a2d0fd785b552b73529032?s=96&r=g\"},\"description\":\"Principal Embedded Systems Engineer with years of experience in embedded software and hardware design. I work in the Automotive &amp; e-Mobility industry. However, I still do Hardware design and SW development for DSP, Control Systems, Robotics, AI\\\/ML, and other fields I'm passionate about. I love reading, writing, creating projects, and teaching. A reader by day and a writer by night, it's my lifestyle. I believe that the combination of brilliant minds, bold ideas, and a complete disregard for what is possible, can and will change the world! I will be there when it happens, will you?\",\"sameAs\":[\"https:\\\/\\\/deepbluembedded.com\",\"https:\\\/\\\/www.facebook.com\\\/khaled.elrawy.359\\\/\",\"https:\\\/\\\/www.instagram.com\\\/deepbluembedded\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/khaled-magdy-\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCzLSrNZD4rCjSCOVU9hknvA\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Embedded Systems Tutorials Introduction | Embedded Systems Online Course","description":"In the Embedded Systems Tutorials category of my website, you'll find educational content in form of Tutorials. that start at the very basic concepts to adv","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/deepbluembedded.com\/embedded-systems-tutorials\/","og_locale":"en_US","og_type":"article","og_title":"Embedded Systems Tutorials Introduction | Embedded Systems Online Course","og_description":"In the Embedded Systems Tutorials category of my website, you'll find educational content in form of Tutorials. that start at the very basic concepts to adv","og_url":"https:\/\/deepbluembedded.com\/embedded-systems-tutorials\/","og_site_name":"DeepBlue","article_publisher":"https:\/\/www.facebook.com\/khaled.elrawy.359\/","article_author":"https:\/\/www.facebook.com\/khaled.elrawy.359\/","article_published_time":"2018-06-18T10:40:55+00:00","article_modified_time":"2023-08-17T20:53:34+00:00","og_image":[{"width":720,"height":340,"url":"https:\/\/deepbluembedded.com\/wp-content\/uploads\/2018\/06\/intro2es1.jpg","type":"image\/jpeg"}],"author":"Khaled Magdy","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Khaled Magdy","Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/deepbluembedded.com\/embedded-systems-tutorials\/#article","isPartOf":{"@id":"https:\/\/deepbluembedded.com\/embedded-systems-tutorials\/"},"author":{"name":"Khaled Magdy","@id":"https:\/\/deepbluembedded.com\/#\/schema\/person\/30259d66cf68c6c681562dbe551b7867"},"headline":"Embedded Systems Tutorials","datePublished":"2018-06-18T10:40:55+00:00","dateModified":"2023-08-17T20:53:34+00:00","mainEntityOfPage":{"@id":"https:\/\/deepbluembedded.com\/embedded-systems-tutorials\/"},"wordCount":2916,"commentCount":0,"publisher":{"@id":"https:\/\/deepbluembedded.com\/#\/schema\/person\/30259d66cf68c6c681562dbe551b7867"},"image":{"@id":"https:\/\/deepbluembedded.com\/embedded-systems-tutorials\/#primaryimage"},"thumbnailUrl":"https:\/\/deepbluembedded.com\/wp-content\/uploads\/2018\/06\/intro2es1.jpg","keywords":["Embedded C","Embedded Systems Tutorials","Firmware","Learn Embedded Systems","Learn Microcontrollers Programming","Microchip PIC Tutorials","Microcontroller Programming","Microcontrollers"],"articleSection":["Embedded Systems","Embedded Tutorials","Microchip PIC"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/deepbluembedded.com\/embedded-systems-tutorials\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/deepbluembedded.com\/embedded-systems-tutorials\/","url":"https:\/\/deepbluembedded.com\/embedded-systems-tutorials\/","name":"Embedded Systems Tutorials Introduction | Embedded Systems Online Course","isPartOf":{"@id":"https:\/\/deepbluembedded.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/deepbluembedded.com\/embedded-systems-tutorials\/#primaryimage"},"image":{"@id":"https:\/\/deepbluembedded.com\/embedded-systems-tutorials\/#primaryimage"},"thumbnailUrl":"https:\/\/deepbluembedded.com\/wp-content\/uploads\/2018\/06\/intro2es1.jpg","datePublished":"2018-06-18T10:40:55+00:00","dateModified":"2023-08-17T20:53:34+00:00","description":"In the Embedded Systems Tutorials category of my website, you'll find educational content in form of Tutorials. that start at the very basic concepts to adv","breadcrumb":{"@id":"https:\/\/deepbluembedded.com\/embedded-systems-tutorials\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/deepbluembedded.com\/embedded-systems-tutorials\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/deepbluembedded.com\/embedded-systems-tutorials\/#primaryimage","url":"https:\/\/deepbluembedded.com\/wp-content\/uploads\/2018\/06\/intro2es1.jpg","contentUrl":"https:\/\/deepbluembedded.com\/wp-content\/uploads\/2018\/06\/intro2es1.jpg","width":"720","height":"340","caption":"Introduction To Embedded Systems Tutorials"},{"@type":"BreadcrumbList","@id":"https:\/\/deepbluembedded.com\/embedded-systems-tutorials\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/deepbluembedded.com\/"},{"@type":"ListItem","position":2,"name":"Embedded Systems Tutorials"}]},{"@type":"WebSite","@id":"https:\/\/deepbluembedded.com\/#website","url":"https:\/\/deepbluembedded.com\/","name":"DeepBlueMbedded","description":"Embedded Systems And Computer Engineering Tutorials &amp; Articles","publisher":{"@id":"https:\/\/deepbluembedded.com\/#\/schema\/person\/30259d66cf68c6c681562dbe551b7867"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/deepbluembedded.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/deepbluembedded.com\/#\/schema\/person\/30259d66cf68c6c681562dbe551b7867","name":"Khaled Magdy","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a8b5dc7385ec807e129b584974394d27e41c9979f3a2d0fd785b552b73529032?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a8b5dc7385ec807e129b584974394d27e41c9979f3a2d0fd785b552b73529032?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a8b5dc7385ec807e129b584974394d27e41c9979f3a2d0fd785b552b73529032?s=96&r=g","caption":"Khaled Magdy"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/a8b5dc7385ec807e129b584974394d27e41c9979f3a2d0fd785b552b73529032?s=96&r=g"},"description":"Principal Embedded Systems Engineer with years of experience in embedded software and hardware design. I work in the Automotive &amp; e-Mobility industry. However, I still do Hardware design and SW development for DSP, Control Systems, Robotics, AI\/ML, and other fields I'm passionate about. I love reading, writing, creating projects, and teaching. A reader by day and a writer by night, it's my lifestyle. I believe that the combination of brilliant minds, bold ideas, and a complete disregard for what is possible, can and will change the world! I will be there when it happens, will you?","sameAs":["https:\/\/deepbluembedded.com","https:\/\/www.facebook.com\/khaled.elrawy.359\/","https:\/\/www.instagram.com\/deepbluembedded\/","https:\/\/www.linkedin.com\/in\/khaled-magdy-\/","https:\/\/www.youtube.com\/channel\/UCzLSrNZD4rCjSCOVU9hknvA"]}]}},"jetpack_featured_media_url":"https:\/\/deepbluembedded.com\/wp-content\/uploads\/2018\/06\/intro2es1.jpg","jetpack_shortlink":"https:\/\/wp.me\/p9SirL-so","jetpack-related-posts":[{"id":2555,"url":"https:\/\/deepbluembedded.com\/embedded-systems-tutorials-final-episode\/","url_meta":{"origin":1760,"position":0},"title":"Embedded Systems Tutorials With PIC MCUs | Final Episode","author":"Khaled Magdy","date":"April 3, 2019","format":false,"excerpt":"Previous Tutorial End of The 1st Edition Next Tutorial Concluding The 1st Edition Of Embedded Systems Tutorials (With PIC MCUs) \u00a0 Congratulations to everyone who have been following my embedded systems tutorials up to this point. Up till now, you've approached reading ~100k words of tutorials. That's a lot of\u2026","rel":"","context":"In &quot;Embedded Systems&quot;","block_context":{"text":"Embedded Systems","link":"https:\/\/deepbluembedded.com\/embedded-systems\/"},"img":{"alt_text":"Embedded Systems Tutorials Edition1 End","src":"https:\/\/i0.wp.com\/deepbluembedded.com\/wp-content\/uploads\/2019\/04\/Embedded-Systems-Tutorials-Edition1-End.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/deepbluembedded.com\/wp-content\/uploads\/2019\/04\/Embedded-Systems-Tutorials-Edition1-End.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/deepbluembedded.com\/wp-content\/uploads\/2019\/04\/Embedded-Systems-Tutorials-Edition1-End.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/deepbluembedded.com\/wp-content\/uploads\/2019\/04\/Embedded-Systems-Tutorials-Edition1-End.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":1884,"url":"https:\/\/deepbluembedded.com\/creating-new-project-with-mplab\/","url_meta":{"origin":1760,"position":1},"title":"Creating New Project With MPLAB","author":"Khaled Magdy","date":"June 22, 2018","format":false,"excerpt":"In this tutorial, we'll learn how to create a new project in MPLAB and how to add the basic code files. Just stick with me through the following steps.","rel":"","context":"In &quot;Embedded Systems&quot;","block_context":{"text":"Embedded Systems","link":"https:\/\/deepbluembedded.com\/embedded-systems\/"},"img":{"alt_text":"Creating New Project With MPLAB IDE","src":"https:\/\/i0.wp.com\/deepbluembedded.com\/wp-content\/uploads\/2018\/06\/Creating-New-Project-With-MPLAB-IDE.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/deepbluembedded.com\/wp-content\/uploads\/2018\/06\/Creating-New-Project-With-MPLAB-IDE.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/deepbluembedded.com\/wp-content\/uploads\/2018\/06\/Creating-New-Project-With-MPLAB-IDE.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/deepbluembedded.com\/wp-content\/uploads\/2018\/06\/Creating-New-Project-With-MPLAB-IDE.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":2085,"url":"https:\/\/deepbluembedded.com\/how-to-write-isr-handlers\/","url_meta":{"origin":1760,"position":2},"title":"How To Write ISR Handlers","author":"Khaled Magdy","date":"July 15, 2018","format":false,"excerpt":"In this tutorial, we'll discuss a few guidelines to follow while writing ISR handlers. Which you can use as a guide for the upcoming tutorials. Let's see how to properly write ISR handlers!","rel":"","context":"In &quot;Embedded Systems&quot;","block_context":{"text":"Embedded Systems","link":"https:\/\/deepbluembedded.com\/embedded-systems\/"},"img":{"alt_text":"How To Write ISR Handlers - Embedded Systems Tutorials With PIC Microcontrollers","src":"https:\/\/i0.wp.com\/deepbluembedded.com\/wp-content\/uploads\/2018\/07\/How-To-Write-ISR-Handlers-Embedded-Systems-Tutorials-With-PIC-Microcontrollers.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/deepbluembedded.com\/wp-content\/uploads\/2018\/07\/How-To-Write-ISR-Handlers-Embedded-Systems-Tutorials-With-PIC-Microcontrollers.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/deepbluembedded.com\/wp-content\/uploads\/2018\/07\/How-To-Write-ISR-Handlers-Embedded-Systems-Tutorials-With-PIC-Microcontrollers.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/deepbluembedded.com\/wp-content\/uploads\/2018\/07\/How-To-Write-ISR-Handlers-Embedded-Systems-Tutorials-With-PIC-Microcontrollers.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":1983,"url":"https:\/\/deepbluembedded.com\/interfacing-7-segments-display-with-pic-microcontrollers\/","url_meta":{"origin":1760,"position":3},"title":"Interfacing 7-Segments Display With PIC Microcontrollers","author":"Khaled Magdy","date":"July 4, 2018","format":false,"excerpt":"In this tutorial, you'll learn how do 7-segments displays work, and how to interface 7-segments display with PIC microcontrollers. The 7-segments display needs a little bit of programming effort and it's pretty easy & straightforward. So let's get started!","rel":"","context":"In &quot;Electronics&quot;","block_context":{"text":"Electronics","link":"https:\/\/deepbluembedded.com\/electronics\/"},"img":{"alt_text":"How To Interface 7-Segments Display With Microcontrollers","src":"https:\/\/i0.wp.com\/deepbluembedded.com\/wp-content\/uploads\/2018\/07\/How-To-Interface-7-Segments-Display-With-Microcontrollers.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/deepbluembedded.com\/wp-content\/uploads\/2018\/07\/How-To-Interface-7-Segments-Display-With-Microcontrollers.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/deepbluembedded.com\/wp-content\/uploads\/2018\/07\/How-To-Interface-7-Segments-Display-With-Microcontrollers.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/deepbluembedded.com\/wp-content\/uploads\/2018\/07\/How-To-Interface-7-Segments-Display-With-Microcontrollers.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":3113,"url":"https:\/\/deepbluembedded.com\/programming-languages-for-embedded-systems\/","url_meta":{"origin":1760,"position":4},"title":"Best Programming Languages For Embedded Systems","author":"Khaled Magdy","date":"April 13, 2019","format":false,"excerpt":"What's The Best Programming Language For Embedded Systems? Is it C? Why? \u00a0 As you might be thinking, there is no way to answer such a question without knowing what's meant by \"The Best\". That really depends on what is the type of embedded computer platform involved in developing specific\u2026","rel":"","context":"In &quot;Articles&quot;","block_context":{"text":"Articles","link":"https:\/\/deepbluembedded.com\/embedded-systems\/embedded-systems-articles\/"},"img":{"alt_text":"What's the best programming language for embedded systems","src":"https:\/\/i0.wp.com\/deepbluembedded.com\/wp-content\/uploads\/2019\/04\/Whats-the-best-programming-language-for-embedded-systems.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/deepbluembedded.com\/wp-content\/uploads\/2019\/04\/Whats-the-best-programming-language-for-embedded-systems.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/deepbluembedded.com\/wp-content\/uploads\/2019\/04\/Whats-the-best-programming-language-for-embedded-systems.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/deepbluembedded.com\/wp-content\/uploads\/2019\/04\/Whats-the-best-programming-language-for-embedded-systems.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":1905,"url":"https:\/\/deepbluembedded.com\/configuration-bits-fuses-for-microcontrollers\/","url_meta":{"origin":1760,"position":5},"title":"Configuration Bits (Fuses) For Microcontrollers","author":"Khaled Magdy","date":"June 24, 2018","format":false,"excerpt":"In this tutorial, we'll discuss what are the configurations bits (fuse bits) and how to properly set their values for our Microchip PIC microcontroller using the MPLAB IDE.","rel":"","context":"In &quot;Embedded Systems&quot;","block_context":{"text":"Embedded Systems","link":"https:\/\/deepbluembedded.com\/embedded-systems\/"},"img":{"alt_text":"The Configuration Fuse Bits For Microcontrollers","src":"https:\/\/i0.wp.com\/deepbluembedded.com\/wp-content\/uploads\/2018\/06\/The-Configuration-Fuse-Bits-For-Microcontrollers.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/deepbluembedded.com\/wp-content\/uploads\/2018\/06\/The-Configuration-Fuse-Bits-For-Microcontrollers.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/deepbluembedded.com\/wp-content\/uploads\/2018\/06\/The-Configuration-Fuse-Bits-For-Microcontrollers.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/deepbluembedded.com\/wp-content\/uploads\/2018\/06\/The-Configuration-Fuse-Bits-For-Microcontrollers.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/deepbluembedded.com\/wp-json\/wp\/v2\/posts\/1760","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/deepbluembedded.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/deepbluembedded.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/deepbluembedded.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/deepbluembedded.com\/wp-json\/wp\/v2\/comments?post=1760"}],"version-history":[{"count":11,"href":"https:\/\/deepbluembedded.com\/wp-json\/wp\/v2\/posts\/1760\/revisions"}],"predecessor-version":[{"id":2584,"href":"https:\/\/deepbluembedded.com\/wp-json\/wp\/v2\/posts\/1760\/revisions\/2584"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/deepbluembedded.com\/wp-json\/wp\/v2\/media\/1761"}],"wp:attachment":[{"href":"https:\/\/deepbluembedded.com\/wp-json\/wp\/v2\/media?parent=1760"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/deepbluembedded.com\/wp-json\/wp\/v2\/categories?post=1760"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/deepbluembedded.com\/wp-json\/wp\/v2\/tags?post=1760"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}