CSCE 313 - Embedded Systems Programming
Department Course Description
Embedded microprocessor and micro-controller systems are the data analysis and processing backbone of many of our industries—automotive, military and aerospace, manufacturing and production, transportation, and consumer electronics—to name a few. The millions of lines of embedded software code drives many of the critical systems that makes our global economy work as it does. (Remember the Y2K “scare” a few years back? Experts were mostly worried about the impact of the date rollover problem on the execution of the embedded systems more than any other factor.) Embedded systems are where "the rubber meets the road", so to speak, in that we are going to work at the level where the higher layers of systems and application software integrate with the underlying hardware--through the Instruction Set Architecture layer. In addition, at this level, we need to concern ourselves with the interfacing and integration of disparate systems and devices which would come under the control of the embedded system.
Many of these millions of lines of code are written in the low-level assembler languages, and in direct machine code sequences, supported by the microprocessor or micro-controller used in the specific systems. We will take one popular processor, the Motorola® 68000 and its descendants, and explore its Instruction Set Architecture (ISA) model, and its hardware architecture, so that we can write efficient and correct programs that exploit the capabilities of this processor “workhorse”.313—Embedded
Systems Laboratory.
(3) (Prereq: CSCE 211, 212) design and implementation of microprocessor based
systems; assembly language programming.
The Importance of This Course for Computer Engineering
A key aspect of computer engineering design is the use of an iterative enhancement style of design method, allowing us to explore the space of possible program solutions to an embedded systems programming problems. Many of the problems require interfacing to external circuits and systems, while also responding to a wide range of events, in real time, generated by these devices and systems. Many of these millions of lines of low-level assembler code are written using haphazard methods. But the truth is that computer engineering methods--specifically those associated with software engineering--are essential for constructing robust, correct and efficient programming solutions to embedded systems problems. We will take the Motorola® 68000 and explore its Instruction Set Architecture (ISA) model so as to apply good software analysis, construction and program behavior verification methods to the programs that we construct.
Course Pages Content Change History
4/23/03 New!! Here is how we will handle the apportionment of work remaining for the class. We believe we have enough working lab hardware to get MacKenzie's Labs 3, 7, 8, and 11 done by the end of this week. And with that, we'll have completed a combination of 12 labs and homework assignments for the class. In order to calculate your grade, we'll count the work as follows (with some slight modification to the syllabus due to non-working lab hardware for most of the semester): (1) For the remaining 25% points for Exam #2, we'll incorporate the results of MacKenzie Labs 3 and 7. (2) With MacKenzie Labs 8 and 11, we'll have a total of 10 homework and lab assignments, which will be combined for the 40% of the grade outlined in the syllabus (25% Labs, 15% Homework). (3) The 3 exams (of which you have a grade on Exam #1 for a total out of 100 points, and for exam #2 for a total out of 75 points, now with the additional 25 points from Labs 3 and 7), we'll have the remaining 60% of the grade for the course--20% of the final grade for each exam.
Exam #3: This will be an exam based on the material we have covered in the Lab and on the final problem from Exam #2 involving interrupts and I/O interfacing that did not get credited due to lack of sufficient time. We'll discuss the contents of the Exam #3 in the classroom on Monday, April 28. The Exam #3 will be given during class on Wednesday, April 30. It will be 4 problems. Exam #3 will be open book (Text only).
4/4/03 New!! This is a follow-up to your comments about a number of issues and questions, and with the fact that there was some clarification required in the MacKenzie material (which we discussed in class today. But, to reiterate: (1) Exam #2 will be held on Monday 4/7/03, same procedure as planned, (2) we will eliminate our use of the Drop Box, as it is not worked well for turning in and grading the lab submissions; so, for the remainder of the semester, we'll *still* type up submissions, but submit printouts, and (3) Lab #8 listed on the Assignments Page is *not* due today. I now have the lab apparatus working, but only on a subset of the PCs. So, we'll do the Lab #8 starting next week, but I'll assign a due date for the week of 4/14 (due to scheduling constraints on access to the lab PCs). For the exam, here's the figure from today's lecture: work-example-2.pdf
3/3/03 New!! I have updated the Lectures and Assignment pages to reflect some new information: (1) revision of lecture plan (and fact that we are about 1.5 lectures behind the original plan, so all lectures will see a one to two-class delay), (2) installment of Drop Box submission and policy regarding Homework and Project submissions, (3) specific information about Lecture 22 (Wed 3/5/03), and (4) modification of the Lab numbering on the Assignments page (since I had two different ones listed as Lab #4). I've also posted the Lab Debugging Worksheet template, which we'll use in Lab #3, and also later (you might see a version of it on Exam #2, for instance).
2/15/03 New!! I have updated this page, and the Lectures page, and Assignments page, to reflect the current direction of the course. I have attempted to chart our course through the end of the semester--thus giving you an idea of what is to be covered--and what will be expected--to complete this course. As you know, we've had difficulties in getting our Embedded Systems Lab moved from 300 to 301 S. Main St., so this has impacted our start at the gate. However, I believe we can now start moving ahead on writing 68K programs, using the WISM68 simulator--an activity that will frontload the subsequent use of the embedded systems hardware (as I get this portion of the lab fully operational, get the individual boards functionally tested and inventoried, etc.).
12/4/02 New! I have added this page, so that prospective students know the texts to be used. More information on the course subject materials and projects will be posted soon.
Course Content Materials
My Course Syllabus & Text (Click this link)
Course Lecture Notes & Resources (Click this link)
Homework Assignments (Click this link)