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 ▼
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.