Embedded Linux Technical Summary

Click the top“100 Questions Technology”, select the pinned public account

Embedded insights delivered promptly

——

On the last day of 2018, it’s a great time to summarize the wonderful articles from this public account; looking back at 2018, the number of high-quality articles has increased compared to the previous two years. The happiest moment is when I see articles going viral, and I think this is the source of our motivation to keep operating.

This content covers: basic knowledge popularization, career planning and growth, common questions and answers during after-sales support, interview question analysis, methodology, and programming life, including original and reprinted content. The richness of the content can be seen from the list below, click the title to read the full article, and it will be updated continuously, so it’s recommended to bookmark. If you like it, give it a thumbs up.

Basic Knowledge Popularization

Basic knowledge about WiFi that must be understood

Recommended books for Embedded Linux (some include videos)

Before learning Embedded Linux, these concepts need to be clarified~

A brief history of ARM development

To look like an expert in embedded development, you need to know these!

Detailed explanation of Linux document attributes, owners, groups, permissions, and differences

Common commands and shortcuts for Ubuntu

A brief discussion on kernel Makefile, Kconfig, and .config files

Simple popularization of ARM instructions: adr, adrl, ldr, mov

Some concepts about uboot

Differences between ARM and X86 CPU architectures

Understanding the differences between ARM7 and ARM9 in one article

Plainly explained secrets of DDR memory

What is the difference between Embedded systems and microcontrollers?

This may be the most straightforward way to explain ARM interrupt principles and interrupt nesting

Forum highlights | Knowledge related to Volatile

How does Uboot actually start the kernel?

Embedded product development process

Embedded C programming specifications

Sorting of ARM version series and family members

Detailed explanation of C preprocessor commands

Advanced techniques for experts, ultimate memory technology guide

Common macros in the Linux kernel and their functions

Technical insights into Embedded system Boot Loader

Discussing the differences between SRAM and DRAM

Brief analysis of the compiler’s working process

Brief analysis of the Linux boot process (taking Debian as an example)

What is the Init system, the history and current state of the init system (Part 1)

Analysis of Linux initialization init system Part 2 – Upstart

Introduction to Swiss Army Knife BusyBox

Career Planning and Growth

Li Kaifu: How to write a good resume

Senior HR: How to discover a programmer’s core competitiveness during interviews

How technical personnel should prepare for interviews – theoretical part

If you can’t write a resume, don’t blame yourself for not finding a job

Discussion on how newcomers land in organizations

Caoz talks about capability growth series – the art of questioning

Six misconceptions from campus to workplace

9 military rules you must know in the workplace

What is the salary of a 985 master’s in embedded driver development?

The art of questioning | Repost

The first job after graduation and the issues of pursuing girls

Skills that a programmer with 3 years of work experience should have

As a programmer, your progress entirely depends on yourself

The most impressive answers during interviews! (Reposted over 300,000 times)

How to gain 3 years of work experience in 3 months

Top ten “don’ts” for beginners learning embedded systems.

Common Questions and Answers During After-Sales Support

How to install a cross-compiler, including video (with subtitles)

Things about NFS mounting

Essential guide for beginners on JZ2440

Repartitioning the JZ2440 development board

Summary of ping issues_20180726

If there are issues with the serial driver, how to debug?

SDRAM interface concepts & connecting peripherals of different widths

Common command set for network-related tasks

Summary of common U-boot commands

How to get Ubuntu on a virtual machine online?

How to use samba server on Ubuntu 16.04

Solutions for issues encountered when porting the tslib library: selected device is not a touchscreen

Summary of solutions for errors when configuring the Linux kernel and busybox on Ubuntu 16.04

If Win7 users don’t know how to use dnw to download firmware, see here.

Recommended tool MobaXterm for serial port, SSH remote login, and FTP transfer in one

Connection methods for CPU and peripherals with widths of 8, 16, and 32 bits

Plainly discussing text segment, data segment, and bss segment

Solutions for kernel panic when mounting the root filesystem – the most comprehensive solutions in history

Why is it necessary to set the stack when calling a C function from an assembly program?

Selected forum problems and solutions from 7.13

Selected forum problems and solutions from 2017.5.16

Selected forum problems and solutions from 2017.5.19

Beginner | Analysis of the S3C2440 startup process

Selected forum problems and solutions from 20170217

Selected forum problems and solutions from 20170221

Selected forum problems and solutions from 2017.3.20

Selected forum problems and solutions from 2017.3.10

Selected NFS problems and solutions

Changing the debugging serial port of JZ2440 to com2

Common forum problems selected (5 items)

Compiling uboot-1.1.6 with arm-linux-gcc 4.3.2

10 selected forum questions, to be continued

Debugging case: Using OpenJTAG to locate hardware bugs

Solving the black screen issue after 10 minutes on 2440

No title

A classmate asked 5 questions at once, what a surprise!

A wonderful week starts with 9 common questions

Why can’t the board’s timer be used?

What is the difference between irq and fiq?

What is the difference between misc_register() and register_chrdev()?

90% of people will encounter the third problem, don’t believe it, just see

10 common questions, 80% of people won’t know

Usage of #ifdef #else #endif #fi #ifndef

The role of Static and Const keywords in C language

Interview Question Analysis

Practice, three operating system interview questions for embedded engineers

Practice! Three classic embedded C interview questions, answers at the end.

Classic review: Analysis of 11 embedded Linux C language interview questions

Sharing and analysis of three classic C language interview questions

Practice, three classic embedded C interview questions, answers at the end.

School has started, three embedded interview questions to help you out

Wiki Tutorials

The essential path for microcontroller engineers: Linux

Microcontroller knowledge is one of the foundations for Linux driver development and how to learn microcontrollers

Detailed explanation of Linux entry commands

Detailed explanation of Vi editor usage

Detailed explanation of advanced Linux commands

S3C2440 clock system & programming to improve runtime clock

Introduction to Makefile and its rules

Syntax of Makefile

Pointers to char and int vs pointers to arrays and strings

Detailed explanation of gcc & arm-linux-gcc compilation process

The first ARM bare metal program and its implications

Introduction and experience of device tree (based on Linux 4.19)

Device tree DTS specifications

How the Linux kernel handles the device tree

Small Experiments

Porting SDL to JZ2440 to display BMP images && release system in 2 sections

Making a boot logo is that simple

Creating a filesystem from scratch to JZ2440, enabling support for telnet, ftp, and tftp

Linux Driver Related

Another way to write character device drivers – mmap method to operate LED

Analysis of bus device driver model

Understanding the I2C driver framework in one picture

NAND FLASH driver framework

Understanding the epoll model

Background knowledge popularization of device tree

Detailed explanation of device tree (Part 2)

Detailed explanation of device tree (Part 3): Code analysis

Sharing tips for driver debugging

In-depth analysis of Linux kernel linked lists

Linux Application Related

TCP/UDP Linux network programming detailed explanation

Using tar command in Linux

Common Linux commands – development and debugging section

Android System Related

Why does Android use Binder as the IPC mechanism?

Talk about Android.mk

Solutions for Android Studio ADB response failure

Learning Methodology

Reading English datasheets is not as difficult as imagined

How to master all programming languages

Programming Life

Highlights from Wei Dongshan’s Q&A on Baidu Tieba

Wei Dongshan: Opportunities are always reserved for those who are prepared

Selected expert Q&A

Exclusive release: CSDN’s interview with Wei Dongshan, reading it will excite you for a long time

Zhou Ligong: My 25 years of embedded career

Product Related

Detailed directory introduction of all videos by Wei Dongshan

All videos on device tree

Learning roadmap for Embedded Linux + Android

–END–

There is a line

Promotion

Linux kernel version 3.1 and above supports device trees. If you are working on drivers or system-related tasks, it is recommended to learn about device trees, which will definitely be useful. I recommend the device tree video recorded by Teacher Wei Dongshan, which took 3 months to create, consisting of 6 lessons and 29 sections, lasting about 10 hours. The same content is sold by peers for over 200, but we offer it at a fair price of 69. Feel free to inquire.

Highlights of the device tree course:

1. Reasonable price, in-depth yet easy to understand, truly explaining device trees

2. Continuing the consistent style: teaching while drawing, coding on the spot

3. Rich content, covering u-boot/kernel/driver handling of device trees

dts=>dtb=>device_node=>platform_device

Device tree course directory:

Lesson 1: Introduction to device trees and experience

Section 01: Three ways to write character device driver programs

Section 02: Traditional way of writing character device driver programs

Section 03: Compiling and testing character device drivers

Section 04: Bus device driver model

Section 05: How to write drivers when using device trees?

Section 06: What to do if you just want to use it without in-depth research?

Lesson 2: Specifications of device trees

Section 01: DTS format

Section 02: DTB format

Lesson 3: How the kernel handles device trees

Section 01: Simple handling of dtb by kernel head.S

Section 02: Handling of machine_desc in the device tree

Section 03: Handling runtime configuration information in the device tree

Section 04: Converting dtb to device_node

Section 05: Converting device_node to platform_device

Section 06: How does platform_device match with platform_driver?

Section 07: Device tree operation functions in the Linux kernel

Section 08: Viewing device tree in the root filesystem

Lesson 4: U-boot support for device trees

Section 01: Passing dtb to the Linux kernel

Section 02: Principles of modifying dtb

Section 03: fdt porting

Lesson 5: Device trees in interrupt systems

Section 01: Introduction and processing flow of interrupt concepts

Section 02: Overview of Linux interrupt handling framework and code flow

Section 03: Evolution of interrupt numbers and irq_domain

Section 04: Experience using device trees to describe interrupts on S3C2440

Section 05: Describing interrupts in device trees

Lesson 6: Practical operations

Section 01: Using device trees to specify interrupts for DM9000 network card and touch screen

Section 02: Simple use of clocks in device trees

Section 03: Simple use of pinctrl in device trees

Section 04: Specifying various parameters for LCD using device trees

Purchase link:

https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w5003-18996326770.1.764a82accZHBAf&id=577749510933&scene=taobao_shop

If you have concerns about video quality, please preview 2 sections:

Traditional way of writing character device drivers ▲

What to do if you just want to use device trees without in-depth research? ▲

Below are some evaluations from device tree students ▼

Embedded Linux Technical Summary

How to obtain the selected quality articles from this public account?

Please reply “m” in the public account backend to get

Join the community:

The official WeChat group of Wei Dongshan has been opened for students to communicate. Add the administrator’s WeChat (13266630429, verification: join group) to enter, limited spots available on a first-come, first-served basis.

Embedded Linux Technical Summary

Embedded Linux Technical Summary

Leave a Comment