Difference between revisions of "ECE497 - 32-bit Embedded Linux, Rose-Hulman"

From eLinux.org
Jump to: navigation, search
(Class PowerPoint: Moved from SharePoint to web)
(Weekly Status Memos)
(48 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[Category:ECE597]]
+
[[Category:ECE497 | 32-bit]]
 
[[Category: BeagleBoard]]
 
[[Category: BeagleBoard]]
== Introduction ==
+
[[Category: Education]]
This Wiki is about a college-level embedded processor class being taught using the BeagleBoard.  It's being taught by Professor Mark A. Yoder in the [http://ece-1.rose-hulman.edu/ecemm/ Electrical and Computer Engineering Department] at [http://www.rose-hulman.edu Rose-Hulman Institute of Technology].  Rose is a small, private, undergraduate engineering school that focuses on undergraduate education.
+
{{YoderHead}}
  
A major part of the class is learning how to work with and leverage off of the open source community. The course requires a major project which will either significantly contribute and an existing open source project, or launch a new one. Here's the official description of the course.
+
=== Introduction ===
  
== Course Description ==
+
This Wiki is about a college-level embedded processor class being taught using the BeagleBoard.  It's being taught by Professor Mark A. Yoder in the [http://ece-1.rose-hulman.edu/ecemm/ Electrical and Computer Engineering Department] at [http://www.rose-hulman.edu Rose-Hulman Institute of Technology].  Rose is a small, private, undergraduate engineering school that focuses on undergraduate education.
  
'''ECE 597 32-bit Embedded Linux 4R-0L-4C S Pre: Consent of instructor'''
+
A major part of the class is learning how to work with and leverage off of the open source community. The course requires a major project which will either significantly contribute and an existing open source project, or launch a new one.
  
Brief introduction to Linux on a 32-bit embedded processorDetailed study of what happens from power up the fully running X-Windows.  Adapting Linux to a given application including: boot time reduction, power management and root filesystem support. Streaming media on an embedded processor.  Using a DSP co-processor to improve performance.  Design project. Previous Linux experience not required, but helpful.  C programming, operating system and hardware experience required.
+
If you teach a similar course, I'd like to hear from you[[ECE497 Instructor Guide]] explains the various choices I made in what to cover in the course, which distribution to use, etc.
  
=== Calendar ===
+
Here ([[:Category:ECE497]]) is a list of all the pages I've posted on eLinux for this classTake a look at it.
This is a new course, so the calendar doesn't go very far in the futureIt will be updated as we go.  You can see it here: [[Calendar]]
+
  
=== Text ===
+
Here's the official description of the course.
We'll be using the text [http://books.google.com/books?id=x5UNQwAACAAJ Embedded Linux Primer], by ''Christopher Hallinan'', published by Pearson Prentice Hall.  The link is for the 1<sup>st</sup> edition; however we are using a prepublication version of the [http://books.google.com/books?id=1U5yQAAACAAJ&source=gbs_book_other_versions_r&cad=2 2<sup>nd</sup> edition].  It will be available in the bookstore around the first day of class.
+
  
The text is not Beagle specific, rather it pulls examples from many embedded processors.  It has many listings which detail the outputs from various processors.  One of your tasks will be to reproduce the listing for the BeagleBoard.
+
=== Course Description ===
  
We'll be posting our listing here: [[Listings for Embedded Linux Primer]]
+
'''ECE 497 32-bit Embedded Linux 4R-0L-4C S Pre: Consent of instructor'''
  
=== Grades ===
+
Brief introduction to Linux on a 32-bit embedded processor.  Detailed study of what happens from power up the fully running X-Windows.  Adapting Linux to a given application including: boot time reduction, power management and root filesystem support. Streaming media on an embedded processor.  Using a DSP co-processor to improve performance. Design project. Previous Linux experience not required, but helpfulC programming, operating system and hardware experience required.
Grades in the class aren't based on the traditional homework and exams, rather, they are based on a major Beagle-based project and your portfolio. The project will be done with teams of about 3 people. We have people in the class with strong embedded backgrounds and others with strong Linux background. The goal is to have teams include complementary skills.
+
  
Your portfolio is a collection of what you, as an individual, have contributed to the community and the team.
+
=== Calendar and Exercises ===
 +
This is dynamic course, so the calendar may change as we discover interesting new things. It will be updated as we go. You can see it here: [[ECE497 Calendar and Exercises]]
  
=== Exercises ===
+
There are many things you will have to do to get your computer set up, etc.  [[ECE497 Calendar and Exercises]] also gives the step-by-step details along with due dates.
There are many things you will have to do to get your computer set up, etc.  [[Exercises]] gives the step-by-step details along with due dates.
+
  
=== Class PowerPoint ===
+
=== Textbook ===
 +
We'll be using the text [http://books.google.com/books?id=1U5yQAAACAAJ&source=gbs_book_other_versions Embedded Linux Primer], by ''Christopher Hallinan'', 2<sup>nd</sup> edition, published by Pearson Prentice Hall. 
  
The PowerPoint for the class is [http://www.rose-hulman.edu/~yoder/beagle/ECE597/ here].
+
The text is not Beagle specific, rather it pulls examples from many embedded processors. It has many listings which detail the outputs from various processors. One of your tasks will be to reproduce the listing for the BeagleBoard.
  
== Links ==
+
=== Grades ===
 +
Grades in the class aren't based on the traditional homework and exams, rather, they are based some daily exercises [[ECE497 Calendar and Exercises]], a couple of minor projects and a major Beagle-based project and your portfolio. The projecst will be done with teams of 2 or 3 people.  We have people in the class with strong embedded backgrounds and others with strong Linux background. The goal is to have teams include complementary  skills.
  
Since we are working with the open source community, you need to know where the action is. Here are some useful links to what's happening in the Beagle community.
+
Your portfolio is a collection of what you, as an individualhave contributed to the community and the team.
  
* [http://BeagleBoard.org BeagleBoard.org], the starting point for all thing Beagle.
+
{| style="color:green; background-color:#ffffcc;" cellpadding="10" cellspacing="0" border="1"
* [http://groups.google.com/group/beagleboard Beagle Discussion Group], lot's of good information here, but you'll have to dig a bit.  Subscribe and follow the discussion.
+
| Labs and Exercises
* [http://elinux.org/BeagleBoard eLinux], this is where this page is being hosted.  It's about embedded Linux in general, not just the BeagleBoard.
+
| 25%
* [http://free-electrons.com/blog/beagle-labs/ Free Electrons Beagle Board Training], some good labs about what makes embedded Linux run.
+
|-
* [http://www.theopensourceway.org/book/ The Open Source Way] is a book about working with open source.  Is it of any use for this class?
+
| Mini Projects
* [https://gforge.ti.com/gf/project/tiesr/ TI Embedded Speech Recognizer] (TIesr) is a fixed-point recognizer written in C++ and C.
+
| 25%
* [http://code.google.com/soc/ Google Summer of Code].  BeagleBoard is an accepted organization.
+
|-
* [http://www.flickr.com/photos/saldatoccio/2619894489/ Linux Kernel Map]
+
| Project
* [http://wiki.davincidsp.com/index.php/Porting_GPP_code_to_DSP_and_Codec_Engine Porting_GPP_code_to_DSP_and_Codec_Engine]
+
| 40%
 +
|-
 +
| Giving to Community
 +
| 10 %
 +
|}
  
===Project Ideas===
+
The Calendar gives the due dates.  I'll give a reward to being early and 10% per day penalty for being late. You must complete all the exercises to pass the course.
  
Here are some links where you'll find ideas for your project.  [[Project Ideas]]
+
=== Weekly Status Memos ===
  
== Setting up your hardware and software ==
+
A Weekly Status Memo is due at the beginning of each weekInitially the beginning of the week is ThursdayThis memo is to document all that you have done during the previous week.  Here are things I look for in a memo.
=== The Hardware===
+
# Have '''To, From, Date,''' and '''Subject''' field on the top.
You need to need to come by my office to pick up a BeagleBoardI have on Beagle per team, plus a couple of extrasIf you got a rec C3 board earlier you need to come swap it for a rev C4. You also need to buy the Beagle Kit from Mark Crosby in room C124It's $40You'll also need a USB mouse, keyboard and powered hub, plus an SD card and reader. 2G should be big enoughI suggest at least one card per person (not team). This will let you try new things without deleting the old.
+
# Use a meaningful subject.  ''Week 2, Exercises 02, 04 and 10'' is meaningful.  ''Exercise Memo'' is not.
 +
# Have a section of each exercise that is completed.
 +
# Start with a couple sentence introduction giving an overview of what the exercise is about.
 +
# Answer all the questions in the exercise.
 +
# Use tables.
 +
# Clearly state which parts of the exercise you were able to complete.
 +
# Note any parts of the exercise you were unable to complete and explain why.
 +
# End with a few sentences of concluding remarksWhat did you learn? What else would you like to learn? What do you suggest for other related exercises? What extra interesting things did you do?
  
=== The Software ===
+
You grade for each exercise will be based on what you report in your memo. No need for the memo to be longJust make it clear about what you have done.
We're using mostly open source softwareGo to here [[Software Setup]] to see see how to get everything installed.
+
  
--[[User:Yoder|Prof. Yoder]] 15:23, 4 March 2010 (UTC)
+
{{YoderFoot}}

Revision as of 04:46, 6 September 2012

thumb‎ Embedded Linux Class by Mark A. Yoder


Introduction

This Wiki is about a college-level embedded processor class being taught using the BeagleBoard. It's being taught by Professor Mark A. Yoder in the Electrical and Computer Engineering Department at Rose-Hulman Institute of Technology. Rose is a small, private, undergraduate engineering school that focuses on undergraduate education.

A major part of the class is learning how to work with and leverage off of the open source community. The course requires a major project which will either significantly contribute and an existing open source project, or launch a new one.

If you teach a similar course, I'd like to hear from you. ECE497 Instructor Guide explains the various choices I made in what to cover in the course, which distribution to use, etc.

Here (Category:ECE497) is a list of all the pages I've posted on eLinux for this class. Take a look at it.

Here's the official description of the course.

Course Description

ECE 497 32-bit Embedded Linux 4R-0L-4C S Pre: Consent of instructor

Brief introduction to Linux on a 32-bit embedded processor. Detailed study of what happens from power up the fully running X-Windows. Adapting Linux to a given application including: boot time reduction, power management and root filesystem support. Streaming media on an embedded processor. Using a DSP co-processor to improve performance. Design project. Previous Linux experience not required, but helpful. C programming, operating system and hardware experience required.

Calendar and Exercises

This is dynamic course, so the calendar may change as we discover interesting new things. It will be updated as we go. You can see it here: ECE497 Calendar and Exercises

There are many things you will have to do to get your computer set up, etc. ECE497 Calendar and Exercises also gives the step-by-step details along with due dates.

Textbook

We'll be using the text Embedded Linux Primer, by Christopher Hallinan, 2nd edition, published by Pearson Prentice Hall.

The text is not Beagle specific, rather it pulls examples from many embedded processors. It has many listings which detail the outputs from various processors. One of your tasks will be to reproduce the listing for the BeagleBoard.

Grades

Grades in the class aren't based on the traditional homework and exams, rather, they are based some daily exercises ECE497 Calendar and Exercises, a couple of minor projects and a major Beagle-based project and your portfolio. The projecst will be done with teams of 2 or 3 people. We have people in the class with strong embedded backgrounds and others with strong Linux background. The goal is to have teams include complementary skills.

Your portfolio is a collection of what you, as an individual, have contributed to the community and the team.

Labs and Exercises 25%
Mini Projects 25%
Project 40%
Giving to Community 10 %

The Calendar gives the due dates. I'll give a reward to being early and 10% per day penalty for being late. You must complete all the exercises to pass the course.

Weekly Status Memos

A Weekly Status Memo is due at the beginning of each week. Initially the beginning of the week is Thursday. This memo is to document all that you have done during the previous week. Here are things I look for in a memo.

  1. Have To, From, Date, and Subject field on the top.
  2. Use a meaningful subject. Week 2, Exercises 02, 04 and 10 is meaningful. Exercise Memo is not.
  3. Have a section of each exercise that is completed.
  4. Start with a couple sentence introduction giving an overview of what the exercise is about.
  5. Answer all the questions in the exercise.
  6. Use tables.
  7. Clearly state which parts of the exercise you were able to complete.
  8. Note any parts of the exercise you were unable to complete and explain why.
  9. End with a few sentences of concluding remarks. What did you learn? What else would you like to learn? What do you suggest for other related exercises? What extra interesting things did you do?

You grade for each exercise will be based on what you report in your memo. No need for the memo to be long. Just make it clear about what you have done.




thumb‎ Embedded Linux Class by Mark A. Yoder