Showing posts with label Embedded Systems. Show all posts
Showing posts with label Embedded Systems. Show all posts

Friday, April 29, 2011

Embedded Systems: Capstone Project course at Carnegie Mellon


One of the interesting project based course on Embedded Systems at Carnegie Mellon. The idea is that during the course of the entire class, student in a team of four generally, develops a working prototype of a system. Checkout the various cool videos of the courses demos at Youtube channel, http://www.youtube.com/user/EmbeddedSystemsCMU

Sunday, July 12, 2009

Embedded Systems at Microsoft Research

I was looking for what kind of work is being done in the areas of Embedded Systems at Microsoft, and I found one group specifically working in the areas of Embedded Systems and Reconfigurable computing.

Research overview at Embedded Systems group at MSR;

Overview

Our work in Embedded Systems covers both the system software and the hardware platform issues.

System software is long lived and hard to develop.

  • How can we make computers and consumer electronic devices less helpless and needy of detailed instruction?
  • How can we build predictable systems out of a mix of real-time and non-real-time entities?
  • How can we trust the computers and how can they trust us? But keep our privacy, lifestyle, safety, and convenience?
  • What are the programming paradigms that simplify the programmer's tasks without undue overheads?
  • How can we verify that software behaves as expected and adapts to a changing environment?
  • How do we structure software for resource-constrained environments, while maximizing portability, reuse, and sharing?

Embedded hardware is diverse and forever changing.

  • How can we realize more stable platforms without raising costs and complexity?
  • What can we do to increase ease-of-use, especially for verification, debugging and performance tuning?
  • How can we shorten the development and testing time for new systems?
  • How can we best use reconfigurable hardware to execute software more efficiently?
  • What are the best ways to exploit the functionality and the efficiency of reconfigurable computing?
Link: http://research.microsoft.com/en-us/groups/embeddedsystems/

Thursday, July 2, 2009

Excellent web resourses on Embedded Systems

While browsing over the year, I found following very useful resources on Embedded systems. Following is the first list of them, would carry upon this in subsequent future posts. If you also come across any other resources, post it on comments.

1. Artist group, which is EU Network of excellence on Embedded Systems design
Home page: http://www.artist-embedded.org/artist/-Home-Page-.html
Browse through the above link, you would find many journals, articles and can understand the way research in Embedded Systems is moving forward.

Especially I found this collection videos and slides, of their Summer school held at France in 2008 very useful.
http://www.artist-embedded.org/artist/Videos-of-the-Presentations.html

2. ACM Transaction on Embedded Systems, special issue on education in this domain
http://portal.acm.org/toc.cfm?id=1086519&idx=J840&type=issue&coll=portal&dl=ACM&part=transaction&WantType=Transactions&title=TECS&CFID=53496696&CFTOKEN=70868022

The papers on education at Berkely or Carnegie Mellon are very informative. It would build your perspective on what kind of skills are necessary and how the education in this area can help.

3. Dedicated Systems Encyclopedia
http://www.realtime-info.be/Encyc/

4. Linden H McClure, Professor at University of Colorado Boulder
http://ecee.colorado.edu/~mcclurel/

Professor home pages are always a great resource for any students, you can find out more about course they are taking, links to slides, published papers etc. Especially I found Prof. Linen's home page very useful, it contains various data sheets, links to course slides and other very useful info related to Embedded Systems.

5. Digital Electronics blog
http://digitalelectronics.blogspot.com/

It is a TECHlog on VLSI, Chip Design, Industry News, Opinions, Reviews & much more...
If you are interested in VLSI or Chip design then you would find many resources on the above blog, check out your self.

Thats all for now, many more ideas to write a post upon, would update soon.

Tuesday, June 30, 2009

Thoughts on System Architecture

System:

A system is defined as a set of different elements so connected or related as to perform unique function not performable by the elements alone

Architecture:

The term ‘architecture’ is widely understood and used for what it is – a top down description of the structure of the system

- System Architecture definition by Eb Rechtin

System Architect is one of the crucial jobs in embedded industry and to reach there one should have various skills required apart from solid domain level skills. The essay (link below) by Dr. Koopman covers in detail the core competency required to become System Architect, they are as follows

  1. Must have an appreciation for the full breadth of complexity in the lifecycle of a system.

This would require years of experience working in various domains within a system and only then one can appreciate inherent complexities.

  1. Must have experience/knowledge of the strengths and weaknesses of various architectural approaches as well as ways to combine them.

This could be learned by knowing various approaches and should know when one can be used in particular system.

  1. Must have the ability to cope with significant amounts of complexity while creating or modifying architecture.

This is also very difficult skill to learn, would require working knowledge of various tools and to help deal with complexity.

  1. Must be able to articulate the essence of particular system architecture to others.

System Architect role is a of a leader, and excellent communication skills are expected from him. He should sell his vision and idea to the team, customers and all the stakeholders.

  1. Must be able to deal with systems that are evolved/composed rather than designed from scratch.

This is important as many of the systems or products are getting evolved, no one is designing everything from scratch.

  1. Must have good “taste” to create a “clean” architecture that scales well and ages gracefully in the face of unforeseeable changes.

Sometime the need comes to design entire thing from scratch, and here he has to play a crucial role.

Link:
1. Essay by Dr. Philip Koopman http://www.ece.cmu.edu/~koopman/system_architecture/00_04_system_architecture.pdf

Thursday, June 25, 2009

Basic Skills Required

Embedded Systems* is a really huge industry and a very much diversified one too. The application area varies from designing a mobile phone, set top box device to industrial control, robotics etc. and also it requires interdisciplinary skill set for development. The various application areas and skills set for each could be another topic, which I would have in future posts.

For this post, I would limit my self to skills required for a basic Software Engineer in this domain. Similar to kind of job which I am doing in Bangalore for past two years.

Kind of Job profile:
You would be working on a particular product (such as Mobile Phones, Set top box or related to automobiles), and responsible for maintaining, development of various modules in any particular domain. The domain could vary from Telecom, Video, Audio, Drivers, Multimedia or UI development. Initially domain skills are not necessary but over the years you are expected to become master in one particular domain, thus after some time you cannot easily jump over multiple domains.

Companies:
Motorola, Samsung, Qualcomm, STMicro, NXP, LG Software etc. etc. (all in Bangalore)

Basic Skills:
a. Good coding skills in C (or C++): Very good knowledge of C language is good starting point. Suggested books are K&R, Expert C programming etc. Have a good hold on pointers, memory allocations and bit manipulation.

b. Debugging and Problem solving: This is very crucial skill in this domain, as most time is spent debugging other persons code. As an good engineer, you would be having essential skills to start up with.

c. Operating Systems concepts: A basic undergraduate level course would do, better if you know about Real time system and kernels but not mandatory.

d. Computer Architecture: Especially knowledge of any RISC architecture,recommended is to know ARM architecture, as most of the embedded devices use ARM IP in their SOC.

Other Advanced skills required are based upon domain you wish to work, such as Wireless or DSP. For this its better to have understanding of Wireless Communications (mainly protocols) and DSP (Audio and Video).

Thats all for today, in future I wish to write upon detailed job profile, exact skills and how to develop and nurture career in this space.

* When I say Embedded Systems, I restrict myself to developing Embedded Products

Hello world!

embsystems is my new blog, specifically dedicated to perspectives and thoughts on Embedded Systems area. Specifically I want to cover following points,

1. Various application areas

2. List of companies active in this space (I know this is huge, but want to classify and maintain the list)

3. Graduate level education in this space, especially American and European university.

4. Types of job and skills required for it, to give a brief idea to any budding aspirant.

5. My personal experience and learnings working in this field (in past two years).