Turn it from an MCU embedded Linux?

  Recently some people always have to ask the latter in turn develop single-chip embedded Linux developers do? On this question to be honest I can not help you with your idea, you can help put some of the pros and cons to share through this article look, everyone in to make a final decision by the judge on his own.

  First, have you really decided to transfer from the microcontroller embedded linux

  At this point First, think of embedded Linux is definitely not better than the career development MCU development, but according to some of their own experiences, give some views.

  1. The start salary terms

  SCM development of embedded Linux with respect to the biggest disadvantage is that the grassroots of the average salary is low wage jobs

  I think this is the main reason most microcontroller embedded Linux engineers want to switch. Advantages and disadvantages of the technology itself, but on grass-roots work, in the same city, on the work, the salary microcontroller 30% to 50% lower than the embedded Linux.

  Maybe there is a lot of contrast will take some doing single-chip high-paying employer payroll or some company executives and engineers working for embedded Linux, the microcontroller can prove high salaries.

  But they have committed an error Tian Ji's horse, take someone else's finest horses and their horses contrast medium, Tian Ji's horse personally think that this comparison is very unrealistic, working on the grassroots and the grassroots should be working instead from comparison industry top-notch people for comparison with most.

  From a practical survey on the current situation, the primary employment market in Shenzhen, the microcontroller (including RTOS) developed starting salary in the 6K-7K, 15K to the average person is paying, it is difficult to break.

  More than 20K microcontrollers offer there, but very few have seen most microcontrollers offer 25K, but it was all well-known enterprises, schools or other services in exchange for the background, most people really get. Embedded Linux / Android this, pay a relatively high number, starting at 12K normal working for 2 years in general can break through 15K, 3 - 5 years to break even 20K to 25K is a lot more than five years to first-tier manufacturers Tyrant (Huawei, OPPO, VIVO, etc.) can go to the 30K, if the experts do the module owner in the mobile phone maker, is also a breakthrough 40K may have, but up a bit harder.

  Overall, with the grade of grass-roots workers, embedded Linux development or pay a lot higher than the single-chip microcontroller 15K will encounter a problem, it is difficult to break through the 20K, 20K breakthrough embedded Linux is not difficult, to more than 25K only to encounter a problem.

  2. You want to own that city development, embedded linux city job recruitment needs what?

  I think this is affecting your decision Another big problem. We learn this technology embedded Linux, the vast majority of people in order to engage in related work, rather than cultivate sentiments. But according to the actual statistical point of view, embedded Linux, although generally pay higher than the microcontroller, but jobs is not so much the microcontroller.

  North of Guangzhou-Shenzhen most of these cities is the embedded Linux jobs city, but seems more opportunities for single-chip, single-chip, and the number of Linux jobs in first-tier cities compare in terms of probably 6-4 first-tier cities.

  Embedded Linux from the number of jobs the city's point of view, followed by Shenzhen> Shanghai> Beijing> = Suzhou, Hangzhou, Chengdu => Dongguan (Huawei blessing)> = Zhuhai> = = Guangzhou, Nanjing, Xi'an = = = Wuhan, Fuzhou, Xiamen => = Foshan Changsha = = Tianjin, Hefei> other, in other cities I have learned to do very little development of embedded Linux-related jobs.

  So if you want to consider a career change, first consider whether more than a few are willing to leave their homes to go to work in the cities. Otherwise, even if you learn fast hardware Linux technology, could also not be found in the local counterparts have to continue to engage in the development of SCM.

  3. SCM Although the treatment is low, but in terms of relative employment opportunities and more job opportunities for SCM and older job seekers relative Friendly

  This is not contradictory, particularly small businesses do single-chip companies, a variety of business, people need more, but generally small factories might not sufficient funds to afford high-priced talent, coupled with the development of SCM threshold lower (without regard to product stability, EMC concepts such as work experience will naturally know, refers only to learn programming using a microcontroller work culture barriers), a relatively short culture period (sophomore effort a summer vacation), resulting in low-end people are still able to work a lot, driving down the average salary.

  It's like Foxconn, like, recruit more people, but the lack of people complain, the boss just do not want to put up treatment, to control costs, which is a lack of people but between one kind of low pay ever-present contradictions. But for older job seekers, because it is a single-chip post many, many small factories really hard at a high cost to hire good people, in small factories also do not intervene in HR human resource planning, team building ages, but age lax on the card, as long as wages do not pick older job seekers, but also to get a job, to do so with respect to Linux, manufacturers, relatively tolerant of their age (probably due to the single-chip a little history, and also many older practitioners) .

  4. SCM also has some of the more high-paying jobs

  In the eyes of SCM engineer, 20k more than even paying to this standard, which is not without exception, only to find the appropriate technology needs to also have special requirements!

  The first is in terms of education can get a basic 20K or more are a deep academic background, these companies are also hiring rigid standards that must be more than 985,211 learning background, this part of the salary to be able to 20k

  25k is there but it will be required to develop a single chip in the linux environment, this part of the interview in terms of its relative difficulty is very high, in addition to its own technical standards under the circumstances, they do not want to give so much, this is we can make a fuss on offer, after the interview by using three or four days hanging about their appetite, can be lied to get a certain well-known companies offer, so that they may eventually agree to give you 25k, this is for the case of self-generated technology is pretty confident in doing! Otherwise you personally feel that the company does not come to the company with the same economic benefits, it may cause a sieve!

  These points listed above, or from SCM development of embedded Linux rpm believe you should be able to decide the case.

  Second, from the microcontroller and embedded Linux development itself looked

  1. SCM turn embedded Linux reservations main advantage lies in the ability of skilled C language programming and debugging experienced underlying software and hardware interfaces.

  Because the Linux kernel itself is written in C language, Linux most of the underlying application is the C language, generally single-chip development experience, C language should not be a problem, so in the process of switching, it is unnecessary to consider switching the language, of course, if no system studied data structure (think data structures are familiar with the C language essential content, even if the microcontroller also understand data structure), you may need to replenish.

 

Development of embedded application layer - the actual data structure classic case analysis -

http://www.makeru.com.cn/live/3485_1520.html?s=45051

Embedded Development - stack data structures

http://www.makeru.com.cn/live/1392_712.html?s=45051

Embedded Development - sort of thematic data structure -

http://www.makeru.com.cn/live/1392_713.html?s=45051

 

  Another uCOS FreeRTOS this type of real-time operating system development experience would be better, at least in watching a large-scale C language code when not scared (actually understand it does not mean uCOS kernel can immediately grasp the Linux kernel, the Linux kernel is really too complicated, design concept is also very different).

  Also rich single-chip configuration registers low-level debugging and experience can help you in learning embedded Linux developers can quickly locate some of the underlying problems, saving time.

  2. Linux embedded microcontroller turn be familiar with a different style of development environment

  For most single-chip engineers are using on Windows-based IDE environment microcontroller development program (do not rule out that some companies already using Linux to develop a single-chip), less Ubuntu Linux systems such contacts, so you have to cross the first Linux kernel source code is not off, but how to use this Ubuntu Linux systems.

  Because doing software development in Debian Ubuntu CentOS Linux and other systems, it is mainly through the command line, rather than a mouse click interface. Linux system and application software inside Windows inside the IDE so unlike you to integrate well, will be able to click with, there are many Linux Makefile like the script and compile Samba, SSH Server and other services, arm-linux-gcc, etc. compile and link various tools, like the various components inside the IDE software, needs its own re-assembled for use, and use the time might have even compiled a variety of environmental issues (open source software is so fast fierce rough), you need to spend a lot of time their torment .

  So for Linux beginners, even if you have a wealth of experience in microcontroller C language, it is also very time-consuming to toss, to overcome psychological barriers, Linux system development environment is like a disobedient boisterous, he can play a tame it value, while the Windows system development environment is more like an obedient ordinary horse.

  3. Embedded Linux to control the degree of development of the code is well below the microcontroller development, single-chip turn Linux need to adapt how to develop this sense of insecurity in the low degree of control

  Do microcontroller development, including RTOS, general amount of up to tens of thousands of lines of code, even if not read each line of code, basically to precisely control each module, probably where the bug, as a developer it is easy to locate.

  And so embedded Linux development, Linux kernel alone there are millions or even tens of millions of rows, not including all the features you are not familiar with open source library application layer, which leads to most of the code can not control.

  Embedded Linux development model in which most of the code is not that you develop, you can not control the development of driver or application in the case of most of the code, you often encounter a variety of unfamiliar things need to ask people search, this development model, people will put an uncomfortable Valley among the many functions you use it you do not know the implementation details, the mechanism may work just little knowledge.

  In this mode of development requires good search, communication, teamwork, can not be like as a person overall control of the microcontroller, the development of his head, and this insecurity is not in control of the microcontroller embedded Linux engineer to engineer the process of development most needed adaptation.

  4. embedded Linux developers need to have the bigger picture, the details do not get lost in the jungle and can not find the exit direction

  Many single-chip engineers have a habit of thinking, like dwelling to the principle of each register programming, the logical implementation details of each function, each if else ever allowed.

  This is very time-consuming in the Linux embedded learning, it is less effective approach. Attention to detail is good, but when the system is large to an extent, when people focus too much on the details, it is often difficult to control the system.

  I see a lot of beginners, each register, each version of the script links have to go to tangle for a long time, such as chip startup mode, mechanically to initiate the process of 2440 as the only truth chip startup, always to other chip sets. Little do they know some of the habitual practice a lot of things are man-made agreement, each company's chip has its own characteristics, the process is dead, people are living.

  Grasp the bigger picture so that they quickly become familiar with knowledge of the system, many of the details of the habitual thing naturally understand, efforts to control the entire system will be high, and met specific details hinder your progress, try again processing. Control does not mean you know every line of code for each register means, but you can make the whole system to run the way you want.

  Third, SCM turn embedded Linux basic knowledge about what needs to learn

  Blew so much water, to the real time on dry goods, and turn from the microcontroller embedded Linux in the end need to learn some Han. After this period, if no, really afraid of a lot of friends made up a career change determination sub-ah, immediately pick up a book and implementation of the Linux kernel architecture, such as that RTOS like uCOS school system, as are the C language code, then see clouds fog years, from entry to give up. In fact, no matter who was just learning embedded Linux, also made similar mistakes and, therefore, have some appropriate lessons.

  1. You need to spend some time to be familiar with how to use Linux system programming development

  I believe that many shoes are from childhood grew up using a Windows computer, learn computer programming before, there should be no contact with Ubuntu and other Linux systems, and this system is not like Windows as obedient little mouse, you need a variety of command-line operations. And there are a variety of system services and application tools you need to configure on demand.

  So learning embedded Linux developers are not eager got into Linux kernel code in the ocean, but first with a good Linux system.

  You can refer to how "Bird Brother Linux private kitchens" and other Linux systems installation and other books, learn to use the command line. But personally believe that learning must be targeted, if facing the "Bird Brother Linux private kitchens" page by page each command to learn it, a few days will see hay boring.

  It is proposed that the experience in the development of children's shoes microcontroller, the first goal is how to build on your Linux system microcontroller development board cross-environment, compile a program of the bare metal of Led lighting (do not need to run the Linux kernel), and through the development board capacity programming tool supplied.

  This matter is not difficult, the Internet has a lot of how to program the microcontroller cross compiler on Linux systems article, especially stm32 series, you can refer to other people's articles to do it again, in the process you will be familiar with the various common command, shell, arm-linux-gcc cross-compiler tool chain, Makefile (refer to Chen Hao separate article) and other related knowledge of Linux programming environment, which began to enter the Linux world.

  2. You need to know how to run an embedded Linux system is up, which generally consists of an integral part

  I believe most people switch to embedded Linux development is not to develop single-chip program on a Linux system, but want to drive or Linux application development. After completed the first step in the entry, you do not get too tangled who compile, link, how to write a script that file format, but as soon as the energy to focus to Linux system development.

  Learning embedded Linux system development, we must first know how a Linux system up and running, how to put a Linux system environment, the development board to take up. This involves bootrom, bootloader, uboot, dts, Linux kernel, cmdline, rootfs and a series of components, as well as nand start, nor a variety of ways such as start, know how to work a Linux embedded system, and then further modified to add your own drivers and applications.

  In this study embedded Linux, theoretical knowledge required to read slowly, but still need practical knowledge of video data with you to operate quick start, reading and practice of recycling progressive.

  Embedded Linux foundation _

  3. You can try to do some simple Linux applications and drivers developed

  Completed the first two steps, I believe you have some professional knowledge of the embedded Linux development. In this study embedded Linux, individuals prefer to learn by doing, 60% + 40% of the theoretical practice.

  Because something which a lot of embedded Linux-related systems environment, the kind of rigorous theoretical formula is not on the books, the law is difficult to find by reading books, but also a set of GNU (GNU What do you mean their search) in the jargon of the world inside the Linux kernel, those who write Linux kernel, drivers, books, technical experts can not give you explain all the jargon, all directly open "Unix advanced programming environment", "Linux device drivers" and other classic big cattle under the premise of no use and development experience books, easy for you foggy.

  Personal advice is to follow a video tutorial, such as embedded linux video maker culture of college or Wei Dongshan embedded Linux video, starting from 0 to write a simple driver and application, so that write their own drivers and application code to run up, lit 1 Led lights, drive not control those initialization, registration and other functions you call the framework of how to implement Linux.

  Through a process of practice, familiar with all kinds of jargon (system calls, vfs, etc.) as well as the operating environment of the entire code of the Linux development. It also allows you to learn step by step get positive feedback to enhance the sense of achievement and confidence in learning methods.

  In fact, Linux driver development itself is not difficult (difficulty not exceed formulas on your complex function textbooks), it is not a mystery, but it is a set of jargon, easy for beginners foggy, be familiar with the jargon, get rid of fear, a normal IQ undergraduate students should be able to grasp.

  4. You need to add some knowledge of computer theory

  It is understood that most of the engineers are single-chip electronics, communications, automation, machinery and other professional background, little computer professional. These professional children's shoes, the relative lack the basic theoretical knowledge of computer science, such as data structures, operating systems, computer organization theory, computer networks, algorithms, the basic principles of compiling links, databases and so on.

  Complement the theoretical knowledge is a long process (may take 2--3 years), not to wait until a professional can study all theoretical computer before they can find a job, while you can supplement the basics while looking for a job interview while, at the same time test their basics. These basics will not only improve your technical skills, but also help you pass a written interview to determine if you can break through salary 20K in first-tier cities.

  With the basics of computer Coban, and after a certain Linux driver development experience, the Linux kernel learning is necessary, but the entry of beginners do not rush into the Linux kernel source, kernel lot of this stuff was very abstruse , have to take the time to read a book while watching the code that eating slowly, not crash, but the Linux kernel foundation was able to raise your salary competitiveness.

  Fourth, to have work experience of career changers advice

  1. There are career changers to work, you have the advantage of job and income security at the end, disadvantage is that there is not enough free time to study. With the current work jobs, do not hurry to find a new job, you can keep a good attitude, mindful, you can study while looking any, find a suitable job.

  Of course, there are people who work, not free time, if you want to learn new things and your current work not directly related to the content, I suggest you can choose to work a little overtime, so you can free up spare time after work to learn new knowledge embedded Linux.

  There are people who work, have some small savings, lack of time, it can be appropriate to buy some high-cost premium videos on learning, learning to speed up the entry and progress, saving valuable time, which is money for time.

  In general, do not need to learn proficient only out looking for work, you can learn self correct (the word comes from a TED lecture on how to quickly self-study), can do some live state, you can go out and find a related job interview, embedded Linux to learn the basics of common main drive inside the audio and video, knowledge on communication protocols related business can find a job add.

  2. How in the only single-chip experience, no experience in the development of Linux, how to recruit embedded Linux development through community?

  The trick for the club fancy job seekers relevant background is a headache, there are the following suggestions:

  ①, to see whether the company has a Linux-related sectors and development plans, can take the initiative to try internal job transfer.

  ②, see if you can recommend the company technical director of microcontroller development environment to migrate to Linux systems, microcontroller development environment on a Linux system, so at least you have the opportunity to use Linux systems at work.

  ③, can first try to face some of the microcontroller development of the company in the Linux environment, after the interview the interviewer asked whether the development of SCM in the Linux environment, if it is possible to join a company with a Linux development SCM SCM continue to do for some time, and then work the way in familiarize yourself with Linux.

  ④, try to do a real interview some of the company's Linux system development Bootloader firmware development or related job because Bootloader and memory controller, power management and other pipe MCU code and firmware development has a lot of bare metal rtos relevance, which will have even ARM SOC MCU core and associated firmware for control-related functions wifi, storage, power wake-up, etc., this will ensure that you can have some output contribution in a new job, rather than fully learners.

  ⑤, trying to interview some of the high mobility, turnover rate of actually doing Linux company. Companies such a word to describe: "lack of people." IC factory fire before a brother working in Zhuhai, Zhuhai relevant due to the small base of practitioners, many graduates are unwilling to small urban development, coupled with the company's poor performance in recent years, turnover rate, resulting in lack of people the company, and difficult to get them, so then let go of hiring standards, willing to train only single-chip experience, no Linux experience agency's move.

  ⑥, problems in the process of learning embedded Linux, encountered and wrote the code, the best technology and GitHub blog recorded the related links posted on your resume, it is like the interviewer to prove that you really embedded Linux has a certain understanding, the interviewer read your blog and GitHub, in order to have a better understanding of your skill level, to decide whether to give you a chance.

  Five students turn to Walker's recommendations

  For students, you are more free in time, lack of money and the lack of security at the end of a job.

  Of course, this time things like toilet paper, it looks much, but with the use of no, so even if there is plenty of time, but also a good plan, try to learn some things.

  Advantages students is that we do not have industry experience, school recruit, it does not examine the relevant knowledge of your industry, and pay more attention to study the basics of computer, so students should be riding on precious time, put a mention the first 4:00 to play solid fundamentals, after such work can focus on business knowledge and learning, faster promotion and pay rise, not because of fundamentals strong, recycled remake.

  In addition, students may have a variety of embedded microcontroller competition, during the competition, may be able to get a lot of awards, been praised teachers and classmates. But remember prudent, not because the students master more than the average two technologies will think highly of himself (after you interview these competitors is not entirely without technical students), not because it drifted a few awards, but can not stop and learn the basics of data structures, operating systems, and so on principle.

 

Linux, C language introductory video tutorial _9 day proficient in Linux C language -

http://www.makeru.com.cn/course/1861.html?s=45051

 

  If it is not a high level of papers published in reputable journals or internationally recognized ACM, Kaggle, ISLVRC race to get the kind of image quality has award scores and ranking results of the competition, awards and other domestic competition in an interview with the practical work there is not much convincing, but the interviewer likes a firmer foundation, strong plasticity students, rather than a bunch of awards and domestic, the result of the complexity of the concept of time, list the stack, mmu virtual address space answer any student.

  Finally, I hope this article will help to you is in a confused period.

Guess you like

Origin www.cnblogs.com/QianD/p/10968289.html