<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Embedded System Blog</title>
	<atom:link href="http://www.embedded-system-blog.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.embedded-system-blog.com</link>
	<description>Embedded Systems, Embedded Software, Micro Controllers etc.</description>
	<lastBuildDate>Sun, 06 Dec 2009 07:10:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Power consumption in embedded systems</title>
		<link>http://www.embedded-system-blog.com/embedded-programming/power-consumption-in-embedded-systems/</link>
		<comments>http://www.embedded-system-blog.com/embedded-programming/power-consumption-in-embedded-systems/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 07:09:42 +0000</pubDate>
		<dc:creator>Uttam</dc:creator>
				<category><![CDATA[Embedded Programming]]></category>
		<category><![CDATA[CMP]]></category>
		<category><![CDATA[IC]]></category>
		<category><![CDATA[input port]]></category>
		<category><![CDATA[interrupt]]></category>
		<category><![CDATA[low power]]></category>
		<category><![CDATA[mcu]]></category>
		<category><![CDATA[output port]]></category>
		<category><![CDATA[timer]]></category>
		<category><![CDATA[watchdog timer]]></category>

		<guid isPermaLink="false">http://www.embedded-system-blog.com/?p=74</guid>
		<description><![CDATA[Embedded systems are normally embedded in a bigger system to perform a specific job. So they are expected to consume power as minimum as possible. Any electronics device as such is designed to consume less power as they are expected to work with battery power supply too. Embedded systems again has to run with those [...]]]></description>
			<content:encoded><![CDATA[<p>Embedded systems are normally embedded in a bigger system to perform a specific job. So they are expected to consume power as minimum as possible. Any electronics device as such is designed to consume less power as they are expected to work with battery power supply too. Embedded systems again has to run with those little power supply provided for electronic devices.<br />
<div id="attachment_75" class="wp-caption aligncenter" style="width: 310px"><img src="http://www.embedded-system-blog.com/wp-content/uploads/2009/12/embedded-system.jpg" alt="Low power Consumption in Embedded Systems" title="embedded-system" width="300" height="221" class="size-full wp-image-75" /><p class="wp-caption-text">Low power Consumption in Embedded Systems</p></div><br />
Here are few tips to conserve energy:-<br />
<strong><br />
1. Avoid poll mode of operation</strong><br />
   One should avoid polling of events and use interrupt instead. When the embedded system is not performing any task or just waiting for an event, it should always remain in power down mode with switching off all its unused peripherals.<br />
<span id="more-74"></span><br />
<strong>2. Use less computation </strong><br />
  Embedded software should be designed in such a way that, it requires less number of computation to arrive at any decision. Also, compare statements should be used less. </p>
<p><strong>3. Timers</strong><br />
  Timers should not be powered on if not required. Watchdog timers are good option to recover from any infinite loop or restarting, but it is drain on power supply. So, it is better not to use it on production versions of any embedded software.<br />
<strong><br />
4. Use in-built power management </strong><br />
   Most of the MCUs, ICs has power down mode. MCUs now a days come woth excellent power management functions. Embedded software should exploit them so that power consumption can be minimized. </p>
<p> Embedded systems should be optimized always for consuming less power. It will increase life of the system and will not hamper functioning of the parent device. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.embedded-system-blog.com/embedded-programming/power-consumption-in-embedded-systems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using SMS for telemetry</title>
		<link>http://www.embedded-system-blog.com/uncategorized/using-sms-for-telemetry/</link>
		<comments>http://www.embedded-system-blog.com/uncategorized/using-sms-for-telemetry/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 04:29:18 +0000</pubDate>
		<dc:creator>Uttam</dc:creator>
				<category><![CDATA[SMS Telemetry]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[burglar alarm]]></category>
		<category><![CDATA[cdma]]></category>
		<category><![CDATA[FCT]]></category>
		<category><![CDATA[gsm]]></category>
		<category><![CDATA[GSM Modem]]></category>
		<category><![CDATA[remote monitoring]]></category>
		<category><![CDATA[RS232]]></category>
		<category><![CDATA[SIM]]></category>
		<category><![CDATA[SMS]]></category>
		<category><![CDATA[Telemetry]]></category>
		<category><![CDATA[USB]]></category>

		<guid isPermaLink="false">http://www.embedded-system-blog.com/?p=70</guid>
		<description><![CDATA[SMS ( short messaging service) can be used for SMS telemetry. SMS is a wonderful way of sending and receiving short information in wireless ( GSM and CDMA ) network. Though SMS is thought as a feature built in mobile phone, but there are other equipments too which can send and receive SMS. GSM modem [...]]]></description>
			<content:encoded><![CDATA[<p>SMS ( short messaging service) can be used for SMS telemetry. SMS is a wonderful way of sending and receiving short information in wireless ( GSM and CDMA ) network. Though SMS is thought as a feature built in mobile phone, but there are other equipments too which can send and receive SMS. GSM modem is such product which uses a mobile SIM card, has a computer connectivity through USB or RS232 port.<br />
<div id="attachment_72" class="wp-caption aligncenter" style="width: 290px"><img src="http://www.embedded-system-blog.com/wp-content/uploads/2009/10/gsm_m20.jpg" alt="GSM Modem  or SMS Telemetry" title="GSM Modem" width="280" height="459" class="size-full wp-image-72" /><p class="wp-caption-text">GSM Modem  or SMS Telemetry</p></div><br />
GSM modems support AT commands as well as GSM specific commands like sending and receiving SMS. And it can be controlled by PC software through its RS232 ( USB ) port! So many applications like remote monitoring, remote activation, alerts could be developed using SMS!</p>
<p>It can also have application in remote monitoring of water level, temperature change alerts, same message to multiple recipient or broadcasting. </p>
<p>A typical example would be home security. Any burglar alarm could be connected to one GSM Modem and it would send an SMS to you apart from sounding alarm in police station even when you are away from home. Also, you could operate your washing machine, microwave oven, water pump remotely! How do you think about warming home from your office before you reach home remotely so that you enter into your &#8216;warm&#8217; house ?</p>
<p>SMS has many potential application as it can exchange short messages ( upto 160 character per SMS) between two GSM modem. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.embedded-system-blog.com/uncategorized/using-sms-for-telemetry/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Can PC be called a Embedded System ?</title>
		<link>http://www.embedded-system-blog.com/general/can-pc-be-called-a-embedded-system/</link>
		<comments>http://www.embedded-system-blog.com/general/can-pc-be-called-a-embedded-system/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 11:03:19 +0000</pubDate>
		<dc:creator>Uttam</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Development Tools]]></category>
		<category><![CDATA[embedded board]]></category>
		<category><![CDATA[IC]]></category>
		<category><![CDATA[laptop]]></category>
		<category><![CDATA[operating system]]></category>
		<category><![CDATA[pc]]></category>
		<category><![CDATA[RTOS]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://www.embedded-system-blog.com/?p=66</guid>
		<description><![CDATA[Can PC be qualified as Embedded System ? How about a laptop ? And then there is SBC ( Single Board Computer). 
According to me, A PC can also be a embedded system if it is used for specific job only. For example, if a PC is used for only word processing, there should not [...]]]></description>
			<content:encoded><![CDATA[<p>Can PC be qualified as Embedded System ? How about a laptop ? And then there is SBC ( Single Board Computer). </p>
<p>According to me, A PC can also be a embedded system if it is used for specific job only. For example, if a PC is used for only word processing, there should not be any reason why it can not be called a embedded system for word processing! Though using word processing alone may not justify use of a PC, but that does not prevent terming a PC Embedded System for Word processing!<div id="attachment_67" class="wp-caption aligncenter" style="width: 310px"><img src="http://www.embedded-system-blog.com/wp-content/uploads/2009/09/inside-pc.jpg" alt="PC as Embedded System" title="inside-pc" width="300" height="278" class="size-full wp-image-67" /><p class="wp-caption-text">PC as Embedded System</p></div></p>
<p>SBC : This is single board which contains all peripherals of a PC except the display! It contains, HDD, Processor, display cards, LAN etc. on a single board. </p>
<p>Laptop : Interestingly, laptop contains everything including battery back up or UPS too! So, by hardware or organisation, Laptop can be a embedded system.<br />
<span id="more-66"></span><br />
Server PC : Server Class PCs are those with high configuration, high processing power and they are supposed to do very few specific tasks. For example, a Database Server is supposed to handle large database only.</p>
<p>The major advantages of using a PC as embedded system are :<br />
1. Support of many hardware or peripheral.<br />
2. Large storage capacity<br />
3. Choice of operating System<br />
4. Variety of tools to develop applications.<br />
4. Easy availability </p>
<p>Some disadvantages are :<br />
1. Size is bulky and big.<br />
2. Power supply requirement is large.<br />
3. Operating Systems tend to crash.<br />
4. Non availability of RTOS</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embedded-system-blog.com/general/can-pc-be-called-a-embedded-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DSP : Digital Signal Processor</title>
		<link>http://www.embedded-system-blog.com/digital-signal-processor/dsp-digital-signal-processor/</link>
		<comments>http://www.embedded-system-blog.com/digital-signal-processor/dsp-digital-signal-processor/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 14:41:26 +0000</pubDate>
		<dc:creator>Uttam</dc:creator>
				<category><![CDATA[Digital Signal Processor]]></category>
		<category><![CDATA[analog devices]]></category>
		<category><![CDATA[cdma]]></category>
		<category><![CDATA[cellular phone]]></category>
		<category><![CDATA[chip]]></category>
		<category><![CDATA[DSP]]></category>
		<category><![CDATA[gsm]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[lucent]]></category>
		<category><![CDATA[mobile phone]]></category>
		<category><![CDATA[motorola]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[speech compression]]></category>
		<category><![CDATA[texas instruments]]></category>
		<category><![CDATA[ti]]></category>

		<guid isPermaLink="false">http://www.embedded-system-blog.com/?p=61</guid>
		<description><![CDATA[Most probably, many people will think DSP as deputy superintendent police.  But in embedded world, DSP is one of those highly revered word and it is short form for digital signal processor. And also, for many electronics engineering students, it must have been one of those dreaded subjects, depending on which portion one sits [...]]]></description>
			<content:encoded><![CDATA[<p>Most probably, many people will think DSP as deputy superintendent police.  But in <a href="http://www.embedded-system-blog.com">embedded world</a>, DSP is one of those highly revered word and it is short form for digital signal processor. And also, for many electronics engineering students, it must have been one of those dreaded subjects, depending on which portion one sits in a class room. For people like us, who just scrapped through maths and electronics, it was topic to avoid.</p>
<p><img src="http://www.embedded-system-blog.com/wp-content/uploads/2009/07/dsp1.JPG" alt="dsp1" title="dsp1" width="389" height="323" class="aligncenter size-full wp-image-62" /></p>
<p>But why DSP is so important today ? A simple statement may prepare you to appreciate power and importance of DSP, a simple DSP could be faster and more powerful than latest most famous general purpose chip P-IV at 3.8GHz! and while DSP might work at miserly 32MHz with as little as 50mA and 5V DC!<br />
<span id="more-61"></span><br />
Well, I am not here to write about DSP or its design, I wanted only to write significance and importance of DSP in our life! It will not be an exaggeration if we say that cellular phones will not have existed if DSP was not there! What does DSP do in a cellular phone ? It digitizes speech, compresses it, transmit through RF while it is receiving similar speech data in compressed from, and then play it back through tiny speaker of cellular phone after decompressing it, all in real time! Cellular phones does lot many things now days! Just imagine what is the compression of speech in cellular phones ? To put in simple English, it needs only 46KB of memory to store 1 minute of speech! Compare that with much hyped MP3! These are all possible thanks to DSP! </p>
<p><a href="http://www.ti.com">Texas Instruments</a>, Analog Devices, Motorola, Lucent technologies are few companies who manufacture DSPs. DSP will nor replace general purpose CHIP, as DSPs are used for performing specific task at fastest way possible while consuming least power. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.embedded-system-blog.com/digital-signal-processor/dsp-digital-signal-processor/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Starter Kits For Embedded Systems Development</title>
		<link>http://www.embedded-system-blog.com/starter-kits/starter-kits-for-embedded-systems-development/</link>
		<comments>http://www.embedded-system-blog.com/starter-kits/starter-kits-for-embedded-systems-development/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 09:02:40 +0000</pubDate>
		<dc:creator>Uttam</dc:creator>
				<category><![CDATA[Starter Kits]]></category>
		<category><![CDATA[ASIC]]></category>
		<category><![CDATA[DSP]]></category>
		<category><![CDATA[embedded system development]]></category>
		<category><![CDATA[FPGA]]></category>
		<category><![CDATA[mcu]]></category>
		<category><![CDATA[Starter Kit]]></category>

		<guid isPermaLink="false">http://www.embedded-system-blog.com/starter-kits/starter-kits-for-embedded-systems-development/</guid>
		<description><![CDATA[Anyone who is related to the field of embedded system development must be aware about Starter Kits. It may mean many things in other fields, but it means almost literally in embedded systems. Starter Kits for any micro-controller, DSP contains essential tools required to learn and develop products, applications, solve real world problems using the [...]]]></description>
			<content:encoded><![CDATA[<p>Anyone who is related to the field of embedded system development must be aware about Starter Kits. It may mean many things in other fields, but it means almost literally in embedded systems. Starter Kits for any micro-controller, DSP contains essential tools required to learn and develop products, applications, solve real world problems using the particular MCU or DSP or FPGA! <img src="http://www.embedded-system-blog.com/wp-content/uploads/2009/06/starterkit.jpg" alt="starterkit" title="starterkit" width="300" height="271" class="alignright size-full wp-image-58" /><br />
<strong><br />
Why Starter Kits ?</strong><br />
Without starter kits, it would have been difficult to learn about developing or writing programs for an MCU. Normally, a cycle of preparations takes place before you actually start writing codes for particular MCU or DSP.</p>
<p>1. Make small PCB with all required component to start up the MCU. Make various Test Points to test.<br />
<span id="more-56"></span>2. Make programmer to program or download assembled code to MCU.<br />
3. Find programming software.<br />
4. Find assembler of cross compiler if you intend to use C language.</p>
<p>The whole cycle of preparations may take months to gather! Starter Kits comes with everything you need to start writing programs! A typical starter kit will come with:<br />
1. Assembler or C Compiler<br />
2. Programmer along with programming Cable.<br />
3. Complete PCB with MCU along with various test points as well as components.<br />
4. Interface with PC.</p>
<p>So, if you decide to learn or use a particular MCU or DSP, be sure inquire about availability of Start Kits as well as buy one for you. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.embedded-system-blog.com/starter-kits/starter-kits-for-embedded-systems-development/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Generate DTMF Tones using R2R Ladder Network</title>
		<link>http://www.embedded-system-blog.com/projects/generate-dtmf-tones-using-r2r-ladder-network/</link>
		<comments>http://www.embedded-system-blog.com/projects/generate-dtmf-tones-using-r2r-ladder-network/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 08:54:42 +0000</pubDate>
		<dc:creator>Uttam</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[DTMF]]></category>
		<category><![CDATA[DTMF Generation]]></category>
		<category><![CDATA[DTMF Tone]]></category>
		<category><![CDATA[mcu]]></category>
		<category><![CDATA[r2r]]></category>
		<category><![CDATA[r2r ladder network]]></category>

		<guid isPermaLink="false">http://www.embedded-system-blog.com/?p=49</guid>
		<description><![CDATA[DTMF ( Dualtone Multiple Frequency ) is one of the most widely used signaling in Telecom Domain. Though there are many chips available in the market for generating DTMF tones, here is an example how to generate DTMF using simple R2R ladder network and 8BIT I/O Port of an MCU.

Any MCU one I/O port should [...]]]></description>
			<content:encoded><![CDATA[<p>DTMF ( Dualtone Multiple Frequency ) is one of the most widely used signaling in Telecom Domain. Though there are many chips available in the market for generating DTMF tones, here is an example how to generate DTMF using simple R2R ladder network and 8BIT I/O Port of an MCU.<br />
<div id="attachment_52" class="wp-caption aligncenter" style="width: 600px"><img src="http://www.embedded-system-blog.com/wp-content/uploads/2009/06/r2r-ladder1.jpg" alt="R2R Ladder Network for DTMF Generation" title="r2r-ladder" width="590" height="200" class="size-full wp-image-52" /><p class="wp-caption-text">R2R Ladder Network for DTMF Generation</p></div><br />
<span id="more-49"></span><br />
Any MCU one I/O port should be directly connected to R2R ladder network as shown above picture. Since DTMF uses two frequencies, lower order bits ( Bit 0 to Bit 3) should be used to generate one frequency using simple SINE values, and the higher order bits (Bit 4 to Bit <img src='http://www.embedded-system-blog.com/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> should be used to generate the other frequency. Both the frequency would be added up automatically and the resultant DTMF tones would be generated through output of the R2R ladder network! </p>
<p>Quite simple, right ? But one should be careful about timing! Here is the frequnecy table for DTMF tones<br />
1209 Hz 	1336 Hz 	1477 Hz 	1633 Hz<br />
697 Hz 	1 	2 	3 	A<br />
770 Hz 	4 	5 	6 	B<br />
852 Hz 	7 	8 	9 	C<br />
941 Hz 	* 	0 	# 	D</p>
<p>Using it one can easily generate DTMF tones. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.embedded-system-blog.com/projects/generate-dtmf-tones-using-r2r-ladder-network/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Where to start about Embedded System</title>
		<link>http://www.embedded-system-blog.com/introduction/where-to-start-about-embedded-system/</link>
		<comments>http://www.embedded-system-blog.com/introduction/where-to-start-about-embedded-system/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 15:15:39 +0000</pubDate>
		<dc:creator>Uttam</dc:creator>
				<category><![CDATA[Introduction]]></category>
		<category><![CDATA[application note]]></category>
		<category><![CDATA[application notes]]></category>
		<category><![CDATA[assembler]]></category>
		<category><![CDATA[assembly language]]></category>
		<category><![CDATA[com port]]></category>
		<category><![CDATA[data sheet]]></category>
		<category><![CDATA[datasheet]]></category>
		<category><![CDATA[embedded system]]></category>
		<category><![CDATA[I/O DEvice]]></category>
		<category><![CDATA[mcu]]></category>
		<category><![CDATA[notepad]]></category>
		<category><![CDATA[notpad]]></category>
		<category><![CDATA[RAM]]></category>
		<category><![CDATA[RS232]]></category>

		<guid isPermaLink="false">http://www.embedded-system-blog.com/?p=47</guid>
		<description><![CDATA[Where to start about embedded system ? The question is not clear! &#8220;Where to start learning embedded system development&#8221; might be the right question! For those embedded system enthusiasts! And for system integrators, most probably, &#8220;where to start using embedded system&#8221; is the correct question!
If some one wants to start learning how to develop embedded [...]]]></description>
			<content:encoded><![CDATA[<p>Where to start about embedded system ? The question is not clear! &#8220;Where to start learning embedded system development&#8221; might be the right question! For those embedded system enthusiasts! And for system integrators, most probably, &#8220;where to start using embedded system&#8221; is the correct question!</p>
<p>If some one wants to start learning how to develop embedded system, he must start with micro controllers and data sheet and than application notes. </p>
<p><strong>Micro Controllers</strong>:<br />
   If one does not know about micro controllers yet, then most probably, he is reading the wrong article in wrong blog. Blame Google or Yahoo for landing you here!<br />
<span id="more-47"></span> For beginners, MCU(Micro Controller Unit) is complete computer on chip! Yes, that is true! MCU is capable of executing assembly language instructions on its own, and it has RAM, Program Storage memory ( Hard Disk Drive, you may call), input/output devices like RS232 ( COM port) etc. inbuilt into it! There are many MCU manufacturers! I would list out in future! ATMEL, Microchip, Philips are to name a few! My personal favorite still is ATMEL.  </p>
<p><strong>Data Sheet</strong>:<br />
  Data sheet is the document describing about the MCU! Normally it is available for downloading in the website of the MCU manufacturer. For example, if you want to download datasheet of ATMEL MCU, you need to visit ATMEL website ( Use Google or Yahoo to search ), head on to download section! Without reading data sheet of the MCU, one should not attempt to anything about embedded system using that MCU. </p>
<p><strong>Application Notes</strong>:<br />
As the name suggests, Application Notes are example documents how to use the MCU! </p>
<p>So the bottom line is, on internet, you get everything to start learning how to develop a embedded system product. </p>
<p>This article was just an introduction.  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.embedded-system-blog.com/introduction/where-to-start-about-embedded-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Embedded Software Architectures</title>
		<link>http://www.embedded-system-blog.com/architecture/embedded-software-architectures/</link>
		<comments>http://www.embedded-system-blog.com/architecture/embedded-software-architectures/#comments</comments>
		<pubDate>Sat, 30 May 2009 09:07:36 +0000</pubDate>
		<dc:creator>Uttam</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[CAN]]></category>
		<category><![CDATA[embedded ethernet]]></category>
		<category><![CDATA[embedded linux]]></category>
		<category><![CDATA[embedded software]]></category>
		<category><![CDATA[embedded software architecture]]></category>
		<category><![CDATA[exokernels]]></category>
		<category><![CDATA[FTP]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[interrupt-driven]]></category>
		<category><![CDATA[Microkernels]]></category>
		<category><![CDATA[multi-threading]]></category>
		<category><![CDATA[nonpreemptive multitasking system]]></category>
		<category><![CDATA[Preemptive Multitasking]]></category>
		<category><![CDATA[windows ce]]></category>

		<guid isPermaLink="false">http://www.embedded-system-blog.com/?p=22</guid>
		<description><![CDATA[Since embedded system is a very specialised software used for specific tasks only, they have few common traits in them. Some of the common traits in all embedded software or embedded system are:
1. They perform one or few tasks.
2. They are constrained by size of the hardware, speed of processor as well as memory.
3. They [...]]]></description>
			<content:encoded><![CDATA[<p>Since embedded system is a very specialised software used for specific tasks only, they have few common traits in them. Some of the common traits in all embedded software or embedded system are:<br />
1. They perform one or few tasks.<br />
2. They are constrained by size of the hardware, speed of processor as well as memory.<br />
3. They work round the clock and has to recover automatically in case of any failure or unknown events. </p>
<p>There are several different types of software architecture in common use for any embedded system.</p>
<p><strong> Simple control loop</strong><br />
In this design, the software simply has a loop. The loop calls subroutines, each of which manages a part of the hardware or software.<br />
<span id="more-22"></span><br />
<strong> Interrupt controlled system</strong><br />
Some embedded systems are predominantly interrupt controlled. This means that tasks performed by the system are triggered by different kinds of events. An interrupt could be generated for example by a timer in a predefined frequency, or by a serial port controller receiving a byte.</p>
<p>These kinds of systems are used if event handlers need low latency and the event handlers are short and simple.</p>
<p>Usually these kinds of systems run a simple task in a main loop also, but this task is not very sensitive to unexpected delays.</p>
<p>Sometimes the interrupt handler will add longer tasks to a queue structure. Later, after the interrupt handler has finished, these tasks are executed by the main loop. This method brings the system close to a multitasking kernel with discrete processes.</p>
<p><strong>Cooperative multitasking </strong><br />
    A nonpreemptive multitasking system is very similar to the simple control loop scheme, except that the loop is hidden in an API. The programmer defines a series of tasks, and each task gets its own environment to &#8220;run&#8221; in. Then, when a task is idle, it calls an idle routine (usually called &#8220;pause&#8221;, &#8220;wait&#8221;, &#8220;yield&#8221;, &#8220;nop&#8221; (Stands for no operation), etc.).</p>
<p>The advantages and disadvantages are very similar to the control loop, except that adding new software is easier, by simply writing a new task, or adding to the queue-interpreter.</p>
<p><strong>Preemptive Multitasking or Multi-Threading</strong></p>
<p>In this type of system, a low-level piece of code switches between tasks or threads based on a timer (connected to an interrupt). This is the level at which the system is generally considered to have an &#8220;operating system&#8221; kernel. Depending on how much functionality is required, it introduces more or less of the complexities of managing multiple tasks running conceptually in parallel.</p>
<p>As any code can potentially damage the data of another task (except in larger systems using an MMU) programs must be carefully designed and tested, and access to shared data must be controlled by some synchronization strategy, such as message queues, semaphores or a non-blocking synchronization scheme.</p>
<p>Because of these complexities, it is common for organizations to buy a real-time operating system, allowing the application programmers to concentrate on device functionality rather than operating system services, at least for large systems; smaller systems often cannot afford the overhead associated with a generic real time system, due to limitations regarding memory size, performance, and/or battery life.</p>
<p><strong> Microkernels and exokernels</strong></p>
<p>A microkernel is a logical step up from a real-time OS. The usual arrangement is that the operating system kernel allocates memory and switches the CPU to different threads of execution. User mode processes implement major functions such as file systems, network interfaces, etc.</p>
<p>In general, microkernels succeed when the task switching and inter-task communication is fast, and fail when they are slow.</p>
<p>Exokernels communicate efficiently by normal subroutine calls. The hardware, and all the software in the system are available to, and extensible by embedded application programmers.</p>
<p><strong>Monolithic kernels</strong></p>
<p>In this case, a relatively large kernel with sophisticated capabilities is adapted to suit an embedded environment. This gives programmers an environment similar to a desktop operating system like Linux or Microsoft Windows, and is therefore very productive for development; on the downside, it requires considerably more hardware resources, is often more expensive, and because of the complexity of these kernels can be less predictable and reliable.<br />
Common examples of embedded monolithic kernels are Embedded Linux and Windows CE.</p>
<p>Despite the increased cost in hardware, this type of embedded system is increasing in popularity, especially on the more powerful embedded devices such as Wireless Routers and GPS Navigation Systems. Here are some of the reasons:</p>
<p>    1. Ports to common embedded chip sets are available.<br />
    2. They permit re-use of publicly available code for Device Drivers, Web Servers, Firewalls, and other code.<br />
    3. Development systems can start out with broad feature-sets, and then the distribution can be configured to exclude unneeded functionality, and save the expense of the memory that it would consume.<br />
    4. Many engineers believe that running application code in user mode is more reliable, easier to debug and that therefore the development process is easier and the code more portable.<br />
    5. Many embedded systems lack the tight real time requirements of a control system. A system such as Embedded Linux has fast enough response for many applications.<br />
    6. Features requiring faster response than can be guaranteed can often be placed in hardware.<br />
    7. Many RTOS systems have a per-unit cost. When used on a product that is or will become a commodity, that cost is significant.</p>
<p><strong>Custom Operating Systems</strong></p>
<p>A small fraction of embedded systems require safe, timely, reliable or efficient behavior unobtainable with the one of the above architectures. In this case an organization builds a system to suit. In some cases, the system may be partitioned into a &#8220;mechanism controller&#8221; using special techniques, and a &#8220;display controller&#8221; with a conventional operating system. A communication system passes data between the two.</p>
<p><strong>Additional software components</strong></p>
<p>In addition to the core operating system, many embedded systems have additional upper-layer software components. These components consist of networking protocol stacks like CAN, TCP/IP, FTP, HTTP, and HTTPS, and also included storage capabilities like FAT and Flash memory management systems. If the embedded devices has audio and video capabilities, then the appropriate drivers and codecs will be present in the system. In the case of the monolithic kernels, many of these software layers are included. In the RTOS category, the availability of the additional software components depends upon the commercial offering.</p>
<p><strong>Source of Information </strong>: Wikipedia</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embedded-system-blog.com/architecture/embedded-software-architectures/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tools for Embedded System</title>
		<link>http://www.embedded-system-blog.com/tools/tools-for-embedded-system/</link>
		<comments>http://www.embedded-system-blog.com/tools/tools-for-embedded-system/#comments</comments>
		<pubDate>Sat, 30 May 2009 09:05:06 +0000</pubDate>
		<dc:creator>Uttam</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[embedded boards]]></category>
		<category><![CDATA[Embedded Operating System]]></category>
		<category><![CDATA[embedded software testing]]></category>
		<category><![CDATA[embedded system development tools]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[Real Time Operating System]]></category>
		<category><![CDATA[RTOS]]></category>

		<guid isPermaLink="false">http://www.embedded-system-blog.com/?p=19</guid>
		<description><![CDATA[There are many tools available for developing embedded systems. Just like any other software development process, embedded system developers use compilers, assemblers, and debuggers. There are other specific tools for developing embedded systems:
    1. In circuit debuggers or emulators.
    2. Utilities to add a checksum or CRC to a [...]]]></description>
			<content:encoded><![CDATA[<p>There are many tools available for developing <a href="http://www.embedded-system-blog.com">embedded systems</a>. Just like any other software development process, embedded system developers use compilers, assemblers, and debuggers. There are other specific tools for <strong>developing embedded system</strong>s:</p>
<p>    1. <strong>In circuit debuggers or emulators</strong>.<br />
    2. <strong>Utilities</strong> to add a checksum or CRC to a program, so the embedded system can check if the program is valid.<br />
    3. For systems using digital signal processing, developers may use a math workbench such as Scilab / Scicos, MATLAB / Simulink, EICASLAB, MathCad, or Mathematica to simulate the mathematics. They might also use libraries for both the host and target which eliminates developing DSP routines as done in DSPnano RTOS and Unison Operating System.<br />
    4. Custom compilers/Cross compiler and linkers may be used to improve optimisation for the particular hardware.<br />
 <span id="more-19"></span>   5. An embedded system may have its own special language or design tool, or add enhancements to an existing language such as Forth or Basic.<br />
    6. Another alternative is to add a Real-time operating system or Embedded operating system, which may have DSP capabilities like DSPnano RTOS. Using <strong>RTOS</strong> in a large and complex embedded system makes life easier for a embedded system developer. </p>
<p><strong>Software tools can come from several sources</strong>:</p>
<p>    1. Software companies that specialize in the embedded market<br />
    2. Ported from the GNU software development tools<br />
    3. Sometimes, development tools for a personal computer can be used if the embedded processor is a close relative to a common PC processor</p>
<p>As the complexity of embedded systems grows, higher level tools and operating systems are migrating into machinery where it makes sense. For example, cellphones, personal digital assistants and other consumer computers often need significant software that is purchased or provided by a person other than the manufacturer of the electronics. In these systems, an open programming environment such as Linux, NetBSD, OSGi or Embedded Java is required so that the third-party software provider can sell to a large market.</p>
<p><strong>Major source of Information</strong>: Wikipedia.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embedded-system-blog.com/tools/tools-for-embedded-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Embedded System Development</title>
		<link>http://www.embedded-system-blog.com/embedded-programming/embedded-system-development/</link>
		<comments>http://www.embedded-system-blog.com/embedded-programming/embedded-system-development/#comments</comments>
		<pubDate>Sat, 30 May 2009 09:02:04 +0000</pubDate>
		<dc:creator>Uttam</dc:creator>
				<category><![CDATA[Embedded Programming]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[embedded]]></category>
		<category><![CDATA[embedded c]]></category>
		<category><![CDATA[embedded system]]></category>
		<category><![CDATA[embedded system development]]></category>
		<category><![CDATA[featured]]></category>

		<guid isPermaLink="false">http://www.embedded-system-blog.com/?p=17</guid>
		<description><![CDATA[Embedded Systems consist essentially of two main components
1. Hardware Component
   Here, hardware component may not necessarily mean only electronic hardware like micro-controllers, other computing peripherals, but also it may mean various mechanical parts to do some real-world work/task or to solve real world problems.
2. Software Component
    Now this may mean [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Embedded Systems</strong> consist essentially of two main components<br />
<strong>1. Hardware Component</strong><br />
   Here, hardware component may not necessarily mean only electronic hardware like micro-controllers, other computing peripherals, but also it may mean various mechanical parts to do some real-world work/task or to solve real world problems.<br />
<strong>2. Software Component</strong><br />
    Now this may mean the embedded application or a complete computing environment with operating system, compiler/interpreter of programming languages and execution. Operating System used in embedded systems is called RTOS or real time operating system. Normally, embedded systems are constrained by size, speed and power supply too.<br />
<span id="more-17"></span><br />
Embedded System development is normally a costly affair. It requires to go through complete process of hardware design, software development cycle, combining the two and than to test. But with recent developments has reasonably decreased the development time with advent of simulators, emulators. </p>
<p>I will try to list out available development tools here soon.<br />
To be updated.</p>
<p>Last Updated Post :  31 May 2009</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embedded-system-blog.com/embedded-programming/embedded-system-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
