2016 International Conference on Advanced Education and Management Engineering (AEME 2016) ISBN: 978-1-60595-398-4

A Teaching Content Design of in Accordance with the Characteristics of the Computer Science Wei-gong LV1, Ce ZHANG1,*, Zhi-peng CHEN1, Xin-sheng WANG2 and Jun BAI1 1School of Computer Science and Technology Harbin Institute of Technology at Weihai, Weihai, China 2School of Information and Electrical Engineering, Harbin Institute of Technology at Weihai, Weihai, China *Corresponding author

Keywords: Embedded processor, Embedded operating system, Embedded GUI, PMD.

Abstract. Embedded system is developing rapidly, and the embedded system course is becoming a standard teaching configuration for both electronic and computer majors at home and abroad. Aimed at computer science, this article analyzes each knowledge point of embedded system course from the definition and composition of embedded system, on the basis of the relevant knowledge system, and finally gives a design of teaching content for embedded system. This teaching content emphasizes the function of the embedded operating system, which separates from the single chip microcomputer system and excludes the situation that the application and operating system are integrated together. The embedded hardware teaching emphasizes the design of hardware platform based on embedded processor and focus on the overall design ideas and framework design. And the teaching of embedded software system discusses the development environment for embedded operating system and the driver system design based on embedded operating system as well as GUI, and PMD, in order to further standardize the teaching of embedded system in computer science and to cultivate the talents of embedded system which are more in line with the needs of the society.

Introduction In 2005, the sales volumes of embedded processor are about 3 billion while that of personal computer are about 200 million in the same period[1], and in 2010, the total sales volumes of embedded processor are about 19 billion while that of personal computer are about 350 million in the same period[2], which indicates that the embedded systems are entering our lives at an unprecedented rate. With the rapid development of the application of embedded system, the embedded system is also becoming an indispensable part of the university curriculum and a standard teaching configuration of both electronic and computer majors at home and abroad for more than a decade. As a new application oriented subject, each university has been exploring the selection of teaching material, teaching mode, teaching content and other aspects of the embedded system. On the whole, the embedded system course has formed a relatively fixed teaching system for the electronic engineering[3][4][5], while the embedded system course for computer science follows the teaching mode of electronic engineering with a fine tuning without the formation of an independent professional teaching system in terms of subject characteristics. This article attempts to analyze the teaching content category of embedded system from its the definition and composition, combined with the characteristics of computer science and latest progress in embedded systems, to design special teaching content for computer science so as to make embedded teaching of computer science in university more in line with the needs of technological progress and social development.

22

The Definition and Composition of Embedded System To Review the history of the development of embedded system, the earliest embedded system is defined by the association of Electrical Engineers, namely, the embedded system is a device used to control or monitor the machine, equipment, factory and other large scale systems; while the widely accepted definition of embedded system at present is: embedded system refers to the special computer system with application as the center and computer technology as the foundation, the software hardware can be cut, and meet the strict requirements of application system on function, reliability, cost, volume, and power consumption. In addition, there are definitions of embedded systems of some industries such as the definition of BUAA professor He Limin presented, namely, a special computer system embedded in an object system. Clearly, the first definition is a completely non computer professional definition, which is no longer in line with the characteristics of the new era, and attention shall be paid to the second and third definitions with the same description of “special computer system”, while no matter how different interpretations of the definition of embedded system will be, it must be a computer system first but usually without the form of a general computer system. Computer system is composed of software and hardware, then the embedded system is also composed of software and hardware since it is a special computer system, but this software and hardware are used for embedded systems, which can be called embedded software and embedded hardware. Further, the embedded system hardware includes embedded processor and peripheral interface circuit, and embedded system software includes embedded operating system and user application program. It is worth noting that the embedded processor and the embedded operating system are not defined from bottom to up, while it is derived from the concept of embedded system, namely, the embedded processor is a processor for embedded system and the embedded operating system is an operating system applied in embedded system. In the early days, there was a dispute about whether the embedded operating system must be included in the embedded system, and the focus of the dispute is that whether some ordinary single chip computer systems without operating system are belong to the embedded system or not; the dispute has vanished with the development of embedded systems, and now the common single chip computer system is usually considered as the embedded application rather than the embedded system, thus the addition of embedded operating system also means the formal involvement of computer professionals. On the one hand, a clear understanding of the concept and composition of embedded systems can help us to understand the probable scope of the embedded system as well as the relationship with the computer professional; on the other hand, design teaching content based on the actual composition of embedded system can make students learn theory and method of embedded systems to the maximum, which lays a good foundation for the practical construction of embedded application system.

Related Knowledge System Analysis of Embedded System Related Knowledge System of Embedded System Figure 1 Shows the knowledge system which is directly related to each component of the embedded system. It can be seen that, according to the embedded system hardware including the embedded processor and peripheral interface circuit, the derived embedded system hardware may involve three parts of the teaching knowledge points, namely embedded processor design, peripheral interface circuit design and the design of hardware platform based on embedded processor with combination of the two; according to the embedded system software including the embedded operating system and application program, the four knowledge points related to the embedded system software are embedded operating system design, embedded operating system development environment,

23 hardware driver design based on the embedded operating system and application program design in embedded system. It can be seen that, according to the embedded system hardware including the embedded processor and peripheral interface circuit, the derived embedded system hardware may involve three parts of the teaching knowledge points, namely embedded processor design, peripheral interface circuit design and the design of hardware platform based on embedded processor with combination of the two; according to the embedded system software including the embedded operating system and application program, the four knowledge points related to the embedded system software are embedded operating system design, embedded operating system development environment, hardware driver design based on the embedded operating system and application program design in embedded system.

Related knowledge system

Embedded system Embedded processor design

Embedded Embedded processor Hardware platform design based on embedded processor hardware system Design of peripheral interface circuit of embedded system Peripheral interface circuit

Embedded operating system design Embedded Embedded operating system software Embedded operating system development environment system Embedded application Hardware driver design based on embedded operating system Applications with character interface or Application without interface programming Embedded GUI and graphic applications

Figure 1. Knowledge system directly related to the components of the embedded system. The design of hardware platform based on embedded processor is the core application of embedded system hardware design, because the design of the hardware platform is key and ineluctable for the independent design of any embedded system. The macro design of the hardware platform based on the embedded processor is taken as a single point of knowledge, instead of focusing solely on the micro features of the embedded processor and the connection details with the peripheral interface circuit, which can truly improve the design capacity starting from the top to the bottom in the overall, and it is in line with the current development trend of hardware design based on IP core at the same time. Different from PC with compatible universal hardware, the embedded systems usually is with a personalized hardware, and it is key and ineluctable to write hardware driver separately for personalized hardware, which is the reason to take the hardware driver design based on embedded operating system as the independent knowledge point and is in accordance with personalized features of embedded system. Embedded systems shall be not of a visual graphical interface necessarily, like the embedded system of vehicle control exhaust emissions even without the text character interface, while graphical interface development has its own development model in the embedded system, thus the application program design knowledge points in the embedded system are divided into "application programming of no interface or character interface" and "application programming of embedded GUI and graphics".

24

Header Courses Related to Embedded System Table 1 presents the existing related courses of embedded system knowledge. In computer professional, the relevant knowledge of embedded processor design is generally included in design of the course of computer composition principle, which mainly uses the Verilog or VHDL language to design the processor based on the MIPS instruction set and to carry out the simulation of the processor through the FPGA in the way of SOC. For the peripheral interface circuit design, both "microprocessor and interface technology" of electronic courses and "microcomputer principle and interface technology" of computer professional contain most of the relevant knowledge for the versatility of interface circuit, although not specifically for the embedded processor. The basic knowledge involved in embedded operating system design has been given in operating system courses for computer science, and the no interface or character interface application programming is the same with the general program design with the relevant explanation in the basic courses related to program design. Table 1. Existing related courses of embedded system knowledge. Knowledge points of embedded system Related courses Computer Science Embedded processor design Project of computer composition principle

Hardware platform design based on embedded processor No

Peripheral interface circuit design of embedded system Microcomputer principle and interface technology

Embedded operating system design Operating system Embedded operating system development environment No

Hardware driver design based on embedded operating No system No interface or character interface application All related basic course of program design programming Embedded GUI and graphics application program No design Four parts without relevant curriculum include: hardware platform design based on embedded processor, embedded operating system development environment, hardware driver design based on embedded operating system and embedded GUI and graphics application programming, which should be the main contents of the embedded system teaching. Operating System Integrated with Application Program Some simple embedded operating systems such as uC/OS and QNX, without user interface (Shell), and its operating system and application program are integrated with the same development mode (through the emulator) with a single chip system instead of the development environment based on embedded operating system. Developing program on these simple embedded operating systems, which are "invisible", are just some API functions that support multitasking in the eyes of programmers, and are lack of general hardware driver support inside the operating systems as well. Non computer professionals can use the relevant materials to take the uC/OS as an embedded operating system to teach [6], but such an operating system is not complete from the point of view of computer professional and its development model is different from the general development model based on the operating system of the computer professional, thus this embedded operation is not included in the embedded operating system teaching for computer professional. Embedded GUI The early embedded system is of simple function and without too much requirements on the . And the requirements of the graphics system on the hardware were too high to implement in embedded system. The development of software and hardware technology makes it 25 possible to develop graphics in embedded system, and embedded GUI (embedded system using GUI) makes it easier for us to make better, more beautiful interface. Compared with the general GUI, the embedded GUI has some different characteristics: occupies less storage space and less resources in running, which determines that it is different from Windows and also different from the large GUI running on the PC; embedded GUI is of fast operating and response speed to meet the real-time requirements of embedded systems; embedded GUI reliability is high, which is related to embedded application areas such as military, aerospace and industrial control areas; embedded GUI is easy to transplant and customize, for the embedded system itself is a kind of personal equipment with different demands for GUI, so the GUI used shall be customizable necessarily. Embedded GUI is an individually designed GUI for embedded system, thus it should be taken as a separate point of knowledge in teaching activities. Personal Mobile Device The shorter form of Personal mobile device is PMD, which is a class of wireless devices with multimedia user interface, such as mobile phones, tablet computers and so on. PMD emphasizes the cost and power consumption, and generally uses flash memory as storage mode with the response performance and predictable performance as the key characteristics of the multimedia applications, as well as the real time performance requirements are also important. In 2010, sales of PMD were about 1.8 billion, of which 90% are the mobile phone; in the latest foreign classification, PMD has been isolated from the embedded computer and used as a separate computer class[2]. PMD has a common software development platform, like the desktop computer, and generally the dividing line to distinct the traditional embedded systems and PMD is that whether can run the software from the third party or not. PMD is a kind of special computer system is of the relatively common software and hardware. As the computer system of a wide range of applications with continuous development and of great difference with the traditional PC, PMD is bound to have a place in the higher education teaching in the future. PMD has a separate development environment, and there are two main types at present, that is, the development platforms based on the IOS system and Android system, and its development mode is similar to that of embedded system, namely the development host and the target host is separate with the similar embedded operating system kernel( such as Android kernel is the improvement of the embedded kernel) and the similar graphical interface development model. Therefore, in the current, it is necessary and appropriate to take the PMD as part of the embedded system teaching content.

Teaching Content Design of Embedded System The Teaching Content of Embedded Hardware System The design of embedded processor is a complicated project, and the early design method is different from the modern design method with different characteristics of different types of processors such as MPU, MCU, DSP, and SOC. For the present, the design of embedded processors generally refers to the design of the processor of SOC based on the IP core. From the teaching, the content of the processor design in the subject of computer composition principle is basically complete and sufficient, and as an independent knowledge system with a slightly narrow application area, and it is of less correlation to other parts of the embedded system, therefore it won’t be involved again in the teaching of embedded system. In general, the peripheral interface circuit design is not taken separately as the teaching content of the embedded system course, and the not involved part can be given in the teaching of hardware platform design based on embedded processor incidentally. Hardware platform design based on embedded processor is the only part without similar teaching content in the embedded hardware system, which is an important part of embedded system teaching. At present, the teaching of hardware in the embedded system is usually the explanation of the 26

function of the embedded processor[7] (including internal interface) and the introduction of peripheral interface circuit[8], different from this, the embedded system hardware platform design combines the embedded processor function and peripheral interface circuit organically to cultivate students' ability effectively from the macro design with focus on the whole and from top to the bottom. Embedded processor is varied, whether it is ARM, MIPS, Power PC, or DSP of TI, all with their own application market, while the embedded system teaching should select the embedded processor, which is most representative and suitable for the application market, as an example; and ARM is such a processor that meets the above requirements, and it is dominant in the embedded market and adapted to a variety of applications, providing with a wide variety of ARM processor chips with authorization of using ARM technology. In 2010, a total of 6.1 billion chips based on ARM technology were delivered [2], while according to the prediction of IDC, the share of ARM in the embedded processor market will raise to 68% by 2016. The Teaching Content of Embedded Software System For embedded operating system, the integration of the application and the operating system is exclude in 3.3 and the attentions are on the embedded operating system development environment and the driver development; based on the characteristics of embedded system, the principle of the underlying operating system (such as the programming structure of the kernel of operating system) is absolutely necessary, with the GNU tool chain usually taken as an example to explain the development tools and Linux based device files usually used in driver teaching. Embedded operating systems are usually without graphic user interface, the user interface of it is usually based on text, and the graphical interface programming is based on embedded GUI, as stated in 3.4, which cannot be ignored neither in the teaching of embedded system. Some of the typical embedded GUI are QTE and Micro Windows. Embedded operating system is of various types with their own characteristics, and in the latest survey, Linux has become the mainstream operating system in the design of thousands of products each year, with Linux [9] used in nearly half of embedded design; and as an cross platform operating system, it is also appropriate to take Linux as an example in the teaching of embedded system operating for the computer professional. The Teaching Content of Embedded System In summary, the embedded system teaching content designed in this paper are shown in Table 2. The selection of the application examples follows the traditional and the hottest trend of this industry, with the traditional embedded system may be a complete set of design for an industrial or civil equipment and the hot applications are like smart home, internet of things and wearable devices, etc. And the military academies can also include the introduction of defense aerospace products.

27

Table 2. Teaching content of embedded system. Teaching content Reference details Overview of embedded systems Definition of computer science Hardware platform design based on embedded Overall frame processor internal interface of ARM embedded processor Common external interface Embedded operating system development programming structure of the kernel of Linux operating environment system; GNU tool chain

Driver program design based on embedded Method based on device file operating system Embedded GUI QTE or MicroWindows PMD development platform Android or IOS Application examples of embedded system a complete set of design for an industrial or civil equipment; smart home, internet of things and wearable devices; introduction of defense aerospace products.

Conclusion Based on the definition and composition of embedded system, this paper discusses the teaching content of embedded system, analyzes each relevant knowledge point, and finally give the teaching content design of embedded system, with the following characteristics: The definition of embedded system is analyzed from the view of computer science, which makes it different from the single chip computer system; emphasize the function of the embedded operating system and exclude the situation that the application and the operating system are integrated from the teaching content. The embedded hardware teaching emphasizes the design of hardware platform based on embedded processor and focus on the overall design ideas and framework design from the macro to meet the application requirements of embedded hardware system design. Discuss the development environment of embedded operating system, driver design based on the embedded operating system and GUI, delineate the scope of the teaching content according to the characteristics of embedded system. Have a separate discussion on PMD, which is in accordance with the trends of the application and development of computer science and technology. With the teaching experience in embedded system of many years, we hope that the discussion of the embedded teaching content can inspire more relevant researches to further standardize the teaching of embedded system for computer science and cultivate more talents of embedded system application in line with the social needs.

Acknowledgments This research was financially supported by teaching research project (ITEA10002002, ITEA10002104, WH2015010) of Harbin Institute of Technology at Weihai.

References [1] John L. Hennessy, David A. Patterson. Computer Architecture: A Quantitative Approach, Fourth Edition. Electronic Industry Press, 2007.8.

28

[2] John L. Hennessy, David A. Patterson. Computer Architecture: A Quantitative Approach, Fifth Edition. People Post Press, 2013.1. [3] Xiumin Shi, Ji Zhang, Yanbing Ju. Research and Practice in Undergraduate Embedded System Course. The 9th International Conference for Young Computer Scientists, 2008: 2659-2663. [4] Naehyuck Chang, Ikhwan Lee. Embedded system hardware design course track for CS students. Proceedings of the 2003 IEEE International Conference on Microelectronic Systems Education, 2003: 49-50. [5] Jia Yu. Innovation Teaching Method Researching on Embedded System Course Based on Robot Project-driven Idea. 2010 International Conference on E-Health Networking, Digital Ecosystems and Technologies, 2010: 249-252. [6] Jean J. Labrosse, Shao Beibei translation. Embedded real-time operating system uCOS-II. Beijing University of Aeronautics and Astronautics Press, 2003.5. [7] Tianze Sun, Wenju Yuan. Embedded design and development of embedded linux driver guide. Electronic Industry Press, 2009.10. [8] Miao Liu. Interface design and development of embedded systems and Linux drivers. Beijing University of Aeronautics and Astronautics Press, 2006.5. [9] Christopher Hallinan. Embedded Linux Basic Course. People Post Press, 2012.5.

29