24
Introduction to Embedded Introduction to Embedded Software Development Software Development He Zongjian He Zongjian [email protected] 13816533720 13816533720

Introduction to Embedded Software Development He Zongjian [email protected] 13816533720

Embed Size (px)

Citation preview

Page 1: Introduction to Embedded Software Development He Zongjian hezongjian@msn.com 13816533720

Introduction to Embedded Introduction to Embedded Software DevelopmentSoftware Development

He ZongjianHe Zongjian

[email protected]

1381653372013816533720

Page 2: Introduction to Embedded Software Development He Zongjian hezongjian@msn.com 13816533720

Learning by doingLearning by doing

ProjectProject Source code serverSource code server Progress controlProgress control MSFMSF

SpeechSpeech Microsoft MSF expertMicrosoft MSF expert ICOP -- CTOICOP -- CTO

Page 3: Introduction to Embedded Software Development He Zongjian hezongjian@msn.com 13816533720

Windows ChallengEWindows ChallengE

Reference web site:Reference web site: http://www.windowschallenge.com/http://www.windowschallenge.com/

Page 4: Introduction to Embedded Software Development He Zongjian hezongjian@msn.com 13816533720

FAQ ResourcesFAQ Resources

http://bbs.tongji.nethttp://bbs.tongji.net

Teacher Assistant: Teacher Assistant: [email protected]@microsoft.com

Page 5: Introduction to Embedded Software Development He Zongjian hezongjian@msn.com 13816533720

Brief IntroductionBrief Introduction

An elective course of Embedded An elective course of Embedded Computing Computing

3-credit course, 3 hours per week. 3-credit course, 3 hours per week.

Has been available for 2 years, over Has been available for 2 years, over 260 students have taken this course.260 students have taken this course.

Page 6: Introduction to Embedded Software Development He Zongjian hezongjian@msn.com 13816533720

GoalsGoals make the student understand the make the student understand the

characteristics of embedded system and characteristics of embedded system and embedded softwareembedded software

understand the features and architecture of understand the features and architecture of Windows CE, especially the differences from Windows CE, especially the differences from other embedded operating systems. other embedded operating systems.

know how to customize the OS and how to know how to customize the OS and how to develop applications and device drivers.develop applications and device drivers.

give the students more practice via one or give the students more practice via one or two projects.two projects.

Page 7: Introduction to Embedded Software Development He Zongjian hezongjian@msn.com 13816533720

AchievementAchievement

Students show great interests in this Students show great interests in this course.course.

More than 200 undergraduate students More than 200 undergraduate students and over 20 graduate students have and over 20 graduate students have selected this course.selected this course.

It has largest attendance among all the It has largest attendance among all the elective courseselective courses

Page 8: Introduction to Embedded Software Development He Zongjian hezongjian@msn.com 13816533720

Achievement (continued)Achievement (continued)

Windows CE club is set et up. Now, Windows CE club is set et up. Now, more than 150 members have joined more than 150 members have joined the club.the club.

Huaheng Cup Software development Huaheng Cup Software development CompetitionCompetition

Microsoft internship programMicrosoft internship program

Page 9: Introduction to Embedded Software Development He Zongjian hezongjian@msn.com 13816533720

Differences from Windows Differences from Windows ProgrammingProgramming

Application Application DevelopmentDevelopment

APIAPI ,, MFCMFC

Development Development ToolsTools

Common Common ApplicationApplication NetworkingNetworking , ,

databasedatabase

Application Application DevelopmentDevelopment

Device Driver Device Driver DevelopmentDevelopment

OS DesignOS Design

Windows CE Windows CE Kernel Kernel ArchitectureArchitecture

Page 10: Introduction to Embedded Software Development He Zongjian hezongjian@msn.com 13816533720

Two teaching methods in Two teaching methods in SSE 03SSE 03

Traditional way >= 50%Traditional way >= 50%

Learning by doing <= 50%Learning by doing <= 50%

Page 11: Introduction to Embedded Software Development He Zongjian hezongjian@msn.com 13816533720

Course AgendaCourse Agenda Embedded System(2)Embedded System(2) Embedded Operating System(2)Embedded Operating System(2) Introduction to Windows CE (2)Introduction to Windows CE (2) Application Development (6)Application Development (6) Windows CE OS Development (6)Windows CE OS Development (6) Windows CE System Architecture(4)Windows CE System Architecture(4) Driver Development (4)Driver Development (4) BSP Development & Other Topics (4)BSP Development & Other Topics (4) Summary and Case study : (2)Summary and Case study : (2)

vehicle electronicvehicle electronic Lab Course (16)Lab Course (16)

Page 12: Introduction to Embedded Software Development He Zongjian hezongjian@msn.com 13816533720

Learning by doingLearning by doing CMU Learning by Doing + the situation CMU Learning by Doing + the situation

of China + the involvement of software of China + the involvement of software industryindustry

Use large-scale applied or virtual Use large-scale applied or virtual software projectssoftware projects

Organize students like software Organize students like software company memberscompany members

Organize teaching courses like real Organize teaching courses like real software developing processsoftware developing process

Page 13: Introduction to Embedded Software Development He Zongjian hezongjian@msn.com 13816533720

Learning by doing (Contd.)Learning by doing (Contd.)

20% teaching, 80% projects20% teaching, 80% projects

Teachers give the key points to Teachers give the key points to students; students learn knowledge by students; students learn knowledge by self-study and doing projects. Teacher self-study and doing projects. Teacher works as consultants.works as consultants.

The grading criterion is whether The grading criterion is whether students can finish software projects students can finish software projects on schedule and on demand.on schedule and on demand.

Page 14: Introduction to Embedded Software Development He Zongjian hezongjian@msn.com 13816533720

Sources of projectsSources of projects

1. Consider whether Microsoft can 1. Consider whether Microsoft can provide some detailed project provide some detailed project requirements, the projects can be requirements, the projects can be virtual or real. Students can be virtual or real. Students can be grouped and “bid” for the projects.grouped and “bid” for the projects.

2. Students can be organized to join 2. Students can be organized to join “Microsoft Windows Embedded “Microsoft Windows Embedded Student ChallengE” competition.Student ChallengE” competition.

3. Some internal embedded projects in 3. Some internal embedded projects in school.school.

Page 15: Introduction to Embedded Software Development He Zongjian hezongjian@msn.com 13816533720

Training of engineering Training of engineering experienceexperience During the whole projects, we want to During the whole projects, we want to

focus on training the engineering focus on training the engineering attainment of students. Not only lies in attainment of students. Not only lies in the usage of CASE tools, but also in the usage of CASE tools, but also in the management of software process. the management of software process. From the initial business plan to From the initial business plan to analysis and design, coding and analysis and design, coding and testing, product release and so on. All testing, product release and so on. All of these should be strictly according to of these should be strictly according to the process of software companies.the process of software companies.

Page 16: Introduction to Embedded Software Development He Zongjian hezongjian@msn.com 13816533720

Responsibility of the Responsibility of the teacherteacher Provide fundamental course Provide fundamental course

introduction and introduction to tools introduction and introduction to tools and technologies.and technologies.

Help students to build the develop Help students to build the develop environment and tools (code environment and tools (code management, bug management)management, bug management)

assort with project process (coding, assort with project process (coding, testing and communication)testing and communication)

Provide technical support (solving Provide technical support (solving problems in projects) and so on…problems in projects) and so on…

Page 17: Introduction to Embedded Software Development He Zongjian hezongjian@msn.com 13816533720

How students get How students get knowledgeknowledge 1. The teacher’s necessary 1. The teacher’s necessary

explanation.explanation.

2. Self-learning. This is the main 2. Self-learning. This is the main approach of getting knowledge.approach of getting knowledge.

3. Communications between students.3. Communications between students.

Page 18: Introduction to Embedded Software Development He Zongjian hezongjian@msn.com 13816533720

Organization of the Organization of the studentsstudents Divided into several groups. Each Divided into several groups. Each

students can act as a specific role, students can act as a specific role, such assuch as :: ArchitectArchitect ,, Program Program ManagerManager ,, DeveloperDeveloper ,, Test and so Test and so on.on.

Each student takes his own Each student takes his own responsibility and finishes the program responsibility and finishes the program together. together.

In order to let students experience In order to let students experience different roles, we can perhaps put one different roles, we can perhaps put one student in different groups and let student in different groups and let him / her act as different roles.him / her act as different roles.

Page 19: Introduction to Embedded Software Development He Zongjian hezongjian@msn.com 13816533720

PhasePhase of the projectsof the projects

Divide the project into several phases. Divide the project into several phases. For example, writing business For example, writing business planning, project designing, software planning, project designing, software developing, testing and software developing, testing and software release.release.

At the beginning of each phase, At the beginning of each phase, teachers or experts from enterprise teachers or experts from enterprise can tell the students the tasks of this can tell the students the tasks of this phase and important things. At the end phase and important things. At the end of each phase, teachers or experts of each phase, teachers or experts should review the results to see should review the results to see whether they can pass. If the result whether they can pass. If the result passes, they can go to next phase, or passes, they can go to next phase, or else, they should redo or modify it. else, they should redo or modify it.

Page 20: Introduction to Embedded Software Development He Zongjian hezongjian@msn.com 13816533720

How to gradeHow to grade

Students are divided into several Students are divided into several groups. For each group, we give the groups. For each group, we give the members the same result. members the same result.

We treat each group as a unit so that We treat each group as a unit so that team working can be trained. team working can be trained.

Page 21: Introduction to Embedded Software Development He Zongjian hezongjian@msn.com 13816533720

Future visionFuture vision

We would like to make this course and We would like to make this course and this teaching mode as a brand and this this teaching mode as a brand and this brand can have certain effect in brand can have certain effect in software industry.software industry.

We may give the students a “Learning We may give the students a “Learning by doing” certification, so that by doing” certification, so that students who take part in this course students who take part in this course can have more advantages in job can have more advantages in job hunting.hunting.

Page 22: Introduction to Embedded Software Development He Zongjian hezongjian@msn.com 13816533720

Course SelectionCourse Selection

if in agendaif in agenda

select itselect it

elseelse

goto Mrs. Ji xuelian’s office goto Mrs. Ji xuelian’s office before 20thbefore 20th

end ifend if

Page 23: Introduction to Embedded Software Development He Zongjian hezongjian@msn.com 13816533720

Reference Web siteReference Web site http://msdn.microsoft.com/library/en-uhttp://msdn.microsoft.com/library/en-u

s/dnanchor/html/mobileembedded.asps/dnanchor/html/mobileembedded.asp?frame?frame=true=true

http://http://www.palmheart.netwww.palmheart.net//

http://http://www.wince.com.twwww.wince.com.tw//

http://http://www.csdn.netwww.csdn.net//

http://http://bbs.yesky.combbs.yesky.com//

Page 24: Introduction to Embedded Software Development He Zongjian hezongjian@msn.com 13816533720

Reference NewsgroupReference Newsgroup

microsoft.public.windowsce.app.developmentmicrosoft.public.windowsce.app.development

microsoft.public.windowsce.embeddedmicrosoft.public.windowsce.embedded

microsoft.public.windowsce.embedded.vcmicrosoft.public.windowsce.embedded.vc

microsoft.public.windowsce.platbuildermicrosoft.public.windowsce.platbuilder

microsoft.public.windowsce.targeted.devicemicrosoft.public.windowsce.targeted.device

microsoft.public.windowsce.updatemicrosoft.public.windowsce.update