Req: (Free) Embedded Platforms for Education - Page 4

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
Re: Req: (Free) Embedded Platforms for Education

Quoted text here. Click to load it

Can you tell me what makes using XINU, for a teaching situation at a
university, as complex as some commercial software?  Or you pick some
open software of your choice... linux, freebsd, etc.... and provide
your exact reasoning why using any of them in a teaching situation at
a university would be complex.  I'm seriously curious about the exact
details you see.  Or if this is merely vague fear mongering on your
part.  I don't see an issue, Chris.  If you know a reason why this
would be "as bad as" commercial software in a university setting, I'd
like to understand why.

Jon

Re: Req: (Free) Embedded Platforms for Education

Quoted text here. Click to load it
<snip>
Quoted text here. Click to load it
<snip>
Quoted text here. Click to load it
 > etc.... and provide your exact reasoning why using any of them
 > in a teaching situation at a university would be complex.
<snip>

This opens a door for me to vent a little bit; my top gripe with
opensource (read GPL mostly) software is the disposition of the
development community towards maintaining stable releases over
the long term for major programs.  Too often I am flamed when
discussing old versions of essential software in the mailing lists;
in most instances I rely on the feature sets, code size,
execution speed, resource requirements of certain old versions
(some of which I ported to platforms of little interest to the
developers).  These folks often seem to be reincarnations of
Ponce de Leon, always pursuing endless youth of the codebase.
For example, Russell King bans discussion of the 2.4.x arm
linux kernel on the arm linux lists, and for certain platforms,
only 2.4.x is useful.

On the other hand, there is a vast knowledge base for many
essential non-opensource softwares, especially mature and unchanging
codebases.  This permits working within a stable framework and
permits someone without vast resources of time and personnel to
create long-term solutions.  I for example, use Hitech C compilers
from 1991, and have found many resources and people who are quite
willing to assist with issues as they arise. I have a few projects
which run under Win3.1 on PC104 boards; I can count on a well-
known API and issue-set and although I am no fan of Microsoft,
there is a huge repository of code and information upon which
to draw.

That's not to say that I wouldn't like to have the sources, just
that the culture of FOSS development is often unfriendly to mature
and stable releases.  On the other hand, some small FOSS projects
with strong author control acquire the fine ripeness of an old vintage
and are as well treasured.  LaBrosses's UC/OS-II is one fine example
of a carefully managed (in my opinion) project with available sources.

Seeing that the culture is unlikely to change any time soon, there
is justification for a resistance to using FOSS in a setting that
can't afford the rate of change.

Regards,

Michael



Re: Req: (Free) Embedded Platforms for Education
Quoted text here. Click to load it

<snip>

Quoted text here. Click to load it

An attitude not restricted to some open-source advocates.  Upgrade to
the latest version and see if that fixes the problem is not a
particulary unusual response from support lines.  If that requires a HW
upgrade well that just the price of "progress"

Robert

--

Re: Req: (Free) Embedded Platforms for Education

Quoted text here. Click to load it

I'll really have to leave a reply to your comments to the OP.  Only he
can say whether or not these things are sufficiently important to his
teaching situation.

Frankly, none of your comments concern me at all.  In a teaching
situation, you settle upon a workable branch of the code set and stay
with it.  The durable concepts that are taught remain quite durable.
One doesn't need to chase some 'rate of change,' from my personal
experience in teaching.

Now, if the focus were vocational training, it may be another matter.
But I don't gather that is what we are talking about.

Jon

FOSS Bashing



Chris Hills wrote:

Quoted text here. Click to load it


Chris, I think you should introduce a bit more transparancy
into your posts.  Statements like those above should be followed
by something like this:

|
| DISCLAMER / FULL DISCLOSURE: I make my living by competing with
| Free & Open Source Software, and thus my opinions may reflect a
| certain amount of bias towards the kind of products that I sell.
|

--
Guy Macon
<http://www.guymacon.com/


Professional SW Bashing
Quoted text here. Click to load it

So should you.

Quoted text here. Click to load it

You are wrong. I supply free software....  I have written FOSS in the
past.

I am no more biased than any FOSS devotee.

I get really fed up with this sort of stupidity where it is assumed that
any FOSS devotee is a saint and has exclusive rights to an unbiased
opinion and anyone involved in commercial SW is always biased and
distorting the truth.  It just isn't true.

I have seen, in several places,  from industry commentators (who don't
supply any software free or otherwise)  comments like:-

  “...the open-source community needs to get over its overweening sense
of superiority and messianic inevitability; the alternative is just good
enough that if it doesn't get its act together, open source may find
itself the subject of retrospectives like "Remember Unix?"”

On the whole I have found FOSS Devotees have a far more warped view than
anyone else.

 From personal experience most FOSS Devotees should end their posts with

| DISCLAMER / FULL DISCLOSURE: ]  I am a FOSS Devotee and
| therefore have a clouded view of reality. I believe ANYTHING from the
| FOSS camp and NOTHING from anyone involved in Professional SW


I am no more biased than any FOSS devotee

--
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\/\/\ Chris Hills  Staffs  England     /\/\/\/\/
We've slightly trimmed the long signature. Click to see the full one.
Re: Professional SW Bashing
Subject field entry: "Re: Req: (Free) Embedded Platforms for
Education", which Guy Macon responded to with
"FOSS Bashing", which Chris Hills responded to with
"Professional SW  Bashing".

Some people might benefit from learning that the terms Free and
Open-Source Software and professional software are not always mutually
exclusive.


|--------------------------------------------------------------------------|
|[..]                                                                      |
|>|                                                                        |
|>| DISCLAMER / FULL DISCLOSURE: I make my living by competing with        |
|>| Free & Open Source Software, and thus my opinions may reflect a        |
|>| certain amount of bias towards the kind of products that I sell.       |
|>|"                                                                       |
|--------------------------------------------------------------------------|

What would that achieve? Anyone could easily check it. Should he
mention his phone numbers in every post as well? Persons' livelihoods
can completely depend on "Free & Open Source Software" (unlike Chris
Hill's source of income) even if these persons "Free & Open Source
Software" activities depend on competing against other (or even the
same) "Free & Open Source Software" (for example Red Hat, Incorporated
competing against Canonical Limited (which is a company responsible
for Ubuntu)).

|--------------------------------------------------------------------------|
|"                                                                         |
| You are wrong."                                                          |
|--------------------------------------------------------------------------|

Guy Macon is probably a person and is definitely not a Boolean
value. Is it untrue that Chris Hills does not compete against "Free &
Open Source Software"?

|--------------------------------------------------------------------------|
|" I supply free software....  I have written FOSS in the                  |
| past."                                                                   |
|--------------------------------------------------------------------------|

Chris Hills had seemed to be unaware of The Open Source Definition in
May 2007 judging from his participation in the general email list of
the Association of C & C++ Users. Perhaps Chris Hills wrote Free
Open-Source Software in the past, but I have reason to doubt that he
has learnt yet what the meaning of the term Free Open-Source Software
is, in which case I am unsure whether his claim is true. Granted,
Berkeley Software Distributions had been open-source before the term
was coined so Chris Hills's claim could be true.

|--------------------------------------------------------------------------|
|"                                                                         |
| I am no more biased than any FOSS devotee.                               |
|                                                                          |
| I get really fed up with this sort of stupidity where it is assumed that |
| any FOSS devotee is a saint and has exclusive rights to an unbiased      |
| opinion and anyone involved in commercial SW is always biased and        |
| distorting the truth.  It just isn't true."                              |
|--------------------------------------------------------------------------|

Agreed, of course it is not true. Did anyone in this discussion
indicate otherwise? Is it possible for no one to be both a "FOSS
devotee" and "one involved in commercial SW" at the same time?

|--------------------------------------------------------------------------|
|"[..]                                                                     |
|                                                                          |
| On the whole I have found FOSS Devotees have a far more warped view than |
| anyone else.                                                             |
|                                                                          |
|  From personal experience most FOSS Devotees should end their posts with |
|                                                                          |
|[..]"                                                                     |
|--------------------------------------------------------------------------|

Are you aware of "FOSS Devotees"?

Sincerely,
Colin Paul Gloster

Re: Req: (Free) Embedded Platforms for Education
Quoted text here. Click to load it

What complex arrangement?
FOSS comes with complex licenses too.


--
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\/\/\ Chris Hills  Staffs  England     /\/\/\/\/
We've slightly trimmed the long signature. Click to see the full one.
Re: Req: (Free) Embedded Platforms for Education

Quoted text here. Click to load it

Why ask me?  I believe those words were the OPs.  I simply said that
he already provided the reasoning you'd need to understand his use of
words.

Quoted text here. Click to load it

It may.  So?  His explanation about what he wants to avoid remains.

Jon

Re: Req: (Free) Embedded Platforms for Education
Quoted text here. Click to load it

With ARM being the architecture I know best this is what I would recommend.
The architecture scales from low-end synthesizable cores for use in FPGAs
(Cortex-M1 being the smallest I know about) up to multi core systems with
large amounts of memory.

There's a wide variety of development boards available for moderate prices.
The devboards from the chip manufacturers tend to be rather pricey, but
other companies produce suitable boards as well.

The software side can be covered completely using free software. Eclipse is
becoming a defacto standard (opinions on it may differ, but it certainly is
one of the most ambitious projects), and the GNU toolchain is available for
a multitude of targets, of course including ARM.
Debugging has been a weak point, but (shameless plug) the OpenOCD now offers
JTAG debugging (and programming) for ARM7/ARM9, Cortex-M3 and XScale based
targets. The necessary hardware can be built for little money (Wiggler
clones, FT2232 based USB solutions) or bought for a little more money
(FT2232 based USB solutions, several other commercial offers).

Available operating systems are for example FreeRTOS, eCos, BSD variants and
the ubiquitous Linux. Again, with Linux being the system I know best this
is what I would recommend.
There are platforms with support for many peripherals readily available in
the mainline kernel, others require vendor supplied patches, until they
eventually find their way into the kernel. If you're going the route of
using Linux on an ARM9 system, using something that's well maintained is an
important aspect, if you want to benefit from the community keeping your
platform supported by current tools.
The Atmel ARM9 Chips (AT91RM9200, AT91SAM926x) are a good example with lots
of support in the mainline kernel. Marvell PXA27x (formerly Intel) is also
well supported, but since Marvell acquired the PXA business the situation
apparently got worse, with Marvell being unwilling to offer even product
briefs without signing an NDA. The code in the kernel is of course still
there, and the original documents from Intel are still available (with some
searching, and not from Intel itself). The carme project from the Berner FH
(carme.bfh.ch) builds upon a PXA270 module, and is targeted for educational
use.
Cirrus CS-EP93xx support is available both from the manufacturer (code
quality there probably isn't the best, at least for Linux standards) and in
the mainline kernel (with fewer peripherals supported).
Samsung S3C24xx is well supported as well, and is being used in the OpenMoko
project (probably many more projects) that aims to create a completely
(except for the GSM chip) open mobile phone platform, so community support
for these chips is rather strong.

If you're looking for something smaller, FreeRTOS (or no OS at all) on an
ARM7 might be a viable choice. Microcontrollers from Atmel (AT91SAM7), NXP
(LPC2000) and ST Micro (STR7x) are in wide use, with cheap development
boards and lots of examples available.

Best Regards,

Dominic Rath


Re: Req: (Free) Embedded Platforms for Education

Quoted text here. Click to load it

I suppose it would help to know more about what your curriculum is
envisioned to be.  Can you provide some specific details, here?  Even
just suggested course titles might help, but more detail is better.

Quoted text here. Click to load it

Makes complete sense.

Quoted text here. Click to load it

I almost get the impression that you might tailor your curriculum to
what you discover from responses here.  Are you trying to do a survey
of some kind to find out what is more commonly used so that you can
provide coursework for what students may find better for employment
later on?  Or do you already have a clear idea about what you need to
focus on in the classwork?

An example of what isn't clear to me, though I might assume one way or
another, is what "a focus on software engineering and operating
systems for embedded platforms" means.  The phrase 'software
engineering' is a very broad term and can include most anything.  But
as part of a graduate program, I have to imagine that there is some
focus you want here.  What, exactly?  Also, the 'operating systems for
embedded platforms' leaves me wondering whether you will focus on
developing the skills needed to know them both inside and out (be able
to write your own, as a student project as part of the course) or to
just develop skills using some existing commercial operating system
they are likely to encounter, later on in work.  But if this is only
about becoming familiar with commercially available operating systems
(whether that is the sole focus of the vendor -- their primary product
-- or just a magazine check-off box -- a compiler tool that includes
one as part of it), then for a graduate program where I think you
should be expecting fairly deep and meaningful knowledge I suspect you
will not be able to well avoid this 'complex relationship' you talk
about.  My assumption would therefore be shepherded away from
commercial operating systems... which implies to me that you are
wanting to teach deeply about operating system details.  Is this so?

It might just be that you see this question as really just being the
creation of an "attraction side show" to get students to make a choice
to move into such a program.  With less focus on anything well formed.
In other words, something with a lot of sizzle to it and lots of fun,
so as to attract students to move towards this option.

Can you say more?

Jon

Re: Req: (Free) Embedded Platforms for Education
Jonathan Kirwan a crit :
Quoted text here. Click to load it
Hi Johnatan,

I agree with you, it is not always easy to get all the information when
reading a short email. So Ill try to be more precise.

Personally, my backgrounds are on operating systems and distributed
systems. We have defended with some colleagues the idea that embedded
systems will a subject that cannot be ignored and should included in
curriculum of any engineer in computer science broadly speaking. The
rational behind this is the fact that the frontier between embedded
systems and distributed systems is shrinking. So many embedded platforms
nowadays have non-negligible computing power and also *communication
capabilities*. This defines an embedded communicating system as : (i) an
embedded system (computing function: FPGA, single purpose proc., general
purpose proc.) + (ii) communication interface (ex. serial, ethernet,
I2C, IrDA, WiFi)

This is, I would say, our strategic vision, for the next 5-10 years. Im
sure that people here will not agree with it : ) besides French
ministries (telecom, industry, research) (and also at the EU level) have
put the development of embedded and communicating systems as a top
priority (example:
http://www.telecom.gouv.fr/actualites/2-mars-2007-premieres-assises-francaises-du-logiciel-embarque-883.html ,
in French sorry)

Anyway, now we have to develop complete course(s) that will try to cover
all the aspects of embedded systems and also developing software on
embedded systems (this is what I meant by software engineering: in the
context of embedded and communicating systems)

So this was the context : )

For the curriculum of the course I have gathered I would say the
classical things found in the literature and books. I have been inspired
a lot by the book Embedded System Design:
A Unified Hardware/Software Approach of Frank Vahid and Tony Givargis.
This is just a rough indication of relevant points that will be
included in the program:
----------------------------------------------------------------
Introduction to Embedded Systems [classics]
--Embedded systems overview
--Design challenge in Embedded systems
--Design metrics

Custom single-purpose processors
-Logic gates
-Combinational logic
-Sequential logic
-Controller/Datapath model

General-purpose processors
-Architecture
--ARM? Intel? Architecture
-Programming the processors
--Assembly
-Software Development Process

Memories : concepts and technologies
(present all the main memory technologies RAM, DRAM, Flash,.and
interfaces + DMA for fun : )

Communication technologies
- present how connecting an embedded system to the external world

Computation models
-State Machine Model (and their derivation)
-Petri Nets
- Concurrent Process Model
--Communication
--Synchronisation
-Real-Time Computational Models

Operating Systems and RTOS for embedded systems
-what is an operating system...
-talk about operating systems that are available on embedded platforms...
-MicroKernel vs. Kernel approaches
- Talk about Real-time functions: why RT, how to build real time and
what is a RTOS

Embedded Software Engineering
- How to build ubiquitous software systems using embedded and
communicating systems
-

----------------------------------------------------------------

The work is still in progress anyway I wanted to share it with you if
you have any suggestions.

The other question that you have raised is about specifying a course for
a specific platform/technology to facilitate the integration of students
in the industry. This is a tricky question to answer
I would say that we need to find a balance between teaching the
fundamentals and being in phase with technologies that are used in the
market. But I think, and this is a personal point of view, teaching of
fundamentals has to be considered as the priority since technologies
change and fundamentals remain. So, the main objective is to teach the
fundamentals/basics. Hopefully, if is objective is achieved one can
adapt himself to any specific (proprietary) dev tools/OS.

Kind regards,







Re: Req: (Free) Embedded Platforms for Education
Quoted text here. Click to load it

  I know computer science degress, where they first expose students to
an 8 bit uC - They use the 80C51.
  These fit the above areas well, as the opcodes can print on a single
page, and the assembler/memory map are simple enough, for novices to
grasp. The biggest step is usually getting your head around the
first CPU.
  The other links I gave will all allow users to DEBUG using real chips,
so they can edit Pins, sfrs directly, and see the results.
  A good DEBUG system can be quite important to assist the teaching,
as it gives a window into the device itself.

  Some SW packages do include Simulators for the CPUs as well.

Even 4 bit uC are still alive :)

- this data sheet is quite well presented
http://www.coreriver.co.kr/data/manual/BM-ATOM1.0-V1.0.pdf

  I'm not sure on the USB Debug/Simulate tools on this new
device, but pages 36-54 in the link above, give a nice, clearly
documented breakdown of all the opcodes.

  I did check the assembler, and it seems to work OK, and gives
a clear list file.
  Here is a amsll clip from it - most opcodes are 1 byte, except those
with address fields.

                      000A     9 .equ    data1,    0xA
                      0002    10 .equ    data2,    0x2
                      000B    11 .equ    dir1,    0xB
                              12
                              13 ; Arithmetic and misc.
    0000                      14 T1:
    0000 00            [ 6]   15     nop            ; 00
    0001 01            [ 6]   16     setb    c        ; 01
    0002 02            [ 6]   17     push    a        ; 02
    0003 02            [ 6]   18     push    acc        ; 02
    0004 03            [ 6]   19     pop    a        ; 03
    0005 03            [ 6]   20     pop    acc        ; 03
    0006 04            [ 6]   21     inc    dptr        ; 04
    0007 04            [ 6]   22     inc    dp        ; 04
    0008 05            [ 6]   23     dec    dptr        ; 05
    0009 05            [ 6]   24     dec    dp        ; 05
    000A 06            [ 6]   25     inc    @dp        ; 06
    000B 07            [ 6]   26     dec    @dp        ; 07
    000C 08            [ 6]   27     add    a, @dp        ; 08
    000D 08            [ 6]   28     add    acc, @dp    ; 08
    000E 09            [ 6]   29     addc    a, @dp        ; 09





Re: Req: (Free) Embedded Platforms for Education

Quoted text here. Click to load it


I'm going to flip around some of your comments, as the context of my
answers develops more clearly that way.  To start, you end by saying:

Quoted text here. Click to load it

I agree with your conclusion and reasoning, here.  The main objective
should be, for a university education, on mastering the fundamentals.
More so, for graduate level.  And you are exactly right about why.  I
imagine we are not talking about a vocational school.

As you say, the fundamentals remain.  In my life, operating system
concepts have remained quite similar my entire life.  Technologies
have enabled some ideas for practice that couldn't have been
approached earlier.  But the fundamental ideas for even these had been
well examined and discussed long before they could be implemented.
Very little new has been added in my adult practice of 35 years,
though some operating systems these days throw a great many of them
into a single system where that wasn't so possible a long time ago.

I might grant that some new ideas have been developed, but in the case
of embedded systems I cannot think of any at all that are important to
know about.  I believe that all of what is useful for embedded had
been theorized as well as developed in practice more than 30 years
ago.  Probably further back than that.  

In short, I agree with you about the fundamentals.  They persist,
while commercial operating systems come and go.  A graduate level
program should focus on developing a rigorous knowledge about the
concepts, burnished deeply and indelibly into the brain by a well
designed practicum.

Returning to the front of your response:

Quoted text here. Click to load it

Some of mine, too.

Quoted text here. Click to load it

I suppose so.  At least, talking about graduate level courses.  Over
here, we have CS (computer science), CE (computer engineering), and EE
(electrical engineering) programs.  Do you have the same divisions
there?

[By the way, I consider the undergrad EE coursework tougher than the
undergrad CS coursework.  The EE's I had taking my courses had
absolutely no problems doing well in my CS classes and I've had
students in our CS program tell me they were considering accounting
before selecting computer science, as being "less stressful."  On the
other hand, I cannot imagine someone in the EE program who would have
considered the idea of accounting as a serious option.  My EEs were
just plain sharp folks, even taking elective, tougher CS courses where
the CS majors were too frequently foundering, I think.  That's a
personal observation, though, but it's my sense of my experiences.]

Quoted text here. Click to load it

Here, you are making me think about ARM7TDMI cores.  You have, in
fact, Atmel making them in France (I recall talking with several
people there some years back.)  So perhaps this will be your choice of
processor for the course.  You may get some good support, locally.
Perhaps even a regular source of inexpensive or free hardware as a
donation?  And certainly, these processors are in the right ballpark
for what you discuss above.

Quoted text here. Click to load it

[I can read German, to a fair degree, though my production is shoddy.
My Spanish and French reading is close to zero.  I can probably read
more Chinese and speak more Japanese, than French... and that's not
saying much.]

Quoted text here. Click to load it

I think this suggests a need to make sure your students are aware of
the many differences involved between code development for more
general purpose operating system environments (development and
execution often on the same architecture) and that for more embedded
applications.  The typical cross-development circumstance is growing
more and more similar to general purpose development, but there are
still a number of important differences.  For example, this may
include being more familiar than usual with controlling the linking
process -- for example, the concept of linker segmentation and the
idea of instructing a linker to copy memory segments or move them
around.  A greater and much more detailed understanding of the entire
process of building a final image needs to be mastered well.  And
those concepts, as you say, remain regardless of the details buried by
some IDE used for development.

Of course, all of the above I mentioned is probably undergrad level
stuff.  So perhaps you don't need to deal with that and can just
assume it and focus on other things.

Quoted text here. Click to load it

I haven't read this one.

Quoted text here. Click to load it

I was teaching assembly language and floating point notation here as a
second year undergrad course.  So if what you are talking about above
are upper level courses, I'd guess that you would be focusing on a
serious use of assembly.  For that, I like the development of a
compiler, itself (and this is usually also undergrad here, but 4th
year typically.)  Frankly, I might consider the requirement of asking
embedded systems students to actually engage in the development of a
serious and complete (but not full-featured) compiler system -- from
separate compilation, to linking, to memory segment loading and
program launch, etc.)  This would deepen the development process for
embedded work like little else may.  I think this should also include
the design and coding of a simple operating system on the level of
XINU, perhaps.  Including a token ring network (not overly complex.)
For some, I think this could also include the actual design of a CPU
in an FPGA.  In fact, you might consider setting up teams (if you have
enough students to do that) that specialize and yet must cooperate
together in all these aspects.  And then let the teams compete on some
practical applications you assign at random for them to implement on
their compiler tools and operating system.

Best of luck,
Jon

Re: Req: (Free) Embedded Platforms for Education
I have just been looking back through the posts on this thread
and realized that there is a fundamental thing missing in the
conversation. That is an education requirements list for tools.
The initial post stated the requirement was no cost no strings
attached and that is where the conversation has centred.

The original poster has gone on to post a curriculum
for the course. Lets take a shot at extending the
curriculum to a lab requirements list and match that
set of requirements to what is available and what is
needed.

Walter..

----------------------------------------------

snipped-for-privacy@lirmm.fr wrote:

Quoted text here. Click to load it
http://www.telecom.gouv.fr/actualites/2-mars-2007-premieres-assises-francaises-du-logiciel-embarque-883.html ,
Quoted text here. Click to load it


Re: Req: (Free) Embedded Platforms for Education
Quoted text here. Click to load it

When I was at university 6 years ago then we learned about embedded
systems as part of an Industrial Control module. This focussed around
learning assembly for PICs running on specialised development boards but
from the Microchip propeganda on the walls and course notes then I
suspect a good bit of corporate sponsorship might have been involved.
The sort of things taught were basic UART usage and reading from an ADC
(using voltages from an amplified strain guage). Also, the standard
flashing LED and push button experiments were taught.

In the same course we also learned about Ladder programming and
Petri-nets. The course tutor seemed to be on a bit of a crusade with
regard to Petri-nets but I guess it was useful stuff - I don't know how
widely they are used because I've certainly never seen them wielded in
anger.

In this module then we didn't really get into software design methods or
operating system topics - they were covered in other modules. I think
there is a danger in putting too much into one course and being too
general discussing the field. Sure, talk about the sort of things
embedded systems are used for but then get down to making the LEDs flash
because those are the things that the students will get the most from.
It's nice to have a course that can have a fun element too it - think of
the poor souls trying to make database courses interesting!



Re: Req: (Free) Embedded Platforms for Education
On Wed, 18 Jul 2007 10:56:43 +0100, "Tom Lucas"

Quoted text here. Click to load it

I think the courses should include theory and practice.  The theory
provides a very broad (general) imagination space out of which one may
deduce to specifics.  You need to know the better of those elements,
well.  Of course, most folks (including me) actually need to do
specific things to make the theoretical ideas much, much clearer.  So
it's important to do hands-on labs.  Most of all, though, a good
teacher is needed.  Otherwise the theory isn't alive, it's just some
dry stuff you just don't understand much about and the labs just seem
disconnected and possibly random and teach very little, really. Except
that you need to do them to get credit.

Quoted text here. Click to load it

I think the OP was talking about graduate level stuff.  Hopefully,
such a student would be able to write down how to make an LED flash in
five minutes or less on a piece of paper.  But your point is well
taken.  I think that setting down to do real work teaches like little
else can.  So this is why I recommended something along the lines of
having to write a compiler, a linker, and an operating system.  All of
them.  Should be doable.  In school here, 3rd and 4th year included
compiler writing courses.  Operating systems was 3rd year.  Writing
one would be 4th, I suspect.  So pulling all this together should be
possible.

I'll give you an example from my own experience.  I wrote a symbolic
assembler and segmented linker over a weekend.  Started work on it on
Saturday morning, finished up both pieces by late Sunday night.  It's
not that hard to do.  In a recent project, in 2005, I wrote an
operating system from scratch (I had been flown onsite and was
literally sleeping under the desk they gave me) in less than two days
-- and didn't change a line of it in the many months afterwards.  It
was thread-based, supported exception handling per process/thread, and
had several methods of inter-process communications, as well as
preemption, a precise sleep queue, and semaphore queues.

These things don't need to take a lot of time.
 
Quoted text here. Click to load it

Completely agree.  There is nothing like sizzle, smoke, explosions,
sparks, light, and action to motivate folks to learn how to make it
happen well.

Jon

Re: Req: (Free) Embedded Platforms for Education
Quoted text here. Click to load it

I probably should have been clearer in stating that I agree that the
_course_ should be broad and wide ranging but that the modules that form
the course (12 per year when I did my degree) should be specific. This
gives the student the chance to focus themselves on their target career
by selecting optional modules - the Industrial Control modules I took
were not compulsary and disappointingly few people took them, mainly
because they were hard.

My degree was Computer Systems and didn't have modules of its own but
was formed of a mix of pure CS and pure EE modules. Depending on how CS
or EE heavy I wanted to make the course (and the direction of my final
project) permitted me to select a Bachelor of Science (CS route) or
Batchelor of Engineering (EE route) degree. I chose the latter and am
certain I made the right choice.

I also agree with you that the CS course was much easier than the EE
course and that the EE students tended to be smarter and more driven. I
got the feeling a lot of the CS intake were people who just wanted "a
job with computers" whereas the EEs normally had a definite goal they
were aiming for.

<snip>
Quoted text here. Click to load it

Show off ;-)

Quoted text here. Click to load it

One of the best educational tools I ever used (mainly with young teenage
kids) was Lego Mindstorms and entry to the First Lego League. If the
school has the funds (and it's not cheap) then it is a superb primer to
nealry all aspects of engineering.



Re: Req: (Free) Embedded Platforms for Education
Quoted text here. Click to load it

I probably should have been clearer in stating that I agree that the
_course_ should be broad and wide ranging but that the modules that form
the course (12 per year when I did my degree) should be specific. This
gives the student the chance to focus themselves on their target career
by selecting optional modules - the Industrial Control modules I took
were not compulsary and disappointingly few people took them, mainly
because they were hard.

My degree was Computer Systems and didn't have modules of its own but
was formed of a mix of pure CS and pure EE modules. Depending on how CS
or EE heavy I wanted to make the course (and the direction of my final
project) permitted me to select a Bachelor of Science (CS route) or
Batchelor of Engineering (EE route) degree. I chose the latter and am
certain I made the right choice.

I also agree with you that the CS course was much easier than the EE
course and that the EE students tended to be smarter and more driven. I
got the feeling a lot of the CS intake were people who just wanted "a
job with computers" whereas the EEs normally had a definite goal they
were aiming for.

<snip>
Quoted text here. Click to load it

Show off ;-)

Quoted text here. Click to load it

One of the best educational tools I ever used (mainly with young teenage
kids) was Lego Mindstorms and entry to the First Lego League. If the
school has the funds (and it's not cheap) then it is a superb primer to
nealry all aspects of engineering.




Re: Req: (Free) Embedded Platforms for Education
Quoted text here. Click to load it

You are right the goal isn't clear. I realized this as i started to
detail my response.
I can say that if the focus is on Software Engineering, then the
details of which hardware platform used in the lab is less important
than the software development concepts taught. At this point, I would
only suggest that different platforms are available (processor like
8051, intel x86 family, ARM.) for the lab assignments. Which
department is this program in? As an example, I have a Masters in
Electrical Engineering (Software Option). Embedded systems is
certainly in that border area between computer science and electrical
engineering. Some more details might be helpful.


Quoted text here. Click to load it

I am glad to see someone else who thinks the option of building an
embedded system with an underlying OS should not easily be overlooked.
There are many choices as you point out. A good software engineer
should have a basic understanding of when not to use an OS, but the
general case, especially with todays hardware, is that a Operating
System should be part of the product solution.
Quoted text here. Click to load it

yes, Please tell us more about the program.
   Ed Prochak


Site Timeline