What should I learn when I first learn embedded development? Master these few directions certainly no problem, if you choose a good professional direction, then do not give up, study hard!
Now society in science and technology in general is very rapid development, in our life corner are full of high-tech flavor, into our usual basic to the quadcopter, the recently released Xiaomi's strange audio, cough will light up the sound-controlled lights and so on these things from the surface of nothing, but his internal composition are the results of science and technology, but also the results of embedded.
Since embedded in our lives so many applications, the corresponding need for developers is also very much, at any time need the injection of fresh blood, then some friends asked what technology to learn embedded development? Can't say a look at it, of course not so today we want to talk about is for a zero-based is also a friend who wants to learn embedded need to learn those things.
Embedded Linux engineer learning needs to have a certain C language foundation, C language is the most important embedded field is also the main programming language, through a large number of programming examples focus on understanding the basic programming C language and advanced programming knowledge. Including: basic data types, arrays, pointers, structures, chains, file operations, queues, stacks, etc.
2、Foundation of Linux
Linux operating system concept, installation method, detailed understanding of the Linux directory structure, basic commands, editor VI, compiler GCC, debugger GDB and Make project management tools, Shell Makefile scripting and other knowledge, embedded development environment building.
3、Linux system programming
4、Linux network programming
Beginning embedded development to learn what C++ is one of the main languages for Linux application development, this phase focuses on mastering the basic ideas of object-oriented programming and the important content of C++. Graphical interface programming is a very important part of embedded development. Because QT has cross-platform, object-oriented, rich API, support for 2D/3D rendering, support for XML, multi-language and other powerful features, it has been widely used in the embedded field of GUI development. In this stage, through the learning based on QT graphics library so that students can skillfully write GUI programs and port QT applications to Cortex-A8 platform. Including the use of IDE, QT components and layout manager, the application of information and slot mechanism, mouse, keyboard and drawing event processing and file processing applications.
6、Data Structure and Algorithm
Data structures and algorithms in the embedded underlying driver, communication protocols, and a variety of engine development will be used in a large number of applications, the mastery of its good or bad directly affect the efficiency, simplicity and robustness of the program. This stage of study should focus on understanding the basic content of data structures and algorithms, including sequential tables, chains, queues, stacks, trees, graphs, hash tables, various lookup sorting algorithms and other applications and their C language implementation process.
7、Cortex A8, Linux platform development
Through the ARM Cortex-A8 processing s5pv210 to understand the basic reading skills of the chip manual, master the s5pv210 system resources, clock controller, power management, exception interrupt controller, nand flash controller and other modules to prepare for the underlying platform. Tools use, kernel debugging, Bootloader introduction, production and principle analysis, root file system production and add their own modules to the kernel, and run their own Linux system on the s5pv210 experimental platform, integrated deployment of the entire process of the Linux system. Android is an open source operating system based on Linux platform, which consists of operating system, middleware, user interface and application software, and is the first truly open and complete mobile software for mobile terminals. consumer electronics.
8、the beginning of embedded development to learn what driver development is certainly not run
Driver design is an important part of the embedded Linux development work, but also a more difficult part. This stage of learning to be familiar with the Linux kernel mechanism, the driver and user-level application interface, master the concurrent operation of the system on the device. Familiar with the working principle of the developed hardware, with the basic knowledge of ARM hardware interface, familiar with the ARM Cortex-A8 processor s5pv210 resources, master the Linux device driver principle framework, familiar with the common Linux advanced character devices, block devices, network devices, USB devices and other driver development in the project, in the work can be independently competent in the underlying driver development.
Then for learning methods also to give you some brief advice
1、learning to use search engines
Michael Anderson, the chief scientist of PTRGroup, who has been an engineer for many years and considers himself as "a software person who understands system architecture", thinks that it is necessary to make good use of the information in the open source world, and many common design problems can be found through the Internet with the contribution of elites in the same field. Embedded engineers should go out of their own small world to embrace the community and communicate with other engineers in the same field to help each other, and this is also the spirit of the open source world.
2、Establish system-level engineering thinking
AdamTaylor, the chief engineer of E2V electronic system, who boasts of being a high-trust embedded system expert and has been an engineer for many years, believes that it is important for embedded engineers to have system-oriented thinking, and many development cases encounter problems because they do not fully consider the benchmark, verification strategy and compatibility verification plan at the early stage of development; in addition, every embedded engineer should have Excellent project management skills, and strive to complete the responsible projects on time. Having the ability to respond wisely to technical and project risks will be very helpful for career development.
3、Familiar with real-time operating system (RTOS)
In the engineering talent recruitment agency RandstadTechnologies is responsible for embedded industry solutions manager HenryWintz said, the industry is familiar with RTOS engineers demand is very high, but also willing to provide higher salary levels; so he encourages embedded engineers who have not been exposed to RTOS from some smaller systems to start, accumulate relevant technology experience. In addition, he also found that the industry has a lot of demand for embedded Linux talents, mainly because this operating system has greater design flexibility.
4、What do you want to learn in the beginning of embedded development?
As an engineer for nearly many years, with many different fields of technical experience of technology consulting company Rebelbot consultant JenCosTIllo suggested that originally engaged in smaller system architecture (such as MCU) development engineers, can start to familiarize with larger systems (such as Linux drivers), and vice versa. Try to develop mobile applications, or learn the back-end server-related technology, can allow you to open a completely different point of view; he also suggested that engineers to familiarize themselves with open hardware, there are now a number of ready-made development boards on the market, allowing engineers to focus on learning the development of unique algorithms.
5、Understanding the latest processors
Embedded.fm engineer EleciaWhite, who has more than years of experience as an embedded software engineer, said that in addition to a deep understanding of basic programming languages such as C or C++, sometimes it is important to know some popular new programming languages for special design needs, but more important is to understand the latest processor technology; the processor is the essence of embedded systems. Because our system resources are limited, we need to understand what resources are available.
6、To be familiar with open source software
With years of experience as an engineer, FreescaleSemiconductor digital network global software development department director RobOshana said that customers often ask for a whole bunch of software integration in the system, so all embedded engineers need to be familiar with a variety of software; he recommends that engineers avoid specializing in only a single area, because that may hinder your growth. For embedded engineers, making sure they understand both hardware and software technologies is a very valuable value.
7、to be able to clearly express their ideas and opinions through text or drawings
Micrum President JeanLaBrosse believes that no matter what kind of engineer, need to be able to effectively express their ideas and opinions; often some novice engineers can not clearly express their ideas because they can not catch the focus, and the best solution is to practice the graphical representation, such as drawing a flow chart. This may sound a bit outdated, but sometimes it's useful to use various combinations of frames to organize your thoughts and express your ideas, such as the iThoughts app for iPad.
The above is a generous summary of what to learn about embedded development, including C language, Linux, microcontroller and so on several directions of technology, in addition to the big plus a brief answer to the bar embedded learning needs to pay attention to things and learning methods to give you some advice, but also hope to help friends who are starting to learn embedded.
Manufacturer: Analog Devices
IC DSP 16/32B 400MHZ LP 176LQFP
Product Categories: DSP
IC MCU 8BIT 3.5KB OTP 18DIP
Product Categories: 8bit MCU
Manufacturer: Silicon Labs
IC MCU 32BIT 128KB FLASH 48QFN
Product Categories: 32bit MCU
Manufacturer: ON Semiconductor
DSP BELASIGNA 250 AUDIO 64LFBGA
Product Categories: DSP
Looking forward to your comment