How to learn embedded software development?

The first is cognitive and basic learning . This part is generally required to learn some courses of industry cognition, guide the future development prospects and employment trends of embedded, the introduction of C language, the use of development tools, common commands, data structure algorithms, etc. This part mainly depends on memory, and there are not many logical difficulties.
Secondly, after having the previous foundation, it is the stage of learning embedded application programming . This stage is mainly to strengthen the knowledge of the LinuxC stage and C++ development . At the same time, it will also touch some knowledge points of the operating system. It is necessary to be familiar with the development process and specifications of the enterprise. Master important knowledge points such as file I/O programming, network programming, multi-task programming, multi-process programming, and QT programming . Complementary intelligent hardware development, single-chip microcomputer development and other content.
Finally, it is related to the content of the underlying driver development . The content is the core content of embedded system development, and it is also one of the difficulties in embedded learning. At this stage, it is necessary to master the methods of system transplantation and tailoring, and to be familiar with knowledge points such as the embedded development and construction process. The landlord can refer to the following:
1. C language and Linux operating system
C language foundation and Linux commands; data types, constants, variables and operators; input and output, control statements, arrays and strings; pointers and functions.
2. Knowledge points to be mastered in LinuxC high-level language/Python grammar?
Software package management, shell commands; linux shell commands, script programming, advanced programming; Makefile; Python basic grammar, conditional sentences, loop statements, data types, functions, storage files .
3. The key points that should be grasped in the data structure.
Linear table and sequential table, linked list, linked list application; singly linked list operation, stack implementation and application; queue implementation application, tree and implementation; search, sorting.
4. Concurrent programming learning content
Process programming, daemon process, command, fork, exit.excel, system; wait function, waitpid function, linux daemon 3, thread, unixt inter-process communication.
5.
The foundation of network programming should be laid well, TCP programming, concurrent server; UDP programming, TCP/IP protocol principle, I0 multiplexing.
6. ARM
basics, instructions, exception handling, bare metal development 2, communication interface, interrupt mechanism, waveform control; UART serial port, chip reading, programming; STM32, GPIO port operating platform, how to apply USART serial port, interrupt system, clock and timing Device, analog-to-digital converter ADC, data transfer DMA, 12C bus communication principle, familiar with these.
7. Embedded kernel and driver
environment, development module, character device; interrupt programming, method for user to obtain button database, driver framework; poll driver implementation, programming method, tasklet implementation, asynchronous signal notification application; platform bus, sysfs file, creation bus code; driver construction, separation, merging, logical process, design ideas; layered framework ideas, object-oriented ideas, input subsystems, device trees, nodes and attributes; combined with some projects, actual combat 8, QT embedded graphics development
QT
controls , dialog box, main window and event processing; streaming read and write, directory traversal, obtaining file attributes, thread mutual teardown and synchronization; tcp, udp, server, client.
9. Combining with the project to do actual combat training, review
which link you are weak in, then make breakthroughs in this link in turn, one is the basic replay, the other is the bottleneck breakthrough, and then return to the actual combat application!

cfbf3259b021bde4d861d5c201e58dd2.jpeg


I have sorted out a set of embedded learning directions, which are full of skills and dry goods, including programming teaching, problem video explanations, 800 sets of complete set and language teaching. you

Guess you like

Origin blog.csdn.net/lz19zlun/article/details/132231632