youcef_ali
youcef_ali
DIIDevHeads IoT Integration Server
Created by youcef_ali on 6/12/2024 in #devheads-feed
What is the role of a bootloader in embedded systems programming?
A bootloader is a crucial piece of software in embedded systems, responsible for preparing the device to run its main application. This involves initializing hardware, setting up memory, and loading the application code from storage (such as flash memory) into RAM. Beyond these basic functions, bootloaders can also handle firmware updates, debugging, and communication with other devices. Types of Bootloaders There are two primary types of bootloaders: primary and secondary. The primary bootloader is the first code that runs when a device powers on or resets, typically stored in read-only memory (ROM) or a protected flash memory area. Its primary functions include basic hardware initialization and then transferring control either to a secondary bootloader or directly to the application code. Secondary bootloaders come into play after the primary bootloader, residing usually in flash memory or external storage. They are responsible for more complex tasks such as loading the application code into RAM, verifying the integrity and digital signatures of the code, and possibly offering options for different firmware versions to the user. Common Bootloaders Bootloaders are integral to many embedded systems, with several well-known examples: U-Boot: A universal bootloader that supports multiple architectures (ARM, MIPS, PowerPC, x86, etc.), various storage devices, communication protocols, and firmware update methods. GRUB: Primarily used for x86 architectures, GRUB supports multiple operating systems, including Linux, Windows, and BSD. Arduino Bootloader: Designed for Arduino boards based on the AVR architecture, it allows users to upload code via serial or USB ports. STM32 Bootloader: Used in STM32 microcontrollers based on ARM Cortex-M architecture, it facilitates firmware uploads through serial, USB, or SPI ports. https://www.linkedin.com/advice/1/what-role-bootloader-embedded-systems-programming-kvtcc
5 replies
DIIDevHeads IoT Integration Server
Created by youcef_ali on 6/11/2024 in #devheads-feed
EEPROM vs. FRAM vs. eMMC vs. SD Cards
2 replies
DIIDevHeads IoT Integration Server
Created by youcef_ali on 6/10/2024 in #devheads-feed
ESP32 ADC Adjustment
Nice publication about esp32 adc and calibration: https://www.instructables.com/Do-You-Know-About-ESP32-ADC-Adjustment/
2 replies
DIIDevHeads IoT Integration Server
Created by youcef_ali on 6/6/2024 in #devheads-feed
Differences Between ARMv7 vs ARMv8
Hi This nice post about ARM MPU 7 ET 8. https://iies.in/blog/differences-between-armv7-vs-armv8/
2 replies
DIIDevHeads IoT Integration Server
Created by youcef_ali on 6/2/2024 in #devheads-feed
Implementation of GPIO via MIO and EMIO in All Programmable SoC (AP SoC) Zynq 7000
The below tutorial provides a brief overview of available input/output peripherals (IOPs) and their relation with multiplexed input/output (MIO) and extended MIO (EMIO) in Zynq 7000. After that, a comprehensive detail of general purpose input/output (GPIO), which is one of the available IOPs in Zynq 7000, and its programming via MIO and EMIO is explained. Lastly, the GPIOs are implemented by making use of Vivado and Zedboard as a software and hardware platform respectively. https://fpgawork.wordpress.com/2018/12/20/implementation-of-gpio-via-mio-and-emio-in-all-programmable-soc-ap-soc-zynq-7000/
2 replies
DIIDevHeads IoT Integration Server
Created by youcef_ali on 6/1/2024 in #devheads-feed
FreeRTOS : Task Suspend and Resume
This is q good publication on how to use task suspend and resume. https://www.instructables.com/FreeRTOS-With-Arduino-06-Task-Suspend-and-Resume/
2 replies
DIIDevHeads IoT Integration Server
Created by youcef_ali on 5/27/2024 in #devheads-feed
How to make Sensor Data send directly to a Database via MQTT using Machbase
The below article explain and show how we can write data received from mqtt into databse drielctly. https://medium.com/machbase/about-mqtt-e41b4eba0b4d
2 replies
DIIDevHeads IoT Integration Server
Created by youcef_ali on 5/23/2024 in #devheads-feed
MQTT Client Message Queueing and Delivery
3 replies
DIIDevHeads IoT Integration Server
Created by youcef_ali on 5/22/2024 in #code-review
data buffering when connectivity is lost
This topic is to share with how you manage your application and how you deal with it in case the connectivity is lost, and what you do when the connection is established ?
7 replies
DIIDevHeads IoT Integration Server
Created by youcef_ali on 4/24/2024 in #edge-networking
How to Install and Secure the Mosquitto MQTT Messaging Broker on Ubuntu 18.04
3 replies
DIIDevHeads IoT Integration Server
Created by youcef_ali on 4/21/2024 in #devheads-feed
What is the I2S Communication Protocol?
Most, if not all, seasoned makers and hobbyists will have heard about I2C — a highly popular standard for transmitting data between microcontrollers and other similar devices. However, I2C and the more unfamiliar I2S protocol do not have anything in common other than their similarity in names. This article explores the unconventional, yet straightforward I2S communication protocol, its uses, and how it functions. https://www.digikey.com/en/maker/tutorials/2023/what-is-the-i2s-communication-protocol
2 replies
DIIDevHeads IoT Integration Server
Created by youcef_ali on 4/18/2024 in #devheads-feed
Linux vs Unix
Are you confused about the difference between Linux and Unix? Do you think they are the same thing, or maybe even rivals? Well, you are not alone. Many people have no clue about these two operating systems, and some even use them interchangeably. But fear not, because in this blog post, https://medium.com/stackademic/linux-vs-unix-bruhhh-11b08e28be6a
2 replies
DIIDevHeads IoT Integration Server
Created by youcef_ali on 4/17/2024 in #devheads-feed
Backpressure — the resisted flow of data through software
2 replies
DIIDevHeads IoT Integration Server
Created by youcef_ali on 4/14/2024 in #devheads-feed
HOW TO ADD A CUSTOM COMPONENT TO AN ESP-IDF PROJECT
The below post shows how to create a custom component in esp-idf using visula code for more reability and clean code SRC: https://www.phippselectronics.com/how-to-add-a-custom-component-to-an-esp-idf-project/
4 replies
DIIDevHeads IoT Integration Server
Created by youcef_ali on 3/25/2024 in #devheads-feed
RISC and CISC: Understanding the Differences and Their Impact on Computer Architecture
No description
2 replies
DIIDevHeads IoT Integration Server
Created by youcef_ali on 3/23/2024 in #devheads-feed
Microcontroller Architecture
No description
2 replies
DIIDevHeads IoT Integration Server
Created by youcef_ali on 3/19/2024 in #devheads-feed
What is Endianness? Big-Endian vs Little-Endian
No description
2 replies
DIIDevHeads IoT Integration Server
Created by youcef_ali on 3/12/2024 in #devheads-feed
Error Detection & Correction
There are many reasons such as noise, cross-talk etc., which may help data to get corrupted during transmission. The upper layers work on some generalized view of network architecture and are not aware of actual hardware data processing.Hence, the upper layers expect error-free transmission between the systems. Most of the applications would not function expectedly if they receive erroneous data. Applications such as voice and video may not be that affected and with some errors they may still function well. Data-link layer uses some error control mechanism to ensure that frames (data bit streams) are transmitted with certain level of accuracy. But to understand how errors is controlled, it is essential to know what types of errors may occur. Types of Errors There may be three types of errors: 1.Single bit error: In a frame, there is only one bit, anywhere though, which is corrupt. 2.Multiple bits error: Frame is received with more than one bits in corrupted state. 3.Brust error: Frame contains more than1 consecutive bits corrupted. Error Detection Errors in the received frames are detected by means of Parity Check and Cyclic Redundancy Check (CRC). In both cases, few extra bits are sent along with actual data to confirm that bits received at other end are same as they were sent. If the counter-check at receiver’ end fails, the bits are considered corrupted. https://www.tutorialspoint.com/data_communication_computer_network/error_detection_and_correction.htm
2 replies
DIIDevHeads IoT Integration Server
Created by youcef_ali on 3/10/2024 in #devheads-feed
VSCode: Select Compare Tabs
No description
2 replies