How should we learn the wince driver?
I saw an old post posted on the Internet. The poster was a teacher named gooogleman and discussed "how to learn the wince driver ?". I will summarize his questions and comments to facilitate learning.
Original: http://bbs.csdn.net/topics/330117028
My csdn blog: http://blog.csdn.net/chendesheng1988
--- CDs 3/8/18 CDs
Problem:
1. Do you think it is necessary for wince driver engineers to learn bootloader?
Answer:
It is necessary !!!
(1)
Because bootloader involves a lot of ARM architecture knowledge, we will learn a lot of basic arm knowledge by studying bootloader, and we need to cooperate with bootloader to debug the board hardware, this is required by some small and medium-sized companies.
(2)
Although Bootloader and wince object image are separated, you still need to know, because the company will ask you for Bootloader during interviews, as a product.
(3)
We will have a preliminary understanding of the working process of arm11 and wince, and some knowledge of bootloader is more valuable than simple drivers.
(4)
It is necessary to implement the underlying layer.
(5)
I think it is necessary to learn bootloader. Otherwise, jumping directly to the wince driver development without going through the bootloader stage will give people a feeling of overhead.
2. What hardware skills do you think wince driver engineers should possess?
Answer:
(1)
Digital Circuits are particularly important. analog circuits must be properly understood. Generally, drivers need to be able to identify hardware and drive problems. Therefore, some basic debugging skills are necessary, the most basic is the oscilloscope, which is used by a multimeter.
(2)
The principle diagram, PCB, and oscilloscope multimeter can be used to provide hardware development suggestions for hardware engineers.
(3)
Common digital circuit analysis, common chip and interface principles in a timely manner.
(4) PCB design, which is generally used to cut and expand the circuit of the Development Board. Based on the principle diagram of the Development Board, the PCB and package library are drawn and their own circuits are designed, development of CPLD, development of dedicated chips using hardware descriptive languages such as VHDL, writing of their own logic circuits, and development based on FPGA of alter or xilinux.
(5)
Digital, model, and Single-Chip Microcomputer
3. What software skills do you think wince driver engineers should possess?
Answer:
(1)
Debugging a driver requires the use of applications. Some simple applications need to be written, such as some applications of MFC, call the driver, and verify whether the driver is successful. However, the poor thing is that many companies require drivers and applications to be implemented. Some wince driver engineers have always said that using C on the internet is enough. Later, they discovered that C ++ is widely used in multi-layer drivers, therefore, the wince driver engineer must have the compilation, C, and C ++ capabilities.
(2)
Proficient in C/C ++, master the basic knowledge of Assembly, at least bootloader can read almost know what it is.
(3)
At least a simple test program based on vs or EVC, such as C, should be written.
(4) Compile and modify the bootloader. In this step, familiarize yourself with the ARM hardware structure, learn the arm assembly language, and read the ARM chip manual. It feels like operating the ARM chip like operating 51 single-chip microcomputer. the two best references for this step are the chip manual and bootloader source code.
(5)
The key is debugging and embedded operating systems.
4. What do you think is the first driver of the wince driver engineer?
Answer:
(1)
I think the first driver should start with a single-layer streaming driver without any restrictions. For example, a key driver is a good choice.
(2) A stream driver controlled by the IO port.
(3) USB and serial port
5. Which drivers do you think are necessary for the wince driver engineers to learn from?
Answer:
(1)
Single-layer stream drive: shutdown key drive; multi-layer stream drive: Serial Port Drive; local drive: Touch Screen drive.
(2) LCD, USB, dm9000, etc.
(3) backlight, USB, network, and LCD
6. Do you think that you can directly jump to the wince driver to learn from the MCU C51?
Answer:
(1)
Yes, because I have never learned ARM7, and can support the process from C51 to arm95.0. Haha. It seems that I have also experienced many twists and turns. I bought 2410 yuan from college and wanted to directly use Linux. I didn't see bootloader, but the result was hit. I sold the board. Later, I bought another 2440 yuan for my graduation project, and I finally got a little on the road.
(2)
A porting process is required. But it should be okay.
7. What operating system knowledge do you think the wince driver engineers should have?
Answer:
(1) UCOS is simple, worth learning, and Win32
Multithreading programming is also required. I remember that books like Windows core programming are also good. In fact, windows and Windows Win32 programming is very similar, so do not complain that there are few wince books.
(2) process thread synchronization mechanism of the wince system, interrupt service mechanism of the operating system, file system, and so on .. There is a division of labor in the industry that focuses on what direction.
(3)
Task Switching and Scheduling
(4)
System porting and driver development.
(5)
Memory management, process management, and OS setup and debugging.
8. What application development should the wince driver engineer master?
Answer:
(1)
At least understand the test driver of the MFC program.
(2)
A simple dialog box program is used to test the driver and the APIS written for the driver. simple interface development is more beneficial to the use of the test program.
(3)
Driver testing.
(4)
At least know how to call the driver interface for AP testing your driver. When we look at MFC or Win32, we can see that MFC is faster, but generally there are many projects in Win32. What are the requirements for the reusability of testing, if you have a high requirement on reuse, select the target.
(5)
Games
9. Do you have any good recommended wince driver books?
Answer:
(1)
Driver direction:
① ARM architecture and programming ------- a bit messy and uncomfortable. We strongly recommend arm javasturereference Manual (arm is the best official company)
② Arm assembly instruction book ------ a large number of online commands
③ ARM Embedded System Development: Software Design and Optimization-I personally feel that this is one of the best translations of arm books in China, which is a thousand times better than ARM architecture and programming.
④ Windows CE embedded system -- relatively good. It is helpful for beginners to understand the wince and BSP architectures.
⑤ Windows CE practical development technology-some chapters are good and detailed-like an experiment book.
⑥ Full analysis of Windows CE engineering practices-this book is applicable to the architecture-driven program of wince6.0. Unfortunately, there is no file system.
7 "32-bit embedded system hardware design and debugging"-this is a rare book and is very practical. It combines circuit interfaces and programs, and has arm peripherals. It is very practical.
Arm & wince experiment and practice-based on S3C2410 is a good example.
Route: it is best to find an analyticdb bios. This is not an operating system, nor is it mysterious to petabytes. You can also compile the operating system, and compilation has a certain understanding, and then get the driver under wince, you will feel very good.
Http://www.arm.com/documentation/books.html--reference by arm website. Many of them are in English and some electronic versions are available online.