ARM+LINUX route, focusing on embedded Linux operating system and its application software development goals:
(1) Master the structure and principle of mainstream embedded microprocessors (preliminarily defined as arm9)
(2) Must master an embedded operating system (preliminarily uclinux or linux, version to be determined)
(3) Must be familiar with the embedded software development process and have completed at least one embedded software project.
The benefits of engaging in embedded software development are:
(1) Currently, there is a shortage of people in this field both at home and abroad. The entry threshold of this field is high, so it is difficult for non-professional IT personnel to enter this field; on the other hand, because this field is relatively new and is currently developing too fast, most people have no conditions to get in touch with it.
(2) Unlike application software such as enterprise computing, the work intensity of talents in the embedded field is usually lower (but the income is not low).
(3) If you want to start your own business and develop your own products, embedded systems are not as easy to be pirated as application software. Hardware design is usually customized by other companies (this is called "OEM"), and they are all general hardware. We only need to design the software and it will become our own product.
(4) Interest is the most important thing.
The disadvantages of working in embedded software development are:
(1) The entry entry level is relatively high, and the technologies used are often difficult. If you do not have a good foundation in hardware and software, especially if you do not have a deep foundation in operating system-level software, you may not be suitable for this line of work.
(2) The number of companies in this area is far smaller than that of companies in enterprise computing.
(3) A few companies often require people with a master's degree or above to work on embedded systems, mainly due to the difficulty of embedded systems. However, most companies do not have this requirement, as long as they have experience.
(4) The platform is highly dependent and it is difficult to change platforms.
Origin of interest:
1. The concept of success is different. Not wasting my life is my success.
2. Like to think and challenge logical thinking.
3. Like C
C is a language that pushes the limits of thinking. Some aspects of the spirit of C can be summarized in short sentences as follows:
Trust the programmer.
Don't stop programmers from doing what needs to be done.
Keep your language short and to the point.
A method does an operation.
Makes it run fast enough, although it's not guaranteed to be portable.
4. I like low-level development and hate VB-type development tools (not to say VB is bad).
5. The development prospects are good and suitable for starting a business. I don’t want to be an engineer when I am about to die.
Method steps:
1. Basic knowledge:
Purpose: To be able to understand how hardware works, but with a focus on embedded software, especially operating system-level software, which will be my advantage.
Subjects: Digital circuits, computer organization principles, embedded microprocessor structure.
Assembly language, C/C++, compilation principles, discrete mathematics.
Data structures and algorithms, operating systems, software engineering, networks, databases.
Method: Although there are many subjects, they are all relatively simple basics, and most of them have been mastered. It is not necessary to learn all of them, and you can choose electives according to your needs.
Main books: the C++ programming language (never had time to read), Data Structures - C2. [page]
2. Learn Linux:
Purpose: To gain an in-depth understanding of the Linux system.
Method: Use Linux—〉LINXU system programming development—〉Driver development and analysis of Linux kernel. Read the in-depth version first, then the main principle. After reading it several times, read the scenario analysis, and compare it with the in-depth version. The two books are cross-cutting, the in-depth version is the outline, and the scenario is the main point. The analysis version is 0.11, which is suitable for learning. Finally, go deep into the code.
Main books: Complete analysis of the Linux kernel, advanced programming in the Unix environment, in-depth understanding of the Linux kernel, scenario analysis and source code.
3. Learn embedded Linux:
Purpose: To master embedded processors and systems.
method:
(1) Embedded microprocessor structure and application: Just learn the ARM principle and assembly, do not repeat x86.
(2) Embedded operating system: ucOS/II is simple, open source, and can be used for getting started. Then study uClinux in depth.
(3) You must have a development board (arm9 or above) and can participate in training if possible (you will make rapid progress and make some friends).
Main books: Mao Decao's "Embedded Systems" and other arm9 manuals and arm assembly instructions, etc.
4. In-depth learning:
A. Digital image compression technology: mainly you should master MPEG, MP3 and other encoding and decoding algorithms and technologies.
B. Communication protocols and programming techniques: TCP/IP protocol, 802.11, Bluetooth, GPRS, GSM, CDMA, etc.
C. Network and information security technology: such as encryption technology, digital certificate CA, etc.
D. DSP technology: Digital Signal Process, DSP processor implements digital signal processing algorithms through hardware.
Note: Too many details are not explained, which can be adjusted according to the actual situation. The key points are 1 and 3, which do not have to be done in exact order. For learning C++, the reason is that C++ is not only a language, a tool, but also an art, a culture, a philosophy, but not something to show off. For the Linux kernel, it is also necessary to learn programming and read some excellent codes.
Note: You must learn to draw inferences from one example and have a strong foundation. You can learn many things simply by looking at them. If you want to be a qualified programmer, you must be proficient in at least one programming language and have good logical thinking. You must combine theory with practice.
Don't just study technology. Although it is difficult to squeeze out time, you should still leave some room to improve other hobbies, such as space, sketching, machinery, management, psychology, games, science fiction movies. There are also some things that you don't want to do but must do!
Technology is created through programming and programming. Never dream of reaching the sky in one step, don't be impetuous, and don't think the road is long. Instead, you should program, program, and program, and then program again and again! Wait for the opportunity to start a business (don't believe in miracles, it is difficult to succeed in blindly starting a business, and even if you succeed, the development space may not be very large).
Embedded Book Recommendations
Linux Basics
1. Linux and Unix Shell Programming Guide
C language basics
1. C Primer Plus, 5th Edition by Stephen Prata
2. "The C Programming Language, 2nd Edition" [US] by Brian W. Kernighan David M. Rithie (K & R)
3. "Advanced Programming in the UNIX Environment, 2nd Edition" (APUE)
4. "Detailed Explanation of Embedded Linux Application Development"
Linux Kernel
1. "In-depth Understanding of the Linux Kernel" (3rd Edition)
2. "Linux Kernel Source Code Scenario Analysis" by Mao Decao and Hu Ximing
R&D Direction
1. "UNIX Network Programming" (UNP)
2. TCP/IP Detailed Explanation
3. Linux Kernel Programming
4. Linux Device Driver Development (LDD)
Hardware Basics
1. ARM Architecture and Programming by Du Chunlei
2. S3C2410 Datasheet
English Basics
1. "Computer and Communication English"
System Tutorial
1. "Embedded Systems - Architecture, Programming and Design"
2. "Embedded Systems - Using Open Source Code and StrongARM/Xscale Processors" by Mao Decao and Hu Ximing
3. "Building Embedded Linux Systems"
Theoretical basis
1. Introduction to Algorithms
2. Data Structure (C Language Edition)
Previous article:Design of High Dynamic GPS Receiver Using AT91R40008
Next article:Improving the reset circuit of microprocessor by using single trigger delay
Recommended ReadingLatest update time:2024-11-16 15:26
- Popular Resources
- Popular amplifiers
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- Innolux's intelligent steer-by-wire solution makes cars smarter and safer
- 8051 MCU - Parity Check
- How to efficiently balance the sensitivity of tactile sensing interfaces
- What should I do if the servo motor shakes? What causes the servo motor to shake quickly?
- 【Brushless Motor】Analysis of three-phase BLDC motor and sharing of two popular development boards
- Midea Industrial Technology's subsidiaries Clou Electronics and Hekang New Energy jointly appeared at the Munich Battery Energy Storage Exhibition and Solar Energy Exhibition
- Guoxin Sichen | Application of ferroelectric memory PB85RS2MC in power battery management, with a capacity of 2M
- Analysis of common faults of frequency converter
- In a head-on competition with Qualcomm, what kind of cockpit products has Intel come up with?
- Dalian Rongke's all-vanadium liquid flow battery energy storage equipment industrialization project has entered the sprint stage before production
- Allegro MicroSystems Introduces Advanced Magnetic and Inductive Position Sensing Solutions at Electronica 2024
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- New real-time microcontroller system from Texas Instruments enables smarter processing in automotive and industrial applications
- MM32F103 BUG reminder to avoid pitfalls
- Will MakeCode support Python?
- What are the specific differences between triodes and MOS tubes?
- How to set the GND pin of a separate component as a flower pad in PADS?
- EEWORLD University Hall----Keithley 4200A-SCS parameter analyzer accelerates semiconductor equipment, materials and process development
- EEWORLD University Hall ---- Advanced C Language Programming for Embedded Systems (Ling Ming, Southeast University)
- Two-phase brushless DC motor speed control system based on DSP and CPLD
- The main structure of the DM642 image processing program
- Multi-way switch, battery inspection instrument
- EEWORLD University ---- Wildfire FPGA Video Tutorial