🚀 Exciting News! I've completed the GPIO Driver for the STM32F103 Cortex-M3 and uploaded it to my GitHub repository as part of a comprehensive project to develop drivers for this microcontroller. Check out the GPIO driver here: [https://lnkd.in/dCJG_3sw] 🔧 Features include: - Pin configuration (input, output, alternate function) - Pin state control (set, reset, toggle) - GPIO interrupt handling This achievement is a significant milestone in my advanced diploma program with Eng.Amgad Samir, where I am enhancing my expertise in embedded systems and microcontroller development. Stay tuned for more drivers on the way! #EmbeddedSystems #STM 🛠️📂🖥️
ahmed osama’s Post
More Relevant Posts
-
I’m thrilled to share the culmination of my journey in ARM Architecture and STM interfacing, where I developed drivers for the STM32F103C8 and STM32F446 MCUs, leveraging the power of Cortex-M3 and Cortex-M4 processors. Using the bluepill (STM32F103C8T6) and Nucleo Board (STM32F446RE), I created a series of small projects to test these drivers, ensuring their reliability and performance in real-world scenarios. Whether you’re diving into embedded systems or looking to explore ARM processors, these drivers could be a valuable resource. Feel free to explore : https://lnkd.in/d33t86QY #EmbeddedSystems #ARM #STM32 #CortexM3 #CortexM4 #Microcontrollers #STM32F103C8 #STM32F446 #OpenSource
GitHub - eslam276/ARM-Drivers
github.com
To view or add a comment, sign in
-
🚀 Stacks in ARMCortex-M(x) processors>> Our ex will be on Cortex-M4 processor - STM32f446 microcontroller (Nucleo board). ⚡ The processor uses a full descending stack. this means the stack pointer holds the address of the last stacked item in memory. ⭐ processor implements two stacks, the main stack (msp) and the process stack (psp). In Thread mode, the CONTROL register controls whether the processor uses the (msp) or the (psp). In Handler mode, the processor always uses the main stack. 📢 In Bit[1] of CONTROL register. • 0 = Main Stack Pointer (MSP). This is the reset value. • 1 = Process Stack Pointer (PSP). 📌 In our ex we take 1kbyte from stack from the end and divide it into two equal sections: 1️⃣ MSP section which is hold the address of (RAM_END) and it will take 512 byte, because in default initialization processor take the value of 1st address of flash region and put it into MSP. 2️⃣ PSP section which is hold the address of (RAM_END + 512) and it will take 512 byte too. then by default when the program is running the value in (SP) is the same value in (MSP) we need to link (SP) with (PSP) to do it, we must intialize (PSP) with any value once you do it you will can link it with (SP). **__asm volatile(".equ RAM_END, (0x20000000U + (128*1024)) "); // represents the preprocessor in assembly then we link (PSP) with (SP) by Putting 0x02 in CONTROL REG __asm volatile ("LDR R0, =#0x02"); __asm volatile ("MSR CONTROL, R0"); int func (multiply) >> proccessor is in thread mode and (PSP) Link with (SP), once func of generate interrupt executes the processor will be in handelr mode (MSP) will link with (SP). https://lnkd.in/dVUk3Kwh
GitHub - MSadek90/Stacks_ARMCortex-Mx
github.com
To view or add a comment, sign in
-
🌟 Excited to join the LinkedIn community! 🌟 Hello everyone! I'm thrilled to share that I have understanding the concepts of GPIO Peripheral and External Interrupt handling in Learn-in-depth with Eng : Keroles khalil, and I've written my own driver for the STM32F103C6 microcontroller from scratch! 🚀 Here are some highlights of my work : ● GPIO driver : - Write and read logic on a pin. - Toggle logic on a pin. - Locking pin functionality ● External Interrupt driver : - Handle interrupt service routines (ISR) - Efficient ISR calling As an application and testing my GPIO driver, I wrote a driver for a LCD and a keypad in the HAL Layer. I'm excited to make a small project with these components! To know more details about my drivers, check out my GitHub repo. https://lnkd.in/dUZfE5QX #EmbeddedSystems #Microcontrollers #Engineering #Programming #Projects #Electronics #Communications
GitHub - AbdelrahmanMarzoq/STM32
github.com
To view or add a comment, sign in
-
Excited to share my recent project where I developed a complete driver for the CS5532BS analog-to-digital converter (ADC) using the powerful PIC32MZ2064DAR MIPS microcontroller! 📟 The CS5532BS is a high-precision, low-noise ADC, ideal for applications requiring accurate signal measurement. Integrating it with the PIC32MZ2064DAR, known for its high performance and extensive peripheral options, provided a robust solution for precise data acquisition. 🔧 Tools: MPLAB X IDE and XC32 Compiler for development. Delight in using!🙂 #Microchip #FirmwareDevelopment #EmbeddedSystems #mips
GitHub - rashvand/CS5532
github.com
To view or add a comment, sign in
-
🚀 Introducing PIC18F46K20 Controller Drivers v1.0! 🚀 I'm thrilled to announce the release of version 1.0 of our PIC18F46K20 Controller Drivers! 🎉 This project I have been working on for a while! 🔧 What's Included: MCAL (Microcontroller Abstraction Layer) Drivers: GPIO for simple and smooth I/O instructions Interrupts for responsive, event-driven programming. EEPROM for persistent data storage. ADC for converting analog signals to digital values. ECU (Electronic Control Unit) Drivers: 7-Segment Display, Button, DC Motor, Relay, Keypad, and LCD drivers. 📚 Explore the Documentation: Each driver comes with detailed documentation, usage examples, and implementation details. Dive into the respective directories to enhance your project development. 🆕 What's Next: The next versions will contain the remaining peripherals. This release marks the beginning of the journey. I'll continue to refine and expand the drivers expand! GitHub Repo: https://lnkd.in/dxjBSG7v #PIC18F46K20 #Microcontroller #Drivers #OpenSource #EmbeddedSystems #Coding #DeveloperCommunity #ReleaseAnnouncement #Version1.0
GitHub - yousif20121/PIC18F46k20_Drivers_V1.0
github.com
To view or add a comment, sign in
-
I've did this project last semester in OS course, basically it's a CPU scheduler simulation that simulate scheduling methods in a CPU like FCFS, SJF, Priority, RR support preemptive & non-preemptive modes. #C++
GitHub - omaralotabi/cpuschedular
github.com
To view or add a comment, sign in
-
hello everyone, this is my repo for STM32F407, in this repo you can find : 1-RCC with configure as polling or interrupt 2- GPIO & AFIO mapping in configuration file and enable or disable ports 3- DMA 1&2 4-STK 5-NVIC 6-UART with configuration and can use any UART 1-6 . I studied ETH protocols for STM as self-study and know about frames , mode, and the connection to physical layers, collision handling, ... repo link: https://lnkd.in/d7ECMTuY #arm #embeddedsystems #embeddedsoftware #embedded #embeddedc #stm32 #c #uart #automotive #embeddedsystem #embeddedsoftwaredevelopment #github
GitHub - Spot123456/STMF407G_Drivers_update: update driver for more efficient
github.com
To view or add a comment, sign in
-
working on my custom OS . Its a hobby project mainly to learn OS concepts by practically doing in C currently implemented :- memory management and I/O devices in development :- GDT, paging, CPU scheduling https://lnkd.in/gEWGb5Gt
GitHub - tushar1977/custom_os
github.com
To view or add a comment, sign in
-
Thanks to Matthew Rocklin of Coiled for proposing the 1 trillion row challenge. I tested my new Dell Precision 7960 workstation. The hardware spec is: Intel(R) Xeon(R) w5-3435X CPU 16 core/32 thread max speed 4.7GHz, 512GB DDR5 LRDIMMs running at 4400 MHz, 4 x Samsung Pro 990 2TB Gen 4 NVMe in a RAID 0 in a Dell UltraSpeed card in a PCIe 5.0 x 16 slot, NVIDIA RTX A6000 (Ampere) #GPU 48GB. I completed the task in 26 minutes and 15 seconds with a parallel #ApacheArrow aggregation solution, then #DuckDB for the final presentation. I adapted Matt's script to generate the input files. Interestingly the optimal solution, found by trial and error, was to use a smaller file batch size (10 files) and 8 parallel workers. It is possible to significantly speed up the process (by an order of around 5x) using just the station indexes, and joining to station names on final output. However, this would really be cheating as the purpose of the test is to aggregate string data. It also requires adaptation of the generation scripts. You can read more about my approach in the issues section of the Coiled 1trc GitHub repo. Joshua Patterson, Fernanda Foertter
GitHub - coiled/1trc
github.com
To view or add a comment, sign in
-
-I am delightful to announce that i have implemented Bootloader of STM32f407VG that based on ARMCortexM4 from scratch ; A bootloader is a piece of code that manages startup, system initialization, and updates for the microcontroller, allowing application software to be reprogrammed without the need for a debugger by different ways of communications. Here’s a brief overview of its role: 1. System Initialization: After a reset or power on, this process configures hardware for software to run on. 2. Loading the OS: The bootloader's main responsibility after the initial setup is to load the firmware or operating system into memory from storage. 3. Software upgrades: Provides effective and safe upgrades for applications. 4.Security Features: Secures software upgrades and provides authentication. 5. Communication Handling: manages protocols such as Ethernet, LIN, and CAN. 📝 Source Code on my GitHub page : https://lnkd.in/dMEy9kpN #embeddedsoftware #embeddedsystems #AUTOSAR #bootloader #BootloaderDevelopment #AutomotiveEngineering #EmbeddedSystems #SoftwareArchitecture #ECU #memory #microcontroller #STM32
GitHub - Alielden39/STM32F407_Bootloader
github.com
To view or add a comment, sign in
Senior Embedded software engineer at Valeo
1moCongrats Osama So proud of you