/* Project: Socrates */
Learning Embedded Systems With Windows CE
 
Blog Entries    Windows Mobile    Socrates    
Login
Register



Home

Blog Archives

Socrates?


CEBot


Status Reports

Chapters

Best Practices

Discuss

Open Editing

Pocket PC

Downloads

Favorite Links

Biography

About Web Site


Home > Socrates?

Book Proposal

Posted by on Saturday, January 22, 2005 (PST)

Attention Professors and Students! I have created a proposal document which describes the content of each chapter in "Learning Embedded Systems With Windows CE". It also describes the intended audience, and the example project or "Core Project".

You may download the proposal document here.

If you are a student or a professor your feedback would be especially helpful to me.  I am willing to create a book that serves the needs of your existing classes, and I would love to collaborate with you. Though I have an understanding of the technology I am writing about, it has been too long since I was a student to remember what concepts are particularly difficult to grasp.  As a student or professor, you are on the front lines of the population I would like to serve with this project, and I need you! 

If you are a professional engineer, your feedback is also very valuable.  Though my primary target is the engineering student population, I know that many engineers come to the embedded software world from varied backgrounds and a book such as this might be a valuable resource to provide a better understanding of Window CE and how it applies to the fundamentals.

 

 


Comments:

Don't Forget Enthusiasts (please)
By bdraper on Tuesday, January 25, 2005 (PST)

Please consider the enthusiast market as well. And I'm not so sure the markets are that different; afterall, most enthusiasts are just 'students' doing self-study I think I see the market potential in the university market, but there also seems to be a thriving enthusiast market that would welcome a system to learn and experiment with that has the processing power, development tools, and operating system conveniences offered by this project over what is currently mainstream in the form of (primarily) 8-bit MCU's.

Recent Email Exchange with Valter Minute
By jywilson on Saturday, February 05, 2005 (PST)

Hello Valter,

I have a few replies, prefixed with "JYW:" below...

-----Original Message-----

Sent: Monday, January 24, 2005 6:59 AM

Subject: Grazie (thank you)

Dear James Wilson,

I readt your co-authored book and I think that it gave me the best "big picture" overview of Windows CE.

JYW: I am happy to hear that you found it useful.

I'm a developer but I do some "training courses" for some customers here in Italy.

Many times people find very hard to get "inside" Windows CE and they need a good guide to understand the foundamental concepts of the OS.

I usually suggest to buy your book (and Douglas Boiling "programming windows CE" for people developing applications).

The only drawback of your book it's that many things are changed since Windows CE 3.0 and sometimes it's difficult for people that never worked with Windows CE to apply the same concepts inside the Platform builder 4.2/5.0 environment.

JYW: Yes, I agree. It definitely needs an update.

As you can read, my english is not very good, so I'm not a good editor for your book, but I appreciate your ideas and I would like to support it (at least buying the book in any form you'll publish it!).

JYW: Thank you! This is very encouraging. And I will certainly keep you in mind for translation to Italian.

I wrote a small paper on Windows CE (in Italian) and people appreciate it because learning from it it's simpler and faster than reading the full reference material provided in CE documentation.

I think that there's a great demand for a Windows CE "low level" book, and here in Italy many people working in small teams who cannot afford a long training period will appreciate your work and will use it to begin their migration to CE (many people here are moving from 8-16bits microcontrollers to 32bit microprocessors and most of them would like to evaluate Windows CE as their new OS).

JYW: This is good to know. My plan is to focus on the "engineering student" population, and include sections dedicated to more fundamental topics, such as what differentiates a real-time OS from a Desktop OS, principles of hardware interfaces, virtual memory, etc. Much of this type of information is not specific to CE, but I will be using CE as an example of how such technologies are supported.

JYW: Do you think in your experience that such material will still be useful to the more experienced professional engineer? What do you find is the most confusing aspect of using and adapting CE? Is Platform Builder a big hurdle for most embedded engineers?

JYW: Thanks so much for your feedback. It means a lot to me to hear what you think and is most appreciated.

If you'll need some help in translating your work in Italian, let me know.

Ciao

Valter Minute

Recent Email Exchange with Valter Minute
By jywilson on Saturday, February 05, 2005 (PST)

James Y. Wilson wrote:
> Hello Valter,
>
> I have a few replies, prefixed with "JYW:" below...
>

Thanks for your very quick reply.
I put my replies inline.

[...]
> I readt your co-authored book and I think that it gave me the best
> "big picture" overview of Windows CE.
>
> JYW: I am happy to hear that you found it useful.

I think that one of the most lacking parts of the CE online documentation is the description of the build process.
If everything works ok you can forget about it, but if you have an error and you don't have a "mental" schema of how it works, it's very difficult to understand where it fails and how to fix the error.
You book provides a detailed description of it.

> I'm a developer but I do some "training courses" for some customers
> here in Italy.
> Many times people find very hard to get "inside" Windows CE and they
> need a good guide to understand the foundamental concepts of the OS.
> I usually suggest to buy your book (and Douglas Boiling "programming
> windows CE" for people developing applications).

> The only drawback of your book it's that many things are changed since
> Windows CE 3.0 and sometimes it's difficult for people that never
> worked with Windows CE to apply the same concepts inside the Platform
> builder 4.2/5.0 environment.
>
> JYW: Yes, I agree.  It definitely needs an update.

It's such an update planned?

[...]
> I wrote a small paper on Windows CE (in Italian) and people appreciate
> it because learning from it it's simpler and faster than reading the
> full reference material provided in CE documentation.
>
> I think that there's a great demand for a Windows CE "low level" book,
> and here in Italy many people working in small teams who cannot afford
> a long training period will appreciate your work and will use it to
> begin their migration to CE (many people here are moving from 8-16bits
> microcontrollers to 32bit microprocessors and most of them would like
> to evaluate Windows CE as their new OS).
>
> JYW: This is good to know.  My plan is to focus on the "engineering student"
> population, and include sections dedicated to more fundamental topics,
> such as what differentiates a real-time OS from a Desktop OS,
> principles of hardware interfaces, virtual memory, etc.  Much of this
> type of information is not specific to CE, but I will be using CE as
> an example of how such technologies are supported.
>

I think that good learning documentation is good for anybody who needs to learn a new OS, and sometimes a good overview is what is lacking from the documentation provided by the OS manufacturer.

I can only rely on my experience here in Italy, and it may be that the situation is differend around europe and in the rest of the world.

I did training for 25-30 companies of different sizes and with different kind of products (from food-processing machinery, to mechanical manufacturing equipment, to measurement tools etc.).

 From my indirect experience (I haven't an university degree), the italian university course are more focused to enterprise data processing than to embedded systems, and very few universities offer training on embedded operating systems and CE in particular, so most of this kind of training is done "in house" by the companies.

Here there are not many companies that adopted Windows CE until version 4.0. I was lucky enough to work with one of them and start to learn Windows CE since version 2.12 (and I that time I didn't feel so lucky!).

Sice Windows CE.net release (and drop of license costs!) many companies started to evaluate windows CE as a solution for their needs.
Most of the times they start to evaluate linux-embedded (because it seem to have no license costs) and the "fall-back" on Windows CE. They feel that using an "all-inclusive" solution coming from a single manufacturer would shorten the development time and would have a less steeper learning courve. I agree with them, but sometimes they expectations are too optimistic...

Still today, when I'm talking at some conferences (my company works with one of the italian distributors of CE) or doing demostration at electronics fairs, I talk with many people don't know what Windows CE is.
Someone thinks that is something related to PDAs, someone else thinks that it's a "shrinked down" version of Windows XP (and even more people didn't know about XP embedded).

I built a small sample using an oscilloscope and a square waveform to show, generating an output wave triggered by the input wave, the real-time performances of CE and some people are "shocked" by the fact that something made by MS and running on a PC (or an ARM, it depends on the audience...) can handle real-time tasks. Someone is also shocked that a "windows developer" brought an oscilloscope to a conference...

Here we have many small companies that may deliver thousand of devices but sometimes rely on very small software development teams. Teams of less than 10 people are the rule and 2-3 people teams are common in many companies.

Some of those teams are moving "down" from PC-based solutions (sometimes based on a Win32-base UI and a DOS-based real-time part), so they have good experience about Win32 APIs and they could easily port their existing codebase to CE (unless it's in VB6...), but they've few or no experience in building an OS and few knowledge about real-time and embedded concepts or, at least, about how to integrate the real-time part with their existing Win32 code.

Other teams worked with small microcontrollers (8 and 16bit), but their customers requires more and more network connectivity and more and more powerful user interface.
Their management, considering that 32bit processor are getting cheaper and cheaper, requires to begin the development of some "high-end"
products using an embedded OS instead of their traditional "firmware"
approach.

They know very well the hardware, they are familiar with hardware-related issues and realtime, but they need to get knowledge of an OS (and Windows CE is not a simple one!) and to learn how to rely on an API instead of accessing directly their hardware.
The suffer from "loss of control" and need to understand how to use the OS new features without losing in performances and developing "bloated"
code.

In both cases they find very hard to grasp some of the concepts behid Windows CE (or a realtime OS, or an OS in general).

> JYW: Do you think in your experience that such material will still be
> useful to the more experienced professional engineer?  What do you
> find is the most confusing aspect of using and adapting CE?  Is
> Platform Builder a big hurdle for most embedded engineers?
>

I think that my previous description answers also to this question.
I hope also that my reply is understandable.

For me one of the biggest problems is understanding how the OS image is built (and I repeat that your book was a huge help for me).
Another problem is to understand how to use the debugger and to find all the debugging information available.

The conferences and samples never show how to fix a problem and sometimes it's difficult to understand (for example) why your driver didn't get loaded (it's missing from the .bib? it's missing from the registry? it didn't get built at all? it need another driver that was not started?).

This is more "pratical" information and it may not be correct to put too much of this knowledge in a book that is focused on students, but I think that this kind of information would be appreciated by many professionals (and also by students when they will begin to work!).

> JYW: Thanks so much for your feedback.  It means a lot to me to hear
> what you think and is most appreciated.
>

I can't spend many hours on it (I'm a full-time employee, not a free-lance), but if I can do something to help this useful project, let me know.

Ciao

Recent Email Exchange with Valter Minute
By jywilson on Saturday, February 05, 2005 (PST)

More replies below (sorry for the delay)...

>
> James Y. Wilson wrote:
> > Hello Valter,
> >
> > I have a few replies, prefixed with "JYW:" below...
> >
>
> Thanks for your very quick reply.
> I put my replies inline.
>
> [...]
> > I readt your co-authored book and I think that it gave me the best
> > "big picture" overview of Windows CE.
> >
> > JYW: I am happy to hear that you found it useful.
>
> I think that one of the most lacking parts of the CE online
> documentation is the description of the build process.
> If everything works ok you can forget about it, but if you have an
> error and you don't have a "mental" schema of how it works, it's very
> difficult to understand where it fails and how to fix the error.
> You book provides a detailed description of it.
>
> > I'm a developer but I do some "training courses" for some customers
> > here
> in
> > Italy.
> > Many times people find very hard to get "inside" Windows CE and they
> need a
> > good guide to understand the foundamental concepts of the OS.
> > I usually suggest to buy your book (and Douglas Boiling "programming
> windows
> > CE" for people developing applications).
> >
> > The only drawback of your book it's that many things are changed
> > since Windows CE 3.0 and sometimes it's difficult for people that
> > never worked with Windows CE to apply the same concepts inside the
> > Platform builder 4.2/5.0 environment.
> >
> > JYW: Yes, I agree.  It definitely needs an update.
>
> It's such an update planned?

No.  If we did so, we would be obligated to go with the same publisher, and I personally would prefer to self publish this time around.  Also, I am eager to write to the engineering student (and professional) audience.  In the case of the student audience, the publishers have shown little interest because of the limited audience for such a book.

>
> [...]
> > I wrote a small paper on Windows CE (in Italian) and people
> > appreciate
> it
> > because learning from it it's simpler and faster than reading the
> > full reference material provided in CE documentation.

If ever you would like to make such a paper available to a wider audience (perhaps to promote your training services) please let me know.  I would be glad to make it available on www.learningce.com, giving you full credit of course.  Perhaps then I could attract more Italian visitors. 

> >
> > I think that there's a great demand for a Windows CE "low level"
> > book,
> and
> > here in Italy many people working in small teams who cannot afford a
> long
> > training period will appreciate your work and will use it to begin
> > their migration to CE (many people here are moving from 8-16bits
> microcontrollers
> > to 32bit microprocessors and most of them would like to evaluate
> > Windows
> CE
> > as their new OS).
> >
> > JYW: This is good to know.  My plan is to focus on the "engineering
> student"
> > population, and include sections dedicated to more fundamental
> > topics,
> such
> > as what differentiates a real-time OS from a Desktop OS, principles
> > of hardware interfaces, virtual memory, etc.  Much of this type of
> information
> > is not specific to CE, but I will be using CE as an example of how
> > such technologies are supported.
> >
>
> I think that good learning documentation is good for anybody who needs
> to learn a new OS, and sometimes a good overview is what is lacking
> from the documentation provided by the OS manufacturer.
>
> I can only rely on my experience here in Italy, and it may be that the
> situation is differend around europe and in the rest of the world.
>
> I did training for 25-30 companies of different sizes and with
> different kind of products (from food-processing machinery, to
> mechanical manufacturing equipment, to measurement tools etc.).
>
>  From my indirect experience (I haven't an university degree), the
> italian university course are more focused to enterprise data
> processing than to embedded systems, and very few universities offer
> training on embedded operating systems and CE in particular, so most
> of this kind of training is done "in house" by the companies.

This is my experience with U.S. universities as well.  I think it could be for a variety reasons, not the least of which is the difficulty of purchasing new boards every time a new processor becomes available.

>
> Here there are not many companies that adopted Windows CE until
> version 4.0. I was lucky enough to work with one of them and start to
> learn Windows CE since version 2.12 (and I that time I didn't feel so lucky!).

That was about the same time I started with CE.  I understand perfectly. 

>
> Sice Windows CE.net release (and drop of license costs!) many
> companies started to evaluate windows CE as a solution for their needs.
> Most of the times they start to evaluate linux-embedded (because it
> seem to have no license costs) and the "fall-back" on Windows CE. They
> feel that using an "all-inclusive" solution coming from a single
> manufacturer would shorten the development time and would have a less
> steeper learning courve. I agree with them, but sometimes they
> expectations are too optimistic...

Very true!  Many companies look at Platform Builder as Windows CE itself, and they immediately perceive CE as just another application output by an IDE.  They don't seem to make the connection that this IDE is facilitating the build of a custom OS.

>
> Still today, when I'm talking at some conferences (my company works
> with one of the italian distributors of CE) or doing demostration at
> electronics fairs, I talk with many people don't know what Windows CE is.
> Someone thinks that is something related to PDAs, someone else thinks
> that it's a "shrinked down" version of Windows XP (and even more
> people didn't know about XP embedded).

That's interesting.  Perhaps one day, you can refer them to learningce.com when it has some actual content to offer.

>
> I built a small sample using an oscilloscope and a square waveform to
> show, generating an output wave triggered by the input wave, the
> real-time performances of CE and some people are "shocked" by the fact
> that something made by MS and running on a PC (or an ARM, it depends
> on the audience...) can handle real-time tasks. Someone is also
> shocked that a "windows developer" brought an oscilloscope to a conference...

Nice! This provides a very real display of interrupt latency as well.

>
> Here we have many small companies that may deliver thousand of devices
> but sometimes rely on very small software development teams. Teams of
> less than 10 people are the rule and 2-3 people teams are common in
> many companies.

True here as well.

>
> Some of those teams are moving "down" from PC-based solutions
> (sometimes based on a Win32-base UI and a DOS-based real-time part),
> so they have good experience about Win32 APIs and they could easily
> port their existing codebase to CE (unless it's in VB6...), but
> they've few or no experience in building an OS and few knowledge about
> real-time and embedded concepts or, at least, about how to integrate
> the real-time part with their existing Win32 code.

Very interesting.  This is what I was hoping for.  I have always thought that by treating the reader as an engineering "student", and by providing fundamental concepts to teach the necessary background, that I would still attract a professional engineering audience of those who are changing their career focus.

>
> Other teams worked with small microcontrollers (8 and 16bit), but
> their customers requires more and more network connectivity and more
> and more powerful user interface.
> Their management, considering that 32bit processor are getting cheaper
> and cheaper, requires to begin the development of some "high-end"
> products using an embedded OS instead of their traditional "firmware"
> approach.

Okay, this represents the other side of the spectrum, the engineer moving up from a deeply embedded background.  I could also make certain that the chapter material speaks to this audience as well, by providing enough information that compares CE to smaller "Executives" such as Nucleus, and ThreadX. 

>
> They know very well the hardware, they are familiar with
> hardware-related issues and realtime, but they need to get knowledge
> of an OS (and Windows CE is not a simple one!) and to learn how to
> rely on an API instead of accessing directly their hardware.
> The suffer from "loss of control" and need to understand how to use
> the OS new features without losing in performances and developing "bloated"
> code.

Excellent feedback!

>
> In both cases they find very hard to grasp some of the concepts behid
> Windows CE (or a realtime OS, or an OS in general).
>
> > JYW: Do you think in your experience that such material will still
> > be
> useful
> > to the more experienced professional engineer?  What do you find is
> > the
> most
> > confusing aspect of using and adapting CE?  Is Platform Builder a
> > big
> hurdle
> > for most embedded engineers?
> >
>
> I think that my previous description answers also to this question.
> I hope also that my reply is understandable.

Absolutely!  I can't tell you how helpful you have been.  Expect to see the name Valter Minute in this book, as I express my appreciation to you. 

>
> For me one of the biggest problems is understanding how the OS image
> is built (and I repeat that your book was a huge help for me).
> Another problem is to understand how to use the debugger and to find
> all the debugging information available.

Okay.  I too struggle with the debugging information, and how to use it all, and under what circumstances.  This is especially true of the kernel tracker, which I often find myself wishing I could use more often, but just not able to conjure up more useful scenarios.  Perhaps the book could focus on this in the context of explaining in great detail how each bit of debugging information relates to the overall OS.

>
> The conferences and samples never show how to fix a problem and
> sometimes it's difficult to understand (for example) why your driver
> didn't get loaded (it's missing from the .bib? it's missing from the
> registry? it didn't get built at all? it need another driver that was
> not started?).

I should certainly include this problem as an example for how to use the debugging tools. 

>
> This is more "pratical" information and it may not be correct to put
> too much of this knowledge in a book that is focused on students, but
> I think that this kind of information would be appreciated by many
> professionals (and also by students when they will begin to work!).

I agree completely. 

>
> > JYW: Thanks so much for your feedback.  It means a lot to me to hear
> what
> > you think and is most appreciated.
> >
>
> I can't spend many hours on it (I'm a full-time employee, not a
> free-lance), but if I can do something to help this useful project,
> let me know.

I will indeed.  The first thing I can think of is exactly what you are doing now.  This exchange has been very useful.  In many ways I lack what you have, experience as a trainer.  I am a software engineer, also with a full-time job, and I don't often see where people get stuck.  I often think that the best teachers are really the students, since they have a clear recollection of the problem areas. 

When the time comes, I will forward you draft chapters.  Perhaps, if you have the time you can read them over, and let me know what you think.  Perhaps you could even distribute them in your class, and let me know what your students think.

With your permission, I would also like to transfer this conversation to the website.  Just let me know if this is okay with you.

Thanks again Valter!  And let me know if I can help *you* in any way as well.

>
> Ciao

Recent Email Exchange with Valter Minute
By jywilson on Saturday, February 05, 2005 (PST)

James Y. Wilson wrote:
> More replies below (sorry for the delay)...
>

Ciao James,

[...]
>>>JYW: Yes, I agree.  It definitely needs an update.
>>
>>It's such an update planned?
>
>
> No.  If we did so, we would be obligated to go with the same
> publisher, and I personally would prefer to self publish this time
> around.  Also, I am eager to write to the engineering student (and
> professional) audience.  In the case of the student audience, the
> publishers have shown little interest because of the limited audience for such a book.
>

I readt your article about self-publishing and I think it's a very good idea.
Online publishing would also solve problems in finding some technical books outside the US (I usually order my books from the UK, since it's difficult to find them here and when you find them usually the price is more than the UK price plus delivery costs).
And italian translations sometimes are more funny than useful, many translation are performed by non-techical translators and yhey use the wrong terms and translate things that should not be translated (like API names or source code).

>>[...]
>>
>>>I wrote a small paper on Windows CE (in Italian) and people
>>>appreciate
>>
>>it
>>
>>>because learning from it it's simpler and faster than reading the
>>>full reference material provided in CE documentation.
>
>
> If ever you would like to make such a paper available to a wider
> audience (perhaps to promote your training services) please let me
> know.  I would be glad to make it available on www.learningce.com,
> giving you full credit of course.  Perhaps then I could attract more
> Italian visitors. 
>

I will talk about this with my boss.
I wrote my paper at work and I think that I should get an approval before I can publish it.
Thank you very much for the offer.

[...]
>> From my indirect experience (I haven't an university degree), the
>>italian university course are more focused to enterprise data
>>processing than to embedded systems, and very few universities offer
>>training on embedded operating systems and CE in particular, so most
>>of this kind of training is done "in house" by the companies.
>
>
> This is my experience with U.S. universities as well.  I think it
> could be for a variety reasons, not the least of which is the
> difficulty of purchasing new boards every time a new processor becomes available.
>

That's true.
But to "experiment" with windows CE you may use an old PC and there should be plenty of them in schools and universities.
And you may add some interesting hardware by developing simple ISA boards.
The only cost would be PB license (I don't know if they provide low-cost licenses for education).
But how many people knew that?

>>Here there are not many companies that adopted Windows CE until
>>version 4.0. I was lucky enough to work with one of them and start to
>>learn Windows CE since version 2.12 (and I that time I didn't feel so lucky!).
>
>
> That was about the same time I started with CE.  I understand perfectly.
>
>
>>Sice Windows CE.net release (and drop of license costs!) many
>>companies started to evaluate windows CE as a solution for their needs.
>>Most of the times they start to evaluate linux-embedded (because it
>>seem to have no license costs) and the "fall-back" on Windows CE. They
>>feel that using an "all-inclusive" solution coming from a single
>>manufacturer would shorten the development time and would have a less
>>steeper learning courve. I agree with them, but sometimes they
>>expectations are too optimistic...
>
>
> Very true!  Many companies look at Platform Builder as Windows CE
> itself, and they immediately perceive CE as just another application
> output by an IDE.  They don't seem to make the connection that this
> IDE is facilitating the build of a custom OS.
>

I think that microsoft tutorials and demostrations are more focused to the "quick-time to market" aspect than to explain what's involved in building an OS, but I can undertand that.

They have very good people (Mike Hall, Steve Maillet etc.), and when I went to the embeded devcon in Munich I learnt a lot, but sometimes they focus more on the "quick" features (wizards and so on) that could speed-up your simple development tasks, than on the tools (and concepts) that could save you hours and hours of debugging time or re-development/re-organization of your projects.

Maybe Mike Hall will check your website and find some useful hints (I read his blog and his articles, he's very good at explaining things and I hope to read an explanation of CE 5.0 build system from him).

Yesterday a customer asked me why there is no catalog item for the PXA27x display driver.
I notice that the .dll is referenced in the .bib files and in the registry and its built from the PUBLIC\COMMON\OAK... branch because it's one of the new Production Quality Drivers, but I've no clue on how to understand when it's build and (just in case) how to change it with a customized version (or a driver for an external display adapter).
I found explanations about how the new PQ OAL and drivers are organized across subdirectories, but no explanation about how to add/remove PQ code to your BSP/platform.

>>Still today, when I'm talking at some conferences (my company works
>>with one of the italian distributors of CE) or doing demostration at
>>electronics fairs, I talk with many people don't know what Windows CE is.
>>Someone thinks that is something related to PDAs, someone else thinks
>>that it's a "shrinked down" version of Windows XP (and even more
>>people didn't know about XP embedded).
>
> That's interesting.  Perhaps one day, you can refer them to
> learningce.com when it has some actual content to offer.
>

I will refer them for sure.

>>I built a small sample using an oscilloscope and a square waveform to
>>show, generating an output wave triggered by the input wave, the
>>real-time performances of CE and some people are "shocked" by the fact
>>that something made by MS and running on a PC (or an ARM, it depends
>>on the audience...) can handle real-time tasks. Someone is also
>>shocked that a "windows developer" brought an oscilloscope to a conference...
>
>
> Nice! This provides a very real display of interrupt latency as well.
>

Yes.

I make a very simple application that allows you to change the priority of the IST and to create a "working thread" that use a configurable amount of the CPU (time quantum) to see how it will impact on interrupt latency.
On the PXA255 (Windows CE 4.2) I use 3 GPIO pins (one for input and 2 for ISR and IST output), on a PC board (with CE 5.) I use an ISA slot (or PC/104) to generate an interrupt and the parallel port to generate an output impulse of fixed length (you can choose to use ISR or IST to control the state of the pins).
This is also a good sample of how the high-level IST can be ported across different hardware architectures.
Usually I start the input wave and show that the IST has a lot of jitter and high latency.
Then I start the working thread increasing its CPU% usage, and show how the system is missing some interrupts.
At this point many people start to whisper to their neighbour that you should expect this from something Windows based.
Then I raise the priority of the IST and show how the jitter and latency will be reduced to a level that is good enough for most of the real-time task that the audience needs.
Then I show how I could go at a lower level, using the ISR and having very low and very stable latency times.

I'll ask my boss if I can send you the sample code (it's not a masterpiece, but C code can be more understandable than an Italian text)

>>Here we have many small companies that may deliver thousand of devices
>>but sometimes rely on very small software development teams. Teams of
>>less than 10 people are the rule and 2-3 people teams are common in
>>many companies.

> True here as well.
>
>>Some of those teams are moving "down" from PC-based solutions
>>(sometimes based on a Win32-base UI and a DOS-based real-time part),
>>so they have good experience about Win32 APIs and they could easily
>>port their existing codebase to CE (unless it's in VB6...), but
>>they've few or no experience in building an OS and few knowledge about
>>real-time and embedded concepts or, at least, about how to integrate
>>the real-time part with their existing Win32 code.
>
>
> Very interesting.  This is what I was hoping for.  I have always
> thought that by treating the reader as an engineering "student", and
> by providing fundamental concepts to teach the necessary background,
> that I would still attract a professional engineering audience of
> those who are changing their career focus.

Here in Italy (and in Europe, I think) people change job less frequently than in the US (I'm in the same company since 1994), but you have to upgrade your skills and knowledge to follow the company's advance (and small hi-tech companies are usually very dynamic).
A good intruduction to the foundamental concept is very important IMHO.

>>Other teams worked with small microcontrollers (8 and 16bit), but
>>their customers requires more and more network connectivity and more
>>and more powerful user interface.
>>Their management, considering that 32bit processor are getting cheaper
>>and cheaper, requires to begin the development of some "high-end"
>>products using an embedded OS instead of their traditional "firmware"
>>approach.
>
>
> Okay, this represents the other side of the spectrum, the engineer
> moving up from a deeply embedded background.  I could also make
> certain that the chapter material speaks to this audience as well, by
> providing enough information that compares CE to smaller "Executives"
> such as Nucleus, and ThreadX.
>

This kind of people like the fact that I bring some "real" hardware when I do my demonstration/courses, and the idea of developing a real project "across" the book will be very appreciated, I think.

>>They know very well the hardware, they are familiar with
>>hardware-related issues and realtime, but they need to get knowledge
>>of an OS (and Windows CE is not a simple one!) and to learn how to
>>rely on an API instead of accessing directly their hardware.
>>The suffer from "loss of control" and need to understand how to use
>>the OS new features without losing in performances and developing "bloated"
>>code.
>
>
> Excellent feedback!
>

[...]
>>I think that my previous description answers also to this question.
>>I hope also that my reply is understandable.
>
>
> Absolutely!  I can't tell you how helpful you have been.  Expect to
> see the name Valter Minute in this book, as I express my appreciation
> to you. 
>

Thank you. It's nice to see a book author requiring feedback during the early stages of the writing.

>
>>For me one of the biggest problems is understanding how the OS image
>>is built (and I repeat that your book was a huge help for me).
>>Another problem is to understand how to use the debugger and to find
>>all the debugging information available.
>
>
> Okay.  I too struggle with the debugging information, and how to use
> it all, and under what circumstances.  This is especially true of the
> kernel tracker, which I often find myself wishing I could use more
> often, but just not able to conjure up more useful scenarios.  Perhaps
> the book could focus on this in the context of explaining in great
> detail how each bit of debugging information relates to the overall OS.
>

Sometimes spending hours to find a problem that could be found by simply enabling the right debug zone is very frustrating.
And I would like to know why they didn't use the DLL/EXE name as the name of the debug zone or, at least, provide a list of the debug zone names (that would be very useful when you need to enable debugzones from the registry instead of the IDE).

>>The conferences and samples never show how to fix a problem and
>>sometimes it's difficult to understand (for example) why your driver
>>didn't get loaded (it's missing from the .bib? it's missing from the
>>registry? it didn't get built at all? it need another driver that was
>>not started?).
>
>
> I should certainly include this problem as an example for how to use
> the debugging tools.
>
>>This is more "pratical" information and it may not be correct to put
>>too much of this knowledge in a book that is focused on students, but
>>I think that this kind of information would be appreciated by many
>>professionals (and also by students when they will begin to work!).
>
>
> I agree completely. 
>
>

[...]
>>I can't spend many hours on it (I'm a full-time employee, not a
>>free-lance), but if I can do something to help this useful project,
>>let me know.
>
>
> I will indeed.  The first thing I can think of is exactly what you are
> doing now.  This exchange has been very useful.  In many ways I lack
> what you have, experience as a trainer.  I am a software engineer,
> also with a full-time job, and I don't often see where people get
> stuck.  I often think that the best teachers are really the students,
> since they have a clear recollection of the problem areas.

I'm a programmer and I still spend most of my time developing software.
I took this activity as a "trainer" with mixed feelings when I begun.
I had to talk about Windows CE.net at two conferences (in Milan and in
Rome) and I installed the new release of Platform Builder just a week before and, to make things even more difficult, I broke my right ankle playing basketball the day before the first conference.

When I did the first training courses I was afraid that my knowledge was not good enough to reply to all the questions.
Now I feel more secure and I took any question that it's difficult to answer as a good chance do learn something new or understand something more clearly. I reply to specific questions, but also try to gave to the "students" the tools to find the answer by themselves.
Explaining something to other people is the best way to undestand if you have a clear picture/mental model of what you are explaining.

> When the time comes, I will forward you draft chapters.  Perhaps, if
> you have the time you can read them over, and let me know what you think.

Ok, but don't expect suggestions about grammar or spelling!

> Perhaps you could even distribute them in your class, and let me know
> what your students think.
>

Yes. I'm in contact with many of them and there are very smart people among my "customers" base, I think that they will appreciate the chance to learn something and also collaborate with you.

> With your permission, I would also like to transfer this conversation
> to the website.  Just let me know if this is okay with you.
>

Yes, it's OK.

> Thanks again Valter!  And let me know if I can help *you* in any way
> as well.

Ciao James.
Buon lavoro!

Update to Building Powerful Platforms...
By kelley1954 on Tuesday, August 09, 2005 (PST)
I have just ordered your book hoping it will clarify some of the mysteries of WinCE. I find MS documentation for the most part to be clear as mud. I have worked a little with QNX, OS9000, and Wind River and find CE extremely obfuscated. I understand about with power comes complexity but they (MS) have gone overboard on the complexity side as far as I can tell. I'm hoping that part of this project will include updated information to augment "Building Powerful Platforms..." If you don't mind someone being completely anal about things like using 'comprise', 'infer', and other frequently misused words, and you don't mind getting beat up for split infinitives, I'll be happy to help edit. But don't ask me to spell, I can't spell 'A'. I think this open editing idea is a very good one.

 





New Articles
  • Windows Phone 7 Application Development
    Dave Heil and James Y. Wilson gave a presentation on Windows Phone 7 Application Development to the members of the Windows Networking Solutions User Group (WiNSUG) in Carlsbad, California.

  • Windows Phone 7 vs. Android
    A engineer's perspective of life with a Windows Phone 7 device as compared to that of an Android device.

  • .NET Micro Framework Released to Open Source
    Not exactly breaking news, but a new paradigm for Microsoft.

  •  

    New Posts

  • Windows CE 5.0 Vs 6.0
    Posted by vsanghi@e-consystems.com on Tuesday, June 12, 2007 (PST)

  • Access to Data Rates Beyond 115.2 Kbps From .NET CF
    Posted by jadams on Thursday, November 16, 2006 (PST)

  • Getting Started With BSP Migration
    Posted by jywilson on Tuesday, October 24, 2006 (PST)

  •  

    New Downloads

  • AutoLaunch V1.0.zip
    This file contains the AutoLaunch CE 6.0 subproject.

  • PhidgetsDrivers-CE60 Project Files.zip
    The CE 6.0 project files and latest release from CodePlex of the Phidgets drivers.

  • PhidgetDrivers-PB Project Files.zip
    This file contains the Platform Builder 5.0 project files to include the Phidgets drivers in your OS image.


  •  

    Home   |   Blog Archives   |   Socrates?   |   Chapters   |   Best Practices   |   Discuss   |   Open Editing   |   Pocket PC   |   Downloads   |   Favorite Links   |   Biography   |   About Web Site