From Keil to GCC: Who Handles Memory Initialization During Embedded Program Startup?

From Keil to GCC: Who Handles Memory Initialization During Embedded Program Startup?

In embedded development, many engineers often wonder: after powering on the program, how are global and static variables initialized? Is the underlying memory operation logic the same from Keil MDK-ARM to the GCC cross-toolchain? Today, we will break down this core issue and understand the complete process from chip power-up to the execution of the … Read more

Embedded Developers: What Are the Differences Between Linux and HarmonyOS?

Embedded Developers: What Are the Differences Between Linux and HarmonyOS?

With the increasing maturity of HarmonyOS, the Harmony ecosystem continues to expand, currently covering key areas in various industries such as communication, security, healthcare, finance, industry, parks, education, and home, with a continuously increasing market share. A transformation driven by “new scenarios and new experiences” has already begun. As embedded developers, understanding and mastering this … Read more

In-Depth Analysis of the Linux RTC Subsystem (Part 1)

In-Depth Analysis of the Linux RTC Subsystem (Part 1)

1. RTC Subsystem Framework The RTC (Real Time Clock) subsystem is divided into the following three parts: RTC Core is responsible for the registration and deregistration of RTC devices, providing character device files and sysfs interfaces to user space. RTC Driver registers the RTC device into the RTC subsystem and provides a set of low-level … Read more

RT-Thread Learning Notes Series – 28 I2C Driver

RT-Thread Learning Notes Series - 28 I2C Driver

@[toc] https://github.com/wdfk-prog/RT-Thread-Study 28 I2C Driver https://www.i2c-bus.org/i2c-primer/termination-versus-capacitance/ 28.0 Hardware Circuit External link image storage failed, the source site may have anti-leech mechanisms, it is recommended to save the image and upload it directly. The I2C bus uses SDA and SCL to transmit data and clock. First, it is important to realize that SDA and SCL are … Read more

Flame Alarm Experiment (Flame Detection Sensor)

Flame Alarm Experiment (Flame Detection Sensor)

Flame Alarm Experiment (Flame Detection Sensor) 1. Course Content Understand the principles of flame sensors, use flame sensors and buzzer modules to create a simple flame alarm experiment, and output the corresponding results to the serial assistant. 2. Course Objectives 1.Understand the principles of flame sensors 2.Drive the flame sensor 3.Drive the buzzer 4.Output results … Read more

Comprehensive VxWorks Programming Guide (2025 Edition)

Comprehensive VxWorks Programming Guide (2025 Edition)

VxWorks is one of the most widely used real-time operating systems (RTOS) in critical mission fields such as aerospace, defense, automotive, robotics, and industrial control. VxWorks is trusted for its determinism, safety certification, and security, and continues to evolve, providing developers with modern tools, container support, and flexible programming models. This guide provides a comprehensive … Read more

Introduction to FreeRTOS Basics Part Six

Introduction to FreeRTOS Basics Part Six

Following the previous section, when we use global variables to implement synchronization and mutual exclusion, it is as follows:When the if condition is met, the task switches, and printf may not print completely, so we need to introduce a queue.First, let’s look at a few definitions. Queue (First In First Out) Understanding a queue is … Read more

Open Source Tutorial: rust-raspberrypi-OS-tutorials – Building an Operating System on Raspberry Pi from Scratch Using Rust

Open Source Tutorial: rust-raspberrypi-OS-tutorials - Building an Operating System on Raspberry Pi from Scratch Using Rust

rust-raspberrypi-OS-tutorials is • An open-source tutorial series, where each chapter is a standalone bootable kernel image. • Each chapter builds upon the previous one, adding new features (serial output, virtual memory, exception handling, etc.). • The target is ARMv8-A (AArch64), primarily running on Raspberry Pi 3 and 4. • System development using Rust balances performance … Read more

Avoid Pitfalls in RTOS LCD Driver Development! A Hardcore Guide for Beginners

Avoid Pitfalls in RTOS LCD Driver Development! A Hardcore Guide for Beginners

Developing an LCD driver under RTOS, are you often confused by FSMC timing and pin configuration? Today, using the STM32 + ILI9341 example, I will guide you step by step from 0 to 1, helping you avoid 90% of the pitfalls! 1. First, understand FSMC and 8080, the ILI9341 supports 8080 parallel timing, and the … Read more

Is TFTP Support in OpenWrt Really That Difficult?

Is TFTP Support in OpenWrt Really That Difficult?

TFTP (Trivial File Transfer Protocol) is a protocol in the TCP/IP protocol suite used for simple file transfers between clients and servers. It provides a straightforward and low-overhead file transfer service, operating on port 69. TFTP is a simple protocol for transferring files, implemented based on the UDP protocol. However, we cannot be certain that … Read more