In the ARM + Linux training class, the instructor often begins by explaining the ARM development board using ADS or RealView MDK. The reason for this approach is as follows:
1. **Understanding the ARM Architecture**: ARM is a type of computer architecture, and mastering its structure means understanding how it operates. In university, courses like "Microcomputer Principles" typically cover the working principles of x86 computers and teach x86 assembly language. Since ARM and x86 are fundamentally different, it's essential to first grasp the basic working principle of ARM and learn ARM assembly before moving on to ARM + Linux.
2. **Learning ARM Assembly Language**: Assembly language is a low-level programming language that directly interacts with hardware. ARM assembly differs significantly from x86 due to architectural differences. Although there have been many books over the years dedicated to ARM architecture and programming, such as *"ARM Architecture and Programming"*, the availability of resources has increased with technological advancements. Mastering ARM assembly is crucial for ARM + Linux learning, even though it's not heavily used in Linux itself—still, it’s necessary during the boot process.
3. **Reading the Schematic Diagram of the ARM Development Board**: The schematic diagram is created by hardware engineers. Even though it belongs to the hardware domain, software engineers working on ARM + Linux must be able to interpret it, especially when developing Linux drivers. For example, a common experiment in ADS or MDK is the "Horse Lights" program, where LEDs on the board light up sequentially. To implement this, you need to examine the circuit diagram to determine which GPIO pins are connected to the LEDs. Then, by setting those pins high or low in the code, you can control the LED states. This simple example demonstrates how software and hardware work together, helping engineers understand the basics of embedded systems.
4. **Using ARM Like a Microcontroller**: The purpose of microcontrollers is broad, with the C51 series being one of the most commonly used. These devices don’t require an operating system and usually run a single-cycle program to perform basic tasks. While the C51 series belongs to the x86 family, its MCU and desktop CPU functions differ, but the assembly language remains similar. ARM sits between the C51 microcontroller and x86 desktop CPUs, making it suitable for microcontroller applications. ADS and MDK are two development environments tailored for ARM. The latest ARM versions, such as Cortex, are categorized into M (for microcontrollers) and A (for operating systems).
5. **Reviewing C Language Programming**: When debugging an ARM development board using ADS or MDK, both assembly and C are commonly used. While assembly is specific to ARM, C is a widely-used intermediate language that is platform-independent. The syntax remains consistent across platforms, and combining C with ARM assembly helps in quickly grasping key concepts. Proficiency in C plays a significant role in advancing in ARM + Linux development.
ADS was an integrated development environment developed by ARM, and although it has been discontinued, it remains useful for debugging older ARM cores like ARM11. RealView MDK, a successor to ADS, was introduced after ARM acquired Keil. It combines the best features of Keil C51 and ADS, supporting all ARM versions. Though more complex, it retains many methods and interfaces from ADS, making the transition smoother.
Whether using ADS or MDK, the goal for learners of ARM + Linux is the same: to build a strong foundation through these five points. Using ADS or MDK to develop ARM is often referred to as "streaking," since no operating system is involved. Just like in painting, you start with a nude model before moving on to figure drawing. Similarly, learning to use ADS or MDK to "streak" the ARM chip is a necessary step before diving into ARM + Linux.
Five And More Digits LED Display
Five And More Digits Led Display,Led Display Red Color,10 Segment Led Display,Yellow Segment Led Display
Wuxi Ark Technology Electronic Co.,Ltd. , https://www.arkledcn.com