<?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>Vayavya&#039;s Blog</title>
	<atom:link href="http://vayavyalabs.com/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://vayavyalabs.com/blog</link>
	<description>Bridging Hardware and Software flows.......</description>
	<lastBuildDate>Thu, 29 Apr 2010 13:12:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Porting WinCE on eval boards &#8211; part 1</title>
		<link>http://vayavyalabs.com/blog/?p=120</link>
		<comments>http://vayavyalabs.com/blog/?p=120#comments</comments>
		<pubDate>Thu, 29 Apr 2010 12:12:13 +0000</pubDate>
		<dc:creator>someshward</dc:creator>
				<category><![CDATA[WinCE]]></category>

		<guid isPermaLink="false">http://vayavyalabs.com/blog/?p=120</guid>
		<description><![CDATA[Porting of WinCE on a new evaluation board is one challenging task. Though when some of the following things when kept in mind will always make the job easy. 1. Know details of your hardware board well - programming details of peripherals on the SoC - availability of RAM, flash technologies, etc, or much better, [...]]]></description>
			<content:encoded><![CDATA[<pre>Porting of WinCE on a new evaluation board is one challenging task. Though when some of the following
things when kept in mind will always make the job easy.

1. Know details of your hardware board well
  - programming details of peripherals on the SoC
  - availability of RAM, flash technologies, etc, or much better, know the memory mapping details
  - hardware ports availability on the board
  - details of board layout and connections with SoC
2. Familiarize yourself with the Microsoft Visual Studio (I work with v2005) and Platform builder
3. Check for a working BSP targeting the same platform,
   - parts of the existing BSP involving writing of assembly code for boot loader and OAL layer
     can be reused for writing the new BSP.
   - more simpler, clone the existing BSP and tweak the cloned BSP to work for the new target
   - most of the OAL framework code duplication will be avoided
4. WINCE600 will always have some or the other support libraries provided to make job of the developer
   easy. Always check if there are any helpful libraries available for use. "google MSDN <img src='http://vayavyalabs.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> "

Carrying out the porting for the new target will involve the development of following,
1. Boot loader (boot strapping of boot loader is a different issue)
3. KITL (Kernel Independent Trasport Layer)
2. OAL (OEM Abstraction Layer)
4. WinCE Device Drivers
5. Applications

Will add details on the components in my future posts.

cheers,
somesh</pre>
]]></content:encoded>
			<wfw:commentRss>http://vayavyalabs.com/blog/?feed=rss2&amp;p=120</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux Run Level</title>
		<link>http://vayavyalabs.com/blog/?p=19</link>
		<comments>http://vayavyalabs.com/blog/?p=19#comments</comments>
		<pubDate>Tue, 17 Feb 2009 13:14:43 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[init]]></category>
		<category><![CDATA[Linux Run Level]]></category>

		<guid isPermaLink="false">http://vayavyalabs.com/blog/?p=19</guid>
		<description><![CDATA[Linux kernel will start a program called init, if it finds it. The init process reads the file &#8220;/etc/inittab&#8221; and uses this file to determine how to create processes. Read the init man page for more information. Also note that init is always running and can dynamically do things and run processes based upon various [...]]]></description>
			<content:encoded><![CDATA[<p>Linux kernel will start a program called init, if it finds it. The init process reads the file &#8220;/etc/inittab&#8221; and uses this file to determine how to create processes. Read the init man page for more information. Also note that init is always running and can dynamically do things and run processes based upon various signals. The administrator can also cause it to dynamically change system processes and runlevels by using the telinit program or editing the &#8220;/etc/inittab&#8221; file.</p>
<h3>Runlevels</h3>
<p>Linux utilizes what is called &#8220;runlevels&#8221;. A runlevel is a software configuration of the system that allows only a selected group of processes to exist. Init can run the system in one of eight runlevels. These runlevels are 0-6 and S or s.</p>
<p>The standard Run Level for a linux machine booting up in full GUI mode is Run Level 5.The most common need for Run Level 3 is for debugging problems and installing graphic drivers.</p>
<p>If you want to specify a default Run Level other than 5, the option can be changed in your /etc/inittab as defined by the initdefault directive. Below is a table specifying the other various Run Levels and State properties.</p>
<p><!-- #background-image { 	font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif; 	font-size: 12px;         margin : 45px; 	width: 500px; 	text-align: left; 	border-collapse: collapse; 	background: url('http://www.vayavyalabs.com/blog/wp-content/themes/ChristmasGifts/images/blurry.jpg') 330px 59px no-repeat; } #background-image th { 	padding: 12px; 	font-weight: normal; 	font-size: 14px; 	color: #339; } #background-image td { 	padding:9px 12px; 	color: #669; 	border-top: 1px solid #fff; } #background-image tfoot td { 	font-size: 11px; } #background-image tbody td { 	background: url('http://www.vayavyalabs.com/blog/wp-content/themes/ChristmasGifts/images/back.png'); } * html #background-image tbody td { 	/*  	                  		PUT THIS ON IE6 ONLY STYLE  		AS THE RULE INVALIDATES 		YOUR STYLESHEET 	                  	*/ 	filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='http://www.vayavyalabs.com/blog/wp-content/themes/ChristmasGifts/images/back.png',sizingMethod='crop'); 	background: none; }	 #background-image tbody tr:hover td { 	color: #339; 	background: none; } --></p>
<table id="background-image" summary="Meeting Results">
<tbody>
<tr bgcolor="black">
<th><span style="color: white;">Run Level</span></th>
<th><span style="color: white;">State </span></th>
</tr>
<tr>
<td>0</td>
<td>halt (shutdown) system</td>
</tr>
<tr>
<td>1</td>
<td>single user mode</td>
</tr>
<tr>
<td>2</td>
<td>multi user with no network exported</td>
</tr>
<tr>
<td>3</td>
<td>default full multi user console (text) only</td>
</tr>
<tr>
<td>4</td>
<td>reserved for local use (and X-window)</td>
</tr>
<tr>
<td>5</td>
<td>X-window full GUI mode</td>
</tr>
<tr>
<td>6</td>
<td>reboot system</td>
</tr>
</tbody>
</table>
<ol>
<li>
<h3>Change Run Level After Boot Up</h3>
</li>
<p>The easiest way to change the Run Level after the system has already been booted up is to open up the console and use init. There is an example below on how to change the Run Level to 3.</p>
<p><strong>init 3</strong></p>
<li>
<h3>Change Run Level on System Boot Up</h3>
</li>
<p>If however your Linux machine is currently powered off and you would like to boot directly into an alternative Run Level, you can change the Run Level by accessing the linux startup boot menu (GRUB). Simply choose the desired kernel and add init 3 into the kernel string.</ol>
<p>However my experience so far is that students get confused with ssh and KDE/Gnome Desktop login. SSH logins are handled by sshd server which starts at run level 2/3. KDE/Genome Desktop login are handled by GDM/XDM/KDM display manager which starts at run level 5</p>
<p>The<strong> &#8220;/etc/inittab&#8221;</strong> file tells init which runlevel to start the system at and describes the processes to be run at each runlevel. An entry in the inittab file has the following format:</p>
<p><strong>id : runlevels : action : process</strong></p>
<p><strong>id </strong>- A unique sequence of 1-4 characters which identifies an entry in inittab.</p>
<p><strong>runlevels </strong>- Lists the runlevels for which the specified action should be taken. This field may contain multiple characters for different runlevels allowing a particular process to run at multiple runlevels. For example, 123 specifies that the process should be started in runlevels 1, 2, and 3.</p>
<p><strong>action </strong>- Describes which action should be taken.</p>
<table id="background-image" summary="Meeting Results">
<tbody>
<tr bgcolor="white">
<th colspan="2"><strong>Valid actions are listed below</strong></th>
</tr>
<tr bgcolor="black">
<th><span style="color: white;"><strong>Action</strong></span></th>
<th><span style="color: white;"><strong>Description</strong></span></th>
</tr>
<tr>
<td><strong>respawn</strong></td>
<td>The process will be restarted whenever it terminates.</td>
</tr>
<tr>
<td><strong>wait</strong></td>
<td>The process will be started once when the specified runlevel is entered and init will wait for its termination.</td>
</tr>
<tr>
<td><strong>once</strong></td>
<td>The process will be executed once when the specified runlevel is entered</td>
</tr>
<tr>
<td><strong>boot</strong></td>
<td>The process will be executed during system boot. The runlevels field is ignored.</td>
</tr>
<tr>
<td><strong>bootwait </strong></td>
<td>Same as &#8220;boot&#8221; above, but init waits for its termination.</td>
</tr>
<tr>
<td><strong>off</strong></td>
<td>This does nothing.</td>
</tr>
<tr>
<td><strong>ondemand</strong></td>
<td>This process will be executed whenever the specified ondemand runlevel is called.</td>
</tr>
<tr>
<td><strong>initdefault</strong></td>
<td>Specifies the runlevel which should be entered after system boot. If none exists, init will ask for a runlevel on the console. The process field is ignored.</td>
</tr>
<tr>
<td><strong>sysinit</strong></td>
<td>The process will be executed during system boot. It will be executed before any boot or bootwait entries. The runlevels field is ignored.</td>
</tr>
<tr>
<td><strong>powerwait</strong></td>
<td>The process will be executed when init receives the SIGPWR signal. Init will wait for the process to finish before continuing.</td>
</tr>
<tr>
<td><strong>powerfail</strong></td>
<td>Same as powerwait but init does not wait for the process to complete.</td>
</tr>
<tr>
<td><strong>powerokwait</strong></td>
<td>The process will be executed when init receives the SIGPWR signal provided there is a file called &#8220;/etc/powerstatus&#8221; containing the word &#8220;OK&#8221;. This means that the power has come back again.</td>
</tr>
<tr>
<td><strong>ctrlaltdel</strong></td>
<td>This process is executed when init receives the SIGINT signal. This means someone on the system console has pressed the &#8220;CTRL-ALT-DEL&#8221; key combination.</td>
</tr>
<tr>
<td><strong>kbrequest</strong></td>
<td>The process will be executed when init receives a signal from the keyboard handler that a special key combination was pressed on the console keyboard.</td>
</tr>
</tbody>
</table>
<p><strong>process </strong>-Specifies the process to be executed. If the process starts with the &#8216;+&#8217; character, init will not do utmp and wtmp accounting for that process. This is needed for gettys that insist on doing their own utmp/wtmp housekeeping (a historic bug).</p>
]]></content:encoded>
			<wfw:commentRss>http://vayavyalabs.com/blog/?feed=rss2&amp;p=19</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Embedded C language</title>
		<link>http://vayavyalabs.com/blog/?p=13</link>
		<comments>http://vayavyalabs.com/blog/?p=13#comments</comments>
		<pubDate>Mon, 16 Feb 2009 04:45:39 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[C-Programming]]></category>

		<guid isPermaLink="false">http://vayavyalabs.com/blog/?p=13</guid>
		<description><![CDATA[A topic of debate about the phrase, &#8220;Do you work on Embedded C language?&#8221;. I belong to the category who say there is nothing called Embedded C language, but C language for Embedded Systems. C language used for programming on embedded systems would need using the language in a smart way. Bit manipulations. Pointer Arithmetic. [...]]]></description>
			<content:encoded><![CDATA[<p>A topic of debate about the phrase, &#8220;Do you work on Embedded C language?&#8221;.</p>
<p>I belong to the category who say there is nothing called Embedded C language, but C language for Embedded Systems. C language used for programming on embedded systems would need using the language in a smart way.</p>
<ol>
<li>Bit manipulations.</li>
<li>Pointer Arithmetic.</li>
<li>Usage of volatile, const, extern, &#8230;. etc</li>
<li>cod optimizations of written code</li>
</ol>
<p>The following link is a good one which has some basic questions about <strong>&#8220;C for Embedded&#8221;:</strong><br />
<a href="http://www.embedded.com/2000/0005/0005feat2.htm">http://www.embedded.com/2000/0005/0005feat2.htm</a></p>
<p>Stay tuned for more posts&#8230;</p>
<hr />
Posted by : Someshwar D.</p>
]]></content:encoded>
			<wfw:commentRss>http://vayavyalabs.com/blog/?feed=rss2&amp;p=13</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 44.722 seconds -->
<!-- Cached page served by WP-Cache -->
