Should embedded engineers learn ARM assembly instructions?

Publisher:梦中徐来Latest update time:2021-08-05 Source: eefocus Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

Should embedded engineers learn ARM assembly instructions?

There are many answers to this question when searching online. Most of them suggest not to learn assembly language but just learn C language.


As a driver engineer with more than ten years of experience, I personally believe that assembly language still needs to be mastered. If you want to get proficient and in-depth, knowledge of assembly and computer systems is a must.


Let’s list some questions

  1. How is the system started?

  2. How are C language functions called and how are parameters passed?

  3. How to enable shutdown interrupt?

  4. How do multi-core processors assign processes to run on a core?

  5. How is MMU implemented?

  6. How does the CPU handle the interrupt?

  7. How are system calls implemented?

To understand these questions clearly, you must understand assembly code and ARM architecture.
System startup and power-on codes are all assembly code. If you don't understand assembly code, how do you know how the system is started?
If you want to understand the nature of pointers and function names, you must go deep into assembly-level code and disassemble to see how the underlying instructions process the advanced features of C language. This requires a solid foundation in assembly language.


1. Mastering assembly is a necessary skill for becoming a low-level system engineer or NB engineer

In addition, assembly language is not that scary. It only takes half a day to learn the dozen commonly used commands, plus the supporting pseudo instructions and basic program structure. Instead of spending half a day wondering whether to learn it or not, it is better to learn it quickly. It is better to have more skills.

Of course, before learning assembly, you also need to have an understanding of the CPU processor architecture and registers. You must know that assembly programs deal with these registers.


To learn ARM assembly, you need to master the basic architecture of the ARM processor and the register configuration in different modes.

Eventually you will find that what you are learning is not assembly, but ARM!

Assembly is just a language tool, some mnemonics.

What we want to learn is actually ARM.


2. ARM article structure

In order to help everyone learn ARM better and faster, Yikoujun has gradually broken down the knowledge points of ARM based on his many years of research and development and teaching experience, explained them in a certain order, and finally broke them down into twenty-one articles.


Yikoujun has made a detailed review of the overwhelming amount of information on the Internet. The content setting can be said to be a nanny-like explanation. You only need to follow my article and study step by step to master ARM assembly. It is truly learning ARM assembly from scratch.

Serial numberarticle
1What are Cortex, ARMv8, ARM architecture, ARM instruction set, and soc? This article will help you sort out the basic concepts [Popular Science]
2Learn ARM from 0-Install Keil MDK uVision integrated development environment
3Learn ARM-CPU principles from scratch, based on ARM SOC explanation
4Learn ARM-ARM mode, registers, and pipelines from scratch
5Learn ARM-ARM instructions from scratch, shift, data processing, BL, machine code
6Learn ARM-MRS, MSR, addressing operations, and atomic operation principles from scratch
7Learn ARM from 0 - exceptions, exception vector table, swi
8Learn ARM-GNU pseudo instructions from 0, lds usage
9Learn ARM-Mixed Assembly from 0
10Learn how to write ARM-GPIO and LED drivers from scratch
11Learn ARM from 0-Detailed explanation of pwm based on Exynos4412
12Learn ARM from scratch - Exynos4412 interrupt details and key bare metal program writing
13Detailed explanation of bare metal driver based on ARM UART
14Learn ARM-exynos4412-RTC bare metal programming from scratch
15Learn ARM-exynos4412-watchdog bare metal programming from 0
16Understanding ADC bare metal and Linux-based driver writing methods in one article
17I2C timing details, I2C peripheral bare metal driver writing method based on ARM Cortex-A9
18SPI protocol, spi to can, MCP2515 bare metal driver detailed explanation
19Learn ARM-Position Independent Code from 0
20uboot code startup analysis
twenty oneWhy is it more efficient to use structures?


Reference address:Should embedded engineers learn ARM assembly instructions?

Previous article:How to use UBOOT's own loadb command to load the application program into SDRAM for running
Next article:Summary of Linux 2.6.32 porting

Latest Microcontroller Articles
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号