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
How is the system started?
How are C language functions called and how are parameters passed?
How to enable shutdown interrupt?
How do multi-core processors assign processes to run on a core?
How is MMU implemented?
How does the CPU handle the interrupt?
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 number | article |
---|---|
1 | What are Cortex, ARMv8, ARM architecture, ARM instruction set, and soc? This article will help you sort out the basic concepts [Popular Science] |
2 | Learn ARM from 0-Install Keil MDK uVision integrated development environment |
3 | Learn ARM-CPU principles from scratch, based on ARM SOC explanation |
4 | Learn ARM-ARM mode, registers, and pipelines from scratch |
5 | Learn ARM-ARM instructions from scratch, shift, data processing, BL, machine code |
6 | Learn ARM-MRS, MSR, addressing operations, and atomic operation principles from scratch |
7 | Learn ARM from 0 - exceptions, exception vector table, swi |
8 | Learn ARM-GNU pseudo instructions from 0, lds usage |
9 | Learn ARM-Mixed Assembly from 0 |
10 | Learn how to write ARM-GPIO and LED drivers from scratch |
11 | Learn ARM from 0-Detailed explanation of pwm based on Exynos4412 |
12 | Learn ARM from scratch - Exynos4412 interrupt details and key bare metal program writing |
13 | Detailed explanation of bare metal driver based on ARM UART |
14 | Learn ARM-exynos4412-RTC bare metal programming from scratch |
15 | Learn ARM-exynos4412-watchdog bare metal programming from 0 |
16 | Understanding ADC bare metal and Linux-based driver writing methods in one article |
17 | I2C timing details, I2C peripheral bare metal driver writing method based on ARM Cortex-A9 |
18 | SPI protocol, spi to can, MCP2515 bare metal driver detailed explanation |
19 | Learn ARM-Position Independent Code from 0 |
20 | uboot code startup analysis |
twenty one | Why is it more efficient to use structures? |
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
- Popular Resources
- Popular amplifiers
- Learn ARM development(16)
- Learn ARM development(17)
- Learn ARM development(18)
- Embedded system debugging simulation tool
- A small question that has been bothering me recently has finally been solved~~
- Learn ARM development (1)
- Learn ARM development (2)
- Learn ARM development (4)
- Learn ARM development (6)
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- LED chemical incompatibility test to see which chemicals LEDs can be used with
- Application of ARM9 hardware coprocessor on WinCE embedded motherboard
- What are the key points for selecting rotor flowmeter?
- LM317 high power charger circuit
- A brief analysis of Embest's application and development of embedded medical devices
- Single-phase RC protection circuit
- stm32 PVD programmable voltage monitor
- Introduction and measurement of edge trigger and level trigger of 51 single chip microcomputer
- Improved design of Linux system software shell protection technology
- What to do if the ABB robot protection device stops
- CGD and Qorvo to jointly revolutionize motor control solutions
- CGD and Qorvo to jointly revolutionize motor control solutions
- Keysight Technologies FieldFox handheld analyzer with VDI spread spectrum module to achieve millimeter wave analysis function
- Infineon's PASCO2V15 XENSIV PAS CO2 5V Sensor Now Available at Mouser for Accurate CO2 Level Measurement
- Advanced gameplay, Harting takes your PCB board connection to a new level!
- Advanced gameplay, Harting takes your PCB board connection to a new level!
- A new chapter in Great Wall Motors R&D: solid-state battery technology leads the future
- Naxin Micro provides full-scenario GaN driver IC solutions
- Interpreting Huawei’s new solid-state battery patent, will it challenge CATL in 2030?
- Are pure electric/plug-in hybrid vehicles going crazy? A Chinese company has launched the world's first -40℃ dischargeable hybrid battery that is not afraid of cold
- R8-5 Attribute Introduction
- [2022 Digi-Key Innovation Design Competition] Build a blockchain browser service
- How to quickly start embedded system development
- Cheer for the college entrance examination
- Mathematical formula solving
- TI millimeter wave radar evaluation report summary
- MSP430 communication resources IIC communication
- IAR burning program shows error
- Application of state machine principle in control program design.pdf
- The board has been mailed, please check the courier number in the post~