<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Swamy Kotipalli&#039;s</title>
	<atom:link href="http://kotipalli.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://kotipalli.wordpress.com</link>
	<description>Embedded C</description>
	<lastBuildDate>Tue, 27 Dec 2011 08:57:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='kotipalli.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/23ae86b87d0aa230028ff4e720267951?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Swamy Kotipalli&#039;s</title>
		<link>http://kotipalli.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://kotipalli.wordpress.com/osd.xml" title="Swamy Kotipalli&#039;s" />
	<atom:link rel='hub' href='http://kotipalli.wordpress.com/?pushpress=hub'/>
		<item>
		<title>How do you decide when you have &#8216;tested enough’?</title>
		<link>http://kotipalli.wordpress.com/2011/11/03/how-do-you-decide-when-you-have-tested-enough%e2%80%99/</link>
		<comments>http://kotipalli.wordpress.com/2011/11/03/how-do-you-decide-when-you-have-tested-enough%e2%80%99/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 05:13:57 +0000</pubDate>
		<dc:creator>kotipalli</dc:creator>
				<category><![CDATA[How do you decide when you have 'tested enough’?]]></category>

		<guid isPermaLink="false">http://kotipalli.wordpress.com/?p=289</guid>
		<description><![CDATA[Common factors in deciding when to stop are: Deadlines (release deadlines, testing deadlines, etc.) Test cases completed with certain percentage passed Test budget depleted Coverage of code/functionality/requirements reaches a specified point Bug rate falls below a certain level Beta or alpha testing period ends<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kotipalli.wordpress.com&amp;blog=8223911&amp;post=289&amp;subd=kotipalli&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p align="center">Common factors in deciding when to stop are:</p>
<ul>
<li>Deadlines (release deadlines, testing deadlines, etc.)</li>
<li>Test cases completed with certain percentage passed</li>
<li>Test budget depleted</li>
<li>Coverage of code/functionality/requirements reaches a specified point</li>
<li>Bug rate falls below a certain level</li>
<li>Beta or alpha testing period ends</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kotipalli.wordpress.com/289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kotipalli.wordpress.com/289/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kotipalli.wordpress.com/289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kotipalli.wordpress.com/289/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kotipalli.wordpress.com/289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kotipalli.wordpress.com/289/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kotipalli.wordpress.com/289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kotipalli.wordpress.com/289/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kotipalli.wordpress.com/289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kotipalli.wordpress.com/289/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kotipalli.wordpress.com/289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kotipalli.wordpress.com/289/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kotipalli.wordpress.com/289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kotipalli.wordpress.com/289/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kotipalli.wordpress.com&amp;blog=8223911&amp;post=289&amp;subd=kotipalli&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kotipalli.wordpress.com/2011/11/03/how-do-you-decide-when-you-have-tested-enough%e2%80%99/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a53fb89f9176c585850fb2ebc482614e?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">kotipalli</media:title>
		</media:content>
	</item>
		<item>
		<title>What are SDLC and STLC ? Explain its different phases.</title>
		<link>http://kotipalli.wordpress.com/2011/11/03/what-are-sdlc-and-stlc-explain-its-different-phases/</link>
		<comments>http://kotipalli.wordpress.com/2011/11/03/what-are-sdlc-and-stlc-explain-its-different-phases/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 05:06:57 +0000</pubDate>
		<dc:creator>kotipalli</dc:creator>
				<category><![CDATA[SDLC and STLC]]></category>

		<guid isPermaLink="false">http://kotipalli.wordpress.com/?p=283</guid>
		<description><![CDATA[                                        SDLC                                             Requirement phase Designing phase (HLD, DLD (Program spec)) Coding Testing Release Maintenance [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kotipalli.wordpress.com&amp;blog=8223911&amp;post=283&amp;subd=kotipalli&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h3 align="center"></h3>
<p style="text-align:center;"><strong><strong>                                        SDLC                                            </strong><br />
</strong></p>
<ul>
<li>Requirement phase</li>
<li>Designing phase (HLD, DLD (Program spec))</li>
<li>Coding</li>
<li>Testing</li>
<li>Release</li>
<li>Maintenance</li>
</ul>
<p style="text-align:center;" align="center"><strong>STLC</strong></p>
<ul>
<li>System Study</li>
<li>Test planning</li>
<li>Writing Test case or scripts</li>
<li>Review the test case</li>
<li>Executing test case</li>
<li>Bug tracking</li>
<li>Report the defect</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kotipalli.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kotipalli.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kotipalli.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kotipalli.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kotipalli.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kotipalli.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kotipalli.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kotipalli.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kotipalli.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kotipalli.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kotipalli.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kotipalli.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kotipalli.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kotipalli.wordpress.com/283/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kotipalli.wordpress.com&amp;blog=8223911&amp;post=283&amp;subd=kotipalli&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kotipalli.wordpress.com/2011/11/03/what-are-sdlc-and-stlc-explain-its-different-phases/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a53fb89f9176c585850fb2ebc482614e?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">kotipalli</media:title>
		</media:content>
	</item>
		<item>
		<title>What is Traceability Matrix?</title>
		<link>http://kotipalli.wordpress.com/2011/11/03/what-is-traceability-matrix/</link>
		<comments>http://kotipalli.wordpress.com/2011/11/03/what-is-traceability-matrix/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 05:04:41 +0000</pubDate>
		<dc:creator>kotipalli</dc:creator>
				<category><![CDATA[What is Traceability Matrix?]]></category>

		<guid isPermaLink="false">http://kotipalli.wordpress.com/?p=279</guid>
		<description><![CDATA[Traceability Matrix is a document used for tracking the requirement, Test cases and the defect. This document is prepared to make the clients satisfy that the coverage done is complete as end to end, This document consists of Requirement/Base line doc Ref No., Test case/Condition, Defects/Bug id. Using this document the person can track the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kotipalli.wordpress.com&amp;blog=8223911&amp;post=279&amp;subd=kotipalli&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Traceability Matrix is a document used for tracking the requirement, Test cases and the defect. This document is prepared to make the clients satisfy that the coverage done is complete as end to end, This document consists of Requirement/Base line doc Ref No., Test case/Condition, Defects/Bug id. Using this document the person can track the Requirement based on the Defect id.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kotipalli.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kotipalli.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kotipalli.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kotipalli.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kotipalli.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kotipalli.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kotipalli.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kotipalli.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kotipalli.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kotipalli.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kotipalli.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kotipalli.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kotipalli.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kotipalli.wordpress.com/279/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kotipalli.wordpress.com&amp;blog=8223911&amp;post=279&amp;subd=kotipalli&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kotipalli.wordpress.com/2011/11/03/what-is-traceability-matrix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a53fb89f9176c585850fb2ebc482614e?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">kotipalli</media:title>
		</media:content>
	</item>
		<item>
		<title>Bug Error and Defect</title>
		<link>http://kotipalli.wordpress.com/2011/11/03/bug-error-and-defect/</link>
		<comments>http://kotipalli.wordpress.com/2011/11/03/bug-error-and-defect/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 04:55:05 +0000</pubDate>
		<dc:creator>kotipalli</dc:creator>
				<category><![CDATA[Bug Error and Defect]]></category>
		<category><![CDATA[Software Testing]]></category>

		<guid isPermaLink="false">http://kotipalli.wordpress.com/?p=270</guid>
		<description><![CDATA[What is Defect Leakage ? Defect leakage occurs at the Customer or the End user side after the application delivery. After the release of the application to the client, if the end user gets any type of defects by using that application then it is called as Defect leakage. This Defect Leakage is also called [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kotipalli.wordpress.com&amp;blog=8223911&amp;post=270&amp;subd=kotipalli&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h3 align="center">What is Defect Leakage ?</h3>
<p><strong>Defect leakage occurs at the Customer or the End user side after the application delivery. After the release of the application to the client, if the end user gets any type of defects by using that application then it is called as Defect leakage. This Defect Leakage is also called as Bug Leak.</strong></p>
<h3 align="center">What are the contents in an effective Bug report?</h3>
<p>Project, Subject, Description, Summary, Detected By (Name of the Tester), Assigned To (Name of the Developer who is supposed to the Bug), Test Lead ( Name ), Detected in Version, Closed in Version, Date Detected, Expected Date of Closure, Actual Date of Closure, Priority (Medium, Low, High, Urgent), Severity (Ranges from 1 to 5), Status, Bug ID, Attachment, Test Case Failed (Test case that is failed for the Bug)</p>
<h3 align="center">What is Bug Life Cycle?</h3>
<p>Bug Life Cycle is nothing but the various phases a Bug undergoes after it is raised or reported.</p>
<ul>
<li>New or Opened</li>
<li>Assigned</li>
<li>Fixed</li>
<li>Tested</li>
<li>Closed</li>
</ul>
<div>
<h3 align="center">What is Error guessing and Error seeding ?</h3>
<p>Error Guessing is a test case design technique where the tester has to guess what faults might occur and to design the tests to represent them.</p>
<p>Error Seeding is the process of adding known faults intentionally in a program for the reason of monitoring the rate of detection &amp; removal and also to estimate the number of faults remaining in the program.</p>
<h3 align="center">What is the difference between Bug, Error and Defect?</h3>
<p><strong>Error :</strong> It is the Deviation from actual and the expected value.</p>
<p><strong>Bug :</strong> It is found in the development environment before the product is shipped to the respective customer.<br />
<strong><br />
Defect :</strong> It is found in the product itself after it is shipped to the respective customer.</p>
<h3 align="center">Why does software have bugs?</h3>
<ul>
<li><strong>Miscommunication or no communication</strong> – about the details of what an application should or shouldn&#8217;t do</li>
<li><strong>Programming errors</strong> – in some cases the programmers can make mistakes.</li>
<li><strong>Changing requirements</strong> – there are chances of the end-user not understanding the effects of changes, or may understand and request them anyway to redesign, rescheduling of engineers, effects of other projects, work already completed may have to be redone or thrown out.</li>
<li><strong>Time force </strong>- preparation of software projects is difficult at best, often requiring a lot of guesswork. When deadlines are given and the crisis comes, mistakes will be made.</li>
</ul>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kotipalli.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kotipalli.wordpress.com/270/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kotipalli.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kotipalli.wordpress.com/270/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kotipalli.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kotipalli.wordpress.com/270/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kotipalli.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kotipalli.wordpress.com/270/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kotipalli.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kotipalli.wordpress.com/270/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kotipalli.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kotipalli.wordpress.com/270/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kotipalli.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kotipalli.wordpress.com/270/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kotipalli.wordpress.com&amp;blog=8223911&amp;post=270&amp;subd=kotipalli&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kotipalli.wordpress.com/2011/11/03/bug-error-and-defect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a53fb89f9176c585850fb2ebc482614e?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">kotipalli</media:title>
		</media:content>
	</item>
		<item>
		<title>Types of Software Testings</title>
		<link>http://kotipalli.wordpress.com/2011/11/03/types-of-software-testings/</link>
		<comments>http://kotipalli.wordpress.com/2011/11/03/types-of-software-testings/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 04:45:38 +0000</pubDate>
		<dc:creator>kotipalli</dc:creator>
				<category><![CDATA[Embedded Automotive Domain]]></category>
		<category><![CDATA[Embedded Concepts]]></category>
		<category><![CDATA[Software Testing]]></category>
		<category><![CDATA[Types of Software Testings]]></category>

		<guid isPermaLink="false">http://kotipalli.wordpress.com/?p=261</guid>
		<description><![CDATA[Explain Load, Performance, Stress Testing with an example Load Testing and Performance Testing are commonly said as positive testing where as Stress Testing is said to be as negative testing. Say for example there is an application which can handle 25 simultaneous user logins at a time. In load testing we will test the application [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kotipalli.wordpress.com&amp;blog=8223911&amp;post=261&amp;subd=kotipalli&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h3 align="center">Explain Load, Performance, Stress Testing with an example</h3>
<p>Load Testing and Performance Testing are commonly said as positive testing where as Stress Testing is said to be as negative testing.</p>
<p>Say for example there is an application which can handle 25 simultaneous user logins at a time. In load testing we will test the application for 25 users and check how application is working in this stage, in performance testing we will concentrate on the time taken to perform the operation. Where as in stress testing we will test with more users than 25 and the test will continue to any number and we will check where the application is cracking the Hardware resources.</p>
<h3 align="center">What is Security testing?</h3>
<p>It is a process used to look out whether the security features of a system are implemented as designed and also whether they are adequate for a proposed application environment. This process involves functional testing, penetration testing and verification.</p>
<h3 align="center">What is Installation testing?</h3>
<p>Installation testing is done to verify whether the hardware and software are installed and configured properly. This will ensure that all the system components were used during the testing process. This Installation testing will look out the testing for a high volume data, error messages as well as security testing.</p>
<h3 align="center">What is AUT ?</h3>
<p>AUT is nothing but &#8220;Application Under Test&#8221;. After the designing and coding phase in Software development life cycle, the application comes for testing then at that time the application is stated as Application Under Test.</p>
<h3 align="center">What is Negative testing?</h3>
<p><strong>Negative testing -</strong> Testing the system using negative data is called negative testing, e.g. testing the password where it should be a minimum of 8 characters so testing it using 6 characters is negative testing.</p>
<h3 align="center">What is Ad-hoc testing?</h3>
<p>Ad hoc testing is concern with the Application Testing without following any rules or test cases.</p>
<p>For Ad hoc testing one should have strong knowledge about the Application.</p>
<h3 align="center">Describe bottom-up and top-down approaches in Regression Testing.</h3>
<p><strong>Bottom-up approach</strong> : In this approach testing is conducted from sub module to main module, if the <strong>main module</strong> is not developed a temporary program called <strong><span style="text-decoration:underline;">DRIVERS</span></strong> is used to simulate the <strong>main module.</strong></p>
<p><strong>Top-down approach</strong> : In this approach testing is conducted from main module to sub module. if the <strong>sub module</strong> is not developed a temporary program called <strong><span style="text-decoration:underline;">STUB</span></strong> is used for simulate the <strong>submodule.</strong></p>
<h3 align="center">What is the difference between structural and functional testing?</h3>
<p>Structural testing is a &#8220;white box&#8221; testing and it is based on the algorithm or code.</p>
<p>Functional testing is a &#8220;black box&#8221; (behavioral) testing where the tester verifies the functional specification.</p>
<h3 align="center">What is Re- test ? What is Regression Testing ?</h3>
<p><strong>Re- test &#8211; </strong>Retesting means we testing only the certain part of an application again and not considering how it will effect in the other part or in the whole application.</p>
<p><strong>Regression Testing &#8211; </strong>Testing the application after a change in a module or part of the application for testing that is the code change will affect rest of the application.</p>
<h3 align="center">What is UAT testing? When it is to be done?</h3>
<p><strong>UAT testing &#8211; </strong>UAT stands for &#8216;User acceptance Testing. This testing is carried out with the user perspective and it is usually done before the release.</p>
<h3 align="center">What are the basic solutions for the software development problems?</h3>
<ul>
<li><strong>Basic requirements</strong> &#8211; clear, detailed, complete, achievable, testable requirements has to be developed. Use some prototypes to help pin down requirements. In nimble environments, continuous and close coordination with customers/end-users is needed.</li>
<li><strong>Schedules should be realistic</strong> &#8211; enough time to plan, design, test, bug fix, re-test, change, and document in the given schedule.</li>
<li><strong>Adequate testing</strong> – testing should be started early, it should be re-tested after the bug fixed or changed, enough time should be spent for testing and bug-fixing.</li>
<li><strong>Proper study on initial requirements </strong>– be ready to look after more changes after the development has begun and be ready to explain the changes done to others. Work closely with the customers and end-users to manage expectations. This avoids excessive changes in the later stages.</li>
<li><strong>Communication</strong> – conduct frequent inspections and walk-through in appropriate time period; ensure that the information and the documentation is available on up-to-date if possible electronic. More emphasize on promoting teamwork and cooperation inside the team; use prototypes and proper communication with the end-users to clarify their doubts and expectations.</li>
</ul>
<div>
<h3 align="center">What are the common problems in the software development process?</h3>
<ul>
<li><strong>Inadequate requirements from the Client</strong> &#8211; if the requirements given by the client is not clear, unfinished and not testable, then problems may come.</li>
<li><strong>Unrealistic schedule</strong>s – Sometimes too much of work is being given to the developer and ask him to complete in a Short duration, then the problems are unavoidable.</li>
<li><strong>Insufficient testing</strong> – The problems can arise when the developed software is not tested properly.</li>
<li><strong>Given another work under the existing process </strong>– request from the higher management to work on another project or task will bring some problems when the project is being tested as a team.</li>
<li><strong>Miscommunication</strong> – in some cases, the developer was not informed about the Clients requirement and expectations, so there can be deviations.</li>
</ul>
<div>
<h3 align="center">What software testing types can be considered?</h3>
<p><strong>Black box testing</strong> – This type of testing doesn’t require any knowledge of the internal design or coding. These Tests are based on the requirements and functionality.</p>
<p><strong>White box testing</strong> – This kind of testing is based on the knowledge of internal logic of a particular application code. The Testing is done based on the coverage of code statements, paths, conditions.</p>
<p><strong>Unit testing</strong> – the &#8216;micro&#8217; scale of testing; this is mostly used to test the particular functions or code modules. This is typically done by the programmer and not by testers; it requires detailed knowledge of the internal program design and code. It cannot be done easily unless the application has a well-designed architecture with tight code; this type may require developing test driver modules or test harnesses.</p>
<p><strong>Sanity testing or Smoke testing</strong> – This type of testing is done initially to determine if a new software version is performing well enough to accept it for a major testing effort. For example, if the new software is crashing the systems in every 5 minutes or corrupting databases, the software may not be in a &#8216;sound’ condition to proceed for further testing in its current state.</p>
<p><strong>Functional testing</strong> – This a commonly used black-box testing geared to check the functional requirements of an application; this type of testing should be done by testers.</p>
<p><strong>Integration testing</strong> – This testing is combining the ‘parts’ of an application to determine if they function together correctly. The &#8216;parts&#8217; can be code modules, individual applications, client and server applications on a network, etc. This type of testing is especially relevant to the client/server and distributed systems.</p>
<p><strong>Incremental Integration testing</strong> – This is continuous testing of an application when a new functionality is added the existing ones; it checks the application functionality by verifying whether it works separately before all parts of the program are completed, in this type it will be checked whether to introduce test drivers or not; this is done by programmers or by testers.</p>
<p><strong>Regression testing</strong> – This is testing the whole application again after the fixes or the modifications are done on the software. This is mostly done at the end of the Software development life cycle. Mostly Automated testing tools are used for these type of testing.</p>
<p><strong>System testing</strong> – This is a type of black-box type testing that is based on overall requirements specifications; covers all combined parts of a system.</p>
<p><strong>End-to-end testing</strong> – This is similar to system testing; this involves testing of a complete application environment such as interacting with a database, using network communications, or interacting with other hardware, applications and so on.</p>
<p><strong>UAT ( User Acceptance Testing )</strong> – This type of testing comes on the final stage and mostly done on the specifications of the end-user or client.</p>
<p><strong>Usability testing</strong> – This testing is done to check the &#8216;user-friendliness&#8217; of the application. This depends on the targeted end-user or customer. User interviews, surveys, video recording of user sessions, and other techniques can be used. Programmers and testers are usually not appropriate as usability testers.</p>
<p><strong>Compatibility testing</strong> – Testing how well the software performs in a particular hardware, software, operating system, network etc.</p>
<p><strong>Comparison testing</strong> – This is nothing comparing the software strengths and weakness with another competing product.</p>
<p><strong>Mutation testing</strong> – This is another method for determining if a set of test data or test cases is useful, by purposely introducing various code changes or bugs and retesting with the original test data or cases to determine whether the &#8216;bugs&#8217; are detected.</p>
</div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kotipalli.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kotipalli.wordpress.com/261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kotipalli.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kotipalli.wordpress.com/261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kotipalli.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kotipalli.wordpress.com/261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kotipalli.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kotipalli.wordpress.com/261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kotipalli.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kotipalli.wordpress.com/261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kotipalli.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kotipalli.wordpress.com/261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kotipalli.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kotipalli.wordpress.com/261/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kotipalli.wordpress.com&amp;blog=8223911&amp;post=261&amp;subd=kotipalli&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kotipalli.wordpress.com/2011/11/03/types-of-software-testings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a53fb89f9176c585850fb2ebc482614e?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">kotipalli</media:title>
		</media:content>
	</item>
		<item>
		<title>Embedded Questions and Answers</title>
		<link>http://kotipalli.wordpress.com/2010/05/11/embedded-questions-and-answers/</link>
		<comments>http://kotipalli.wordpress.com/2010/05/11/embedded-questions-and-answers/#comments</comments>
		<pubDate>Tue, 11 May 2010 06:25:15 +0000</pubDate>
		<dc:creator>kotipalli</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://kotipalli.wordpress.com/?p=246</guid>
		<description><![CDATA[Related To All the Questions: Memory Related Explanations: Basic concepts on Endianness Big-Endian means that the most significant byte of any multibyte data field is stored at the lowest memory address, which is also the address of the larger field. Little-Endian means that the least significant byte of any multibyte data field is stored at [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kotipalli.wordpress.com&amp;blog=8223911&amp;post=246&amp;subd=kotipalli&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong><span style="color:#ff00ff;">Related To All the Questions:</span></strong></p>
<p><strong><span style="color:#0000ff;">Memory Related Explanations:</span></strong></p>
<p><strong><span style="color:#0000ff;">Basic concepts on Endianness</span></strong></p>
<ul>
<li><strong>Big-Endian</strong> means that the most significant byte of any multibyte data field is stored at the lowest memory address, which is also the address of the larger field.</li>
<li><strong>Little-Endian</strong> means that the least significant byte of any multibyte data field is stored at the lowest memory address, which is also the address of the larger field.</li>
</ul>
<p><strong>How to switch from one format to the other?</strong></p>
<p>It is very easy to reverse a multi-byte number if you need the other format, it is simply a matter of swapping bytes and the conversion is the same in both directions. The following example shows how an Endian conversion function could be implemented using simple C unions:</p>
<p><span style="color:#993366;">unsigned long ByteSwap1 (unsigned long nLongNumber)</span></p>
<p><span style="color:#993366;">{</span></p>
<p><span style="color:#993366;">   union u {unsigned long vi; unsigned char c[sizeof(unsigned long)];};</span></p>
<p><span style="color:#993366;">   union v {unsigned long ni; unsigned char d[sizeof(unsigned long)];};</span></p>
<p><span style="color:#993366;">   union u un;</span></p>
<p><span style="color:#993366;">   union v vn;</span></p>
<p><span style="color:#993366;">   un.vi = nLongNumber;</span></p>
<p><span style="color:#993366;">   vn.d[0]=un.c[3];</span></p>
<p><span style="color:#993366;">   vn.d[1]=un.c[2];</span></p>
<p><span style="color:#993366;">   vn.d[2]=un.c[1];</span></p>
<p><span style="color:#993366;">   vn.d[3]=un.c[0];</span></p>
<p><span style="color:#993366;">   return (vn.ni);</span></p>
<p><span style="color:#993366;">}</span></p>
<p>Note that this function is intented to work with 32-bit integers.</p>
<p>A more efficient function can be implemented using <a href="http://www.codeproject.com/cpp/bitbashing.asp">bitwise operations</a> as shown below:</p>
<p>unsigned long ByteSwap2 (unsigned long nLongNumber)</p>
<p><span style="color:#993366;">{</span></p>
<p><span style="color:#993366;">   return(((nLongNumber&amp;0x000000FF)&lt;&lt;24)+((nLongNumber&amp;0x0000FF00)&lt;&lt;8)+((nLongNumber&amp;0x00FF0000)&gt;&gt;8)+((nLongNumber&amp;0xFF000000)&gt;&gt;24));</span></p>
<p><span style="color:#993366;">}</span></p>
<p><span style="color:#993366;">A 16</span>-bit version of a byte swap function is really straightforward:</p>
<p><span style="color:#993366;">unsigned short ByteSwap4 (unsigned short nValue)</span></p>
<p><span style="color:#993366;">{</span></p>
<p><span style="color:#993366;">   return (((nValue&gt;&gt; 8)) | (nValue &lt;&lt; 8));</span></p>
<p><span style="color:#993366;">}</span></p>
<p>Finally, we can write a more general function that can deal with any atomic data type (e.g. int, float, double, etc) with automatic size detection:</p>
<p><span style="color:#993366;">#include &lt;algorithm&gt; //required for std::swap</span></p>
<p><span style="color:#993366;">#define ByteSwap5(x) ByteSwap((unsigned char *) &amp;x,sizeof(x))</span></p>
<p><span style="color:#993366;">void ByteSwap(unsigned char * b, int n)</span></p>
<p><span style="color:#993366;">{</span></p>
<p><span style="color:#993366;">   register int i = 0;</span></p>
<p><span style="color:#993366;">   register int j = n-1;</span></p>
<p><span style="color:#993366;">   while (i&lt;j)</span></p>
<p><span style="color:#993366;">   {</span></p>
<p><span style="color:#993366;">      std::swap(b[i], b[j]);</span></p>
<p><span style="color:#993366;">      i++, j&#8211;;</span></p>
<p><span style="color:#993366;">   }</span></p>
<p><span style="color:#993366;">}</span></p>
<p>For example, the next code snippet shows how to convert a data array of doubles from one format (e.g. Big-Endian) to the other (e.g. Little-Endian):</p>
<p><span style="color:#993366;">double* dArray; <em>//array in big-endian format</em></span></p>
<p><span style="color:#993366;">int n; <em>//Number of elements</em></span></p>
<p><span style="color:#993366;">for (register int i = 0; i &lt;n; i++)</span></p>
<p><span style="color:#993366;">   ByteSwap5(dArray[i]);</span></p>
<p><strong><a href="http://www.coolinterview.com/interview/4383/" target="_blank"><span style="color:#0000ff;">Who to know whether system uses big endian or little endian format and how to convert among them?</span></a></strong></p>
<p>Here is a small code segment to determine the endianess of a system at run time.<br />
<span style="color:#993366;">1)      short int number = 0&#215;1;<br />
          char *byte = (char*)&amp;number;<br />
          if ( byte[0] )<br />
                    printf(&#8220;Little endian&#8221;);<br />
          else<br />
                    printf(&#8220;Big endian&#8221;);<br />
                                     <span style="color:#0000ff;"> </span></span><span style="color:#993366;"><strong><span style="color:#0000ff;">OR</span><br />
</strong>2)      unsigned int a = 0&#215;01;<br />
a = a&gt;&gt;1;<br />
if(a){<br />
          printf(&#8220;little endian&#8221;);<br />
}</span></p>
<p><span style="color:#993366;">else{<br />
          printf(&#8220;big endian&#8221;);<br />
}</span></p>
<p><strong>How to dynamically test for the Endian type at run time?</strong></p>
<p>You can use the following function to see if your code is running on a Little- or Big-Endian system:</p>
<p><span style="color:#800080;">#define BIG_ENDIAN      0</span></p>
<p><span style="color:#800080;">#define LITTLE_ENDIAN   1</span></p>
<p><span style="color:#800080;">int TestByteOrder()</span></p>
<p><span style="color:#800080;">{</span></p>
<p><span style="color:#800080;">   short int word = 0&#215;0001;</span></p>
<p><span style="color:#800080;">   char *byte = (char *) &amp;word;</span></p>
<p><span style="color:#800080;">   return(byte[0] ? LITTLE_ENDIAN : BIG_ENDIAN);</span></p>
<p><span style="color:#800080;">}</span></p>
<p><span style="color:#800080;">This code</span> assigns the value 0001h to a 16-bit integer. A char pointer is then assigned to point at the first (least-significant) byte of the integer value. If the first byte of the integer is 0x01h, then the system is Little-Endian (the 0x01h is in the lowest, or least-significant, address). If it is 0x00h then the system is Big-Endian.</p>
<p>Similarly,</p>
<p><span style="color:#800080;">bool IsBigEndian()</span></p>
<p><span style="color:#800080;">{</span></p>
<p><span style="color:#800080;">   short word = 0&#215;4321;</span></p>
<p><span style="color:#800080;">   if((*(char *)&amp; word) != 0&#215;21 )</span></p>
<p><span style="color:#800080;">     return true;</span></p>
<p><span style="color:#800080;">   else</span></p>
<p><span style="color:#800080;">     return false;</span></p>
<p><span style="color:#800080;">}</span></p>
<p>which is just the reverse of the same coin.</p>
<p>You can also use the standard byte order API�s to determine the byte-order of a system at run-time. For example:</p>
<p><span style="color:#800080;">bool IsBigEndian() { return( htonl(1)==1 ); }</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kotipalli.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kotipalli.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kotipalli.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kotipalli.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kotipalli.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kotipalli.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kotipalli.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kotipalli.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kotipalli.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kotipalli.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kotipalli.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kotipalli.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kotipalli.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kotipalli.wordpress.com/246/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kotipalli.wordpress.com&amp;blog=8223911&amp;post=246&amp;subd=kotipalli&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kotipalli.wordpress.com/2010/05/11/embedded-questions-and-answers/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a53fb89f9176c585850fb2ebc482614e?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">kotipalli</media:title>
		</media:content>
	</item>
		<item>
		<title>What is SAE J1939?</title>
		<link>http://kotipalli.wordpress.com/2010/04/02/what-is-sae-j1939-2/</link>
		<comments>http://kotipalli.wordpress.com/2010/04/02/what-is-sae-j1939-2/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 06:45:16 +0000</pubDate>
		<dc:creator>kotipalli</dc:creator>
				<category><![CDATA[Embedded Automotive Domain]]></category>
		<category><![CDATA[Embedded Concepts]]></category>

		<guid isPermaLink="false">http://kotipalli.wordpress.com/?p=236</guid>
		<description><![CDATA[What is SAE J1939? The Society of Automotive Engineers (SAE) developed the J1939 standard to be the preferred CAN for equipment used in industries ranging from agriculture, construction, and fire/rescue to forestry, materials handling as well as on and off-highway vehicles. It is a high-level protocol that defines how communication between nodes (modules) occurs on [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kotipalli.wordpress.com&amp;blog=8223911&amp;post=236&amp;subd=kotipalli&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong><span style="color:#3366ff;">What is SAE J1939?</span></strong></p>
<p style="text-align:justify;">The Society of Automotive Engineers (SAE) developed the J1939 standard to be the preferred CAN for equipment used in industries ranging from agriculture, construction, and fire/rescue to forestry, materials handling as well as on and off-highway vehicles. <strong>It is a high-level protocol that defines how communication between nodes (modules) occurs on the bus</strong>. The J1939 network is a <strong>specific</strong> communication system, supporting <strong>specific </strong>sets of applications and a <strong>specific </strong>industry, rather than being generalized.</p>
<p> <strong><span style="color:#3366ff;">What kinds of messages are sent on a J1939 network?</span></strong></p>
<p>Any electronic control unit (ECU) using J1939 is permitted to transmit a message on the network <strong>when the bus is idle</strong>. Every message includes a <strong>29-bit identifier</strong>, which defines the message priority, what data is contained <strong>within the 8-byte data array that follows the identifier</strong>, and which ECU sent the message.</p>
<p><strong><span style="color:#3366ff;">What is a PGN?</span></strong></p>
<p>A Parameter Group Number (PGN) is a part of the <strong>29-bit identifier</strong> sent with every message. The <strong>PGN</strong> is a combination of the <strong>Reserved bit (always 0), the data page bit (currently only 0,</strong> 1 is reserved for future use), the PDU Format (<strong>PF</strong>) and PDU Specific (<strong>PS</strong>). PDU stands for Protocol Data Unit, and can also be read as the message format. <strong>The PF and PS are both a byte (8-bits) long.</strong></p>
<p> <strong>The PS is dependent on the value in the PF field</strong>. If the PF value is between <strong>0</strong> and <strong>239</strong>, the PS field will contain the destination address of the node that will receive the message. If the Global Address (<strong>FF16</strong>) is used, then all nodes on the bus will receive the message. This type of message, &#8221; one that can be directed to a specific ECU on the bus by sending the message to its address &#8220;, is called a <strong><span style="color:#cc99ff;">PDU1 message.</span></strong></p>
<p> If the PF field is between <strong>240</strong> and <strong>255</strong>, then the PS field will contain a <strong>Group Extension (GE).</strong> The GE provides a larger set of values to identify messages that are broadcasted to all nodes on the network. This type of message, &#8221; one that is sent to all ECUs on the bus &#8220;, is called a <span style="color:#cc99ff;">PDU2 message.</span></p>
<p> The PGN uniquely identifies the Parameter Group (<strong>PG</strong>) that is being transmitted in the message. Each PG (a grouping of specific parameters) has a definition that includes the assignment of each parameter within the 8-byte data field (size in bytes, location of LSB), and the transmission rate and priority of the message. The structure of a <strong>PGN permits a total of up to 8672 </strong>different parameter groups to be defined per page.</p>
<p> When an ECU receives a message, it uses the PGN in the identifier to recognize the type of data that was sent in the message.</p>
<p><span style="color:#3366ff;"> <strong>What is an SPN?</strong></span></p>
<p>Each parameter used in the J1939 network is described by the standard. A Suspect Parameter Number (SPN) is a number that has been assigned by the SAE committee to a specific parameter. Each SPN has the following detailed information associated with it: <strong>data length (in bytes); data type; resolution, offset; range; and a tag (label) for reference</strong>. SPNs that share common characteristics will be grouped into a Parameter Group (PG) and will be transmitted to the network using the same PGN.</p>
<p><strong><span style="color:#3366ff;">What happens if my ECU has parameters that have not been assigned an SPN by the SAE Committee?</span></strong></p>
<p>The J1939 standard has two types of messages (PGNs) that can be used by manufacturers to handle parameters or messages that are not already covered by the standard.</p>
<p>The Proprietary <strong>A PGN (00EF0016)</strong> is a <strong>PDU1 message</strong>, and is used where the manufacture wants to direct the message to a specific destination node. How the data field of this message is used is up to each manufacturer.</p>
<p>Alternatively, Proprietary <strong>B PGNs (00FF0016 to 00FFFF16) are PDU2</strong> messages allowing the manufacture to define the GE fields, as they desire. The data length and how the data fields of these messages are used are up to each manufacturer. Two manufacturers may use the same GE value, and the receivers of the information would have to differentiate between the two manufactures.</p>
<p><strong><span style="color:#3366ff;">What happens if I have to send more than 8-bytes of data?</span></strong></p>
<p>The J1939 standard has defined a method of communicating more than 8 bytes of data by sending the data in packets as specified in the Transport Protocol (TP). There are <strong>two types of TP</strong>, one for broadcasting the data, and the other for sending it to a specific address.</p>
<p>A <strong>Broadcast Announce Message (BAM)</strong> is received by all ECUs on the network, and they do not have to send any messages back to the originator in order for the BAM session to proceed. In a BAM session the transmitting module simply sends the data packets one after another at a predefined rate.</p>
<p>A specific TP, however, it directed at a particular address. The ECU at that address must respond to the commands sent by the transmitting module in order for the TP session to proceed. To begin a session, the originator sends a <strong>Request to Send (RTS)</strong> and the responder sends a <strong>Clear to Send (CTS)</strong>. For this reason, this type of TP is called an <strong>RTS/CTS session</strong>. Either the originator or the responder can <strong>abort</strong> an RTS/CTS session at any time.</p>
<p><strong>It is not mandatory for all J1939 ECUs to support TP sessions</strong>. If, however, the module does support TP, it must be able to, at a minimum, support one BAM and one RTS/CTS session concurrently from the same source address. It can only originate one destination specific connection with a given destination at a time, but an ECU might be able to support simultaneous CTS/RTS sessions with different addresses. Check with the manufacturer whether or not a node can support multiple simultaneous TP sessions (RTS/CTS and/or BAM).</p>
<p><strong><span style="color:#3366ff;">How are diagnostics supported?</span></strong></p>
<p>A Diagnostic Message (DM) may be sent and/or received by an ECU. If the ECU supports diagnostic messaging, each type of potential fault in the module will have associated with it a Diagnostic Trouble Code (DTC).</p>
<p>A DTC is a combination of four independent fields: the Suspect Parameter Number (SPN) of the channel or feature that can have faults; a Failure Mode Identifier (<strong>FMI</strong>) of the specific fault; the occurrence count (<strong>OC</strong>) of the SPN/FMI combination; and the SPN conversion method (<strong>CM</strong>) which tells the receiving mode how to interpret the SPN. Together, the SPN, FMI, OC and CM form a number that a diagnostic tool can use to understand the failure that is being reported.</p>
<p>When an ECU detects a fault, it will send an Active Diagnostic Trouble Code, DM1, message. The DM1 message send by the ECU will also contain the status lamps of the module. While the fault is still present, the ECU will continue to broadcast the DM1 message to the network every second. When the fault clears, the ECU will send a final DM1 message showing that there are no further faults present. If multiple faults are present simultaneously, the ECU will send all the active faults in a single DM1 by using the Broadcast Announce Message (BAM) in a Transport Protocol session. Refer to a product&#8217;s datasheet to see if it will send a DM1, and what type of DTCs it supports.</p>
<p>An ECU on the bus may respond to the data in the DM1, or a diagnostic tool may be connected to the network to show an operator all the active faults on the network. Refer to a product&#8217;s datasheet to see if and how it will respond to a DM1.</p>
<p>There are lots of other features for diagnostics, such as retrieval of information from a log by requesting a DM2, Previously Active DTCs, which are supported by the J1939 standard.</p>
<p><strong><span style="color:#3366ff;">What is a NAME, and why is it important?</span></strong></p>
<p>A J1939 NAME is comprised of the following fields: Arbitrary Address Capable; Industry Group; Vehicle System Instance; Vehicle System; Reserved Bit; Function; Function Instance; ECU Instance; Manufacturer Code; and Identity Number.</p>
<p>Every ECU on a J1939 network has an exclusive combination of the above fields, <strong>which results in a unique NAME for each module</strong>. The NAME is not only used to identify the module to other nodes on the bus, <strong>but it is also used in Network Management</strong>. The combination of the NAME field will form a number, and the lower numeric value NAMEs have a higher priority. If more than one node on the network attempt to claim the same address, they will arbitrate for the address, and the module with the higher priority NAME will be able to claim the address.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kotipalli.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kotipalli.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kotipalli.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kotipalli.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kotipalli.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kotipalli.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kotipalli.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kotipalli.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kotipalli.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kotipalli.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kotipalli.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kotipalli.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kotipalli.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kotipalli.wordpress.com/236/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kotipalli.wordpress.com&amp;blog=8223911&amp;post=236&amp;subd=kotipalli&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kotipalli.wordpress.com/2010/04/02/what-is-sae-j1939-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a53fb89f9176c585850fb2ebc482614e?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">kotipalli</media:title>
		</media:content>
	</item>
		<item>
		<title>Embedded Systems Interview Questions</title>
		<link>http://kotipalli.wordpress.com/2010/02/16/embedded-systems-interview-questions-by-jd/</link>
		<comments>http://kotipalli.wordpress.com/2010/02/16/embedded-systems-interview-questions-by-jd/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 04:45:43 +0000</pubDate>
		<dc:creator>kotipalli</dc:creator>
				<category><![CDATA[Embedded Concepts]]></category>

		<guid isPermaLink="false">http://kotipalli.wordpress.com/?p=227</guid>
		<description><![CDATA[What is the difference between Synchronous and Asynchronous? Asynchronous Communication (independent transmit &#38; receive clocks) Asynchronous transmission uses start &#38; stop bits which are added at the start &#38; end of data segments. Asynchronous transmission provides 38.4 Kbps speed. Simple interface (limited data rate, typically &#60; 64 kbps) Used for connecting: Printer, Terminal, Modem, home [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kotipalli.wordpress.com&amp;blog=8223911&amp;post=227&amp;subd=kotipalli&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong><span style="color:#0000ff;">What is the difference between Synchronous and Asynchronous?</span></strong></p>
<p>Asynchronous Communication (independent transmit &amp; receive clocks)</p>
<ul>
<li>Asynchronous transmission uses start &amp; stop bits which are added at the start &amp; end of data segments.</li>
<li>Asynchronous transmission provides 38.4 Kbps speed<sub>.</sub></li>
<li>Simple interface (limited data rate, typically &lt; 64 kbps)</li>
<li>Used for connecting: Printer, Terminal, Modem, home connections to the Internet</li>
<li>No clock sent (Tx &amp; Rx have own clocks)</li>
<li>Requires start and stop bits which provides byte timing and increases overhead</li>
<li>Parity often used to validate correct reception</li>
</ul>
<p>Ex:UART</p>
<p><strong>Synchronous Communication </strong><strong>(synchronised transmit &amp; receive clocks)</strong></p>
<ul>
<li>Synchronous Transmission does not start &amp; stop bits for sending data segments so a faster transmission speed is achieved</li>
<li>Synchronous transmission provides 64 or 128 Kbps speed but</li>
<li>More complex interface (high data rates supported up to ~ 10 Gbps)</li>
<li>Used for: Connections between computer and telephony networks</li>
<li>Clock sent with data (more configuration options)</li>
</ul>
<p>Ex:I2C and SPI </p>
<p><strong><span style="color:#0000ff;">What is the difference between RS232 and UART?</span></strong></p>
<p>RS232 is a specification for serial communications between a DCE and DTE (eg, computer and modem); it defines electrical characteristics, the 25-way &#8216;D&#8217; connector and the various functions of the various signal lines.</p>
<p>A UART is a Univeral Asynchronous Receiver and Transmitter &#8211; it is an electronic circuit which handles communication over an asynchronous serial interface &#8211; very often an RS232 interface.</p>
<p>A USART is a Univeral Synchronous/Asynchronous Receiver and Transmitter &#8211; it&#8217;s like a UART, but also supports Synchronous links</p>
<p>USART is hardware &#8211; Universal Synchronous Asynchronous Receive &amp; Transmit Engine.<br />
No fixed protocol (7,8 or 9 bit with or without Receiver Addressing) but is normally capable of protocols that incorporate:</p>
<p>Asynchronous &#8211; usually RS232, RS422 &amp; RS485 &#8211; two wires TX &amp; RX with pre-defined data rate and receiving synchronised to incoming data stream. No pre-defined master or slave and may be full duplex.</p>
<p>Synchronous &#8211; two wires, fixed Clock (from single master) and Data &#8211; half-duplex &#8211; 8 or 9 bit &amp; no slave address</p>
<p>SPI is a communication protocol &#8211; normally a three wire, synchronous, single master, multi-slave &amp; duplex system. Wires are Master-Clock, Data In, Data Out &amp; Slave Select(n).</p>
<p><strong><span style="color:#0000ff;">What is the difference between rs232 and rs485 port?</span></strong></p>
<p><strong>RS232 </strong><strong><br />
</strong>full duplex<br />
point to point<br />
short distance(1 meter) at 115kbaud<br />
at least 3 wires (more with handshake control)<strong> </strong><strong></p>
<p>RS485<br />
</strong>half duplex<br />
point to multi-point (master to multiple slaves)<br />
1200 m distance at 115kbaud<br />
2 wire (RS422 uses 4 wires)</p>
<p>Difference between Rs232 and RS485 is Only Distance RS232 is not for long or far distance.. But RS485 can be use for LONGEST distance ..</p>
<p>RS232 is single ended communication where as RS485 is Differential communication.</p>
<p>Max.no of receivers in RS232 is only ONE, whereas in RS485 is 32.</p>
<p>Max.no of transmitters in RS232 is only ONE whereas in RS485 is 32.</p>
<p>IN RS232 there is no pin to change from transmitter mode receiver mode. But, In RS485 have DE pin to set transmitter mode and RI to set receiver mode.</p>
<p><strong><span style="color:#0000ff;">Baud Rate Formula</span></strong></p>
<p><strong> </strong></p>
<p style="padding-left:30px;">
#include&lt;reg51.h&gt;</p>
<p>void main()<br />
{<br />
unsigned char i = 0xAA;</p>
<p>PCON |= 0&#215;80; //Double the baud rate value<br />
SCON = 0&#215;50; //REN enable &amp; 8-bit uart enable<br />
TMOD = 0&#215;02; //Select auto reload mode in timer 1<br />
TL1 = 0xA0; //Lower Byte<br />
TH1 = 0&#215;96; //Upper Byte<br />
TR1=1; //enable timer</p>
<p>while(1)<br />
{<br />
WDT_RST = 0xA1;</p>
<p>if(TF1)<br />
TF1=0;</p>
<p>if(TI)<br />
{<br />
TI=0;<br />
SBUF=i;</p>
<p>}</p>
<p>if(RI)<br />
{<br />
RI=0;<br />
value=SBUF;<br />
SBUF=value;<br />
}<br />
}<br />
}<br />
for this program i choose the baud rate by using the following formula which i came to know by manual.<br />
<strong><span style="color:#ff6600;">baudrate=((2^smod)32*Oscillator Frequency)/(24*(256-TH1))</span></strong></p>
<p><strong><span style="color:#0000ff;">Framing in Data Transmissions</span></strong></p>
<p>UART Communication is bit oriented communication</p>
<ul>
<li><strong>Byte-oriented framing</strong>    Computer data is normally stored as alphanumeric characters that are encoded with a combination of 8 bits (1 byte). This type of framing differentiates one byte from another. It is an older style of framing that was used in the terminal/mainframe environment. Examples of byte-oriented framing include IBM&#8217;s BISYNC protocol.</li>
</ul>
<p> </p>
<ul>
<li><strong>Bit-oriented framing</strong>    This type of framing allows the sender to transmit a long string of bits at one time. IBM&#8217;s SDLC (Synchronous Data Link Control) and HDLC (High-level Data Link Control) are examples of bit-oriented protocols. Most LANs use bit-oriented framing. There is usually a maximum frame size. For example, Ethernet has a maximum frame size of 1,526 bytes. The beginning and end of a frame is signaled with a special bit sequence (01111110 for HDLC). If no data is being transmitted, this same sequence is continuously transmitted so the end systems remain synchronized.</li>
</ul>
<p> </p>
<ul>
<li><strong>Clock-based framing</strong>    In a clock-based system, a series of repetitive pulses are used to maintain a constant bit rate and keep the digital bits aligned in the data stream. SONET (Synchronous Optical Network) is a synchronous system in which all the clocks in the network are synchronized back to a master clock reference. SONET frames are then positioned within the clocked stream.</li>
</ul>
<p><strong><span style="color:#0000ff;">What is the maximum distance of the I2C bus?</span></strong></p>
<p>This depends on the load of the bus and the speed you run at. In typical applications, the length is a few meters (9-12ft). The maximum capacitive load has been specified (see also the electrical Spec&#8217;s in the I2C FAQ). Another thing to be taken into account is the amount of noise picked up by long cabling. This noise can disturb the signal transmitted over the bus so badly that it becomes unreadable.</p>
<p>The length can be increased significantly by running at a lower clock frequency. One particular application &#8211; clocked at about 500Hz &#8211; had a bus length of about 100m (300ft). If you are careful in routing your PCB&#8217;s and use proper cabling (twisted pair and/or shielded cable), you can also gain some length.</p>
<p>If you need to go far at high speed, you can use an active current source instead of a simple pull-up resistor. Philips has a standalone product for this purpose. Using a charge pump also reduces &#8220;ghost signals&#8221; caused by reflections at the end of the bus lines.</p>
<p><strong><span style="color:#0000ff;">I&#8217;d like to extend the I2C bus. Is there something like a repeater for I2C?</span></strong></p>
<p>Yes indeed this exists. Philips manufactures a special chip to buffer the bi-directional lines of the I2C bus. Typically, this is a current amplifier. It  forces current into the wiring (a couple of mA). That way you can overcome the capacitance of long wiring.</p>
<p>However, you will need this component on both sides of the line. The charge pump in this devices can deliver currents up to 30mA which is way too much for a normal I2C chip to handle. With these buffers you can handle loads up to 2nF. The charge amplifier &#8216;transforms&#8217; this load down to a 200pF load which is still acceptable by I2C components.</p>
<p><strong><span style="color:#0000ff;">Difference between spi and i2c?</span></strong></p>
<p>SPI or CSI is a simple master/slave communication protocol.</p>
<p>I2C is a networking communication protocol with a multi-master support</p>
<p>Incase of I2C programmer has to take care of right sequence of data transfer on bus like address, start, stop, ack, nak etc&#8230;<br />
where as in case of SPI just SS (slave select) is to be managed and data read/write is done from SSPDAT register</p>
<p>1) I2C is half duplex while SPI can be full duplex.<br />
2) Device addressing in I2C is simple because it uses Addresses as part of the data stream. SPI generally requires additional Chip Select signals.<br />
3) SPI can achieve much higher data rates compared to I2C.</p>
<p><strong><span style="color:#0000ff;">context switch</span></strong></p>
<p>A context switch is the computing process of storing and restoring the state (context) of a CPU so that execution can be resumed from the same point at a later time. This enables multiple processes to share a single CPU resource. The context switch is an essential feature of a multitasking operating system. Context switches are usually computationally intensive and much of the design of operating systems is to optimize the use of context switches. A context switch can mean a register context switch, a task context switch, a thread context switch, or a process context switch. What constitutes the context is determined by the processor and the operating system. Switching from one process to another requires a certain amount of time for doing the administration &#8211; saving and loading registers and memory maps, updating various tables and list etc.</p>
<p><strong><span style="color:#0000ff;">Interrupts</span></strong></p>
<p>An interrupt is an event in hardware that triggers the processor to jump from its current program counter to a specific point in the code. Interrupts are designed to be special events whose occurrence cannot be predicted precisely (or at all). The MSP has many different kinds of events that can trigger interrupts, and for each one the processor will send the execution to a unique, specific point in memory. Each interrupt is assigned a word long segment at the upper end of memory. This is enough memory for a jump to the location in memory where the interrupt will actually be handled. Interrupts in general can be divided into two kinds- maskable and non-maskable. A maskable interrupt is an interrupt whose trigger event is not always important, so the programmer can decide that the event should not cause the program to jump. A non-maskable interrupt (like the reset button) is so important that it should never be ignored. The processor will always jump to this interrupt when it happens. Often, maskable interrupts are turned off by default to simplify the default behavior of the device. Special control registers allow non-maskable and specific non-maskable interrupts to be turned on. Interrupts generally have a &#8220;priority;&#8221; when two interrupts happen at the same time, the higher priority interrupt will take precedence over the lower priority one. Thus if a peripheral timer goes off at the same time as the reset button is pushed, the processor will ignore the peripheral timer because the reset is more important (higher priority).</p>
<p><strong><span style="color:#0000ff;">interrupt service routine (ISR)</span></strong></p>
<p>An interrupt service routine (ISR) is a software routine that hardware invokes in response to an interrupt. ISRs examine an interrupt and determine how to handle it. ISRs handle the interrupt, and then return a logical interrupt value. If no further handling is required because the device is disabled or data is buffered, the ISR notifies the kernel with a SYSINTR_NOP return value. An ISR must perform very fast to avoid slowing down the operation of the device and the operation of all lower priority ISRs.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kotipalli.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kotipalli.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kotipalli.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kotipalli.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kotipalli.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kotipalli.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kotipalli.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kotipalli.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kotipalli.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kotipalli.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kotipalli.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kotipalli.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kotipalli.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kotipalli.wordpress.com/227/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kotipalli.wordpress.com&amp;blog=8223911&amp;post=227&amp;subd=kotipalli&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kotipalli.wordpress.com/2010/02/16/embedded-systems-interview-questions-by-jd/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a53fb89f9176c585850fb2ebc482614e?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">kotipalli</media:title>
		</media:content>
	</item>
		<item>
		<title>Om Sri Swamy Ayappa</title>
		<link>http://kotipalli.wordpress.com/2010/02/10/om-sri-swamy-ayappa/</link>
		<comments>http://kotipalli.wordpress.com/2010/02/10/om-sri-swamy-ayappa/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 07:10:11 +0000</pubDate>
		<dc:creator>kotipalli</dc:creator>
				<category><![CDATA[Swamy Ayappa]]></category>

		<guid isPermaLink="false">http://kotipalli.wordpress.com/?p=212</guid>
		<description><![CDATA[<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kotipalli.wordpress.com&amp;blog=8223911&amp;post=212&amp;subd=kotipalli&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[
<a href='http://kotipalli.wordpress.com/2010/02/10/om-sri-swamy-ayappa/257_001-2/' title='257_001'><img data-attachment-id='211' data-orig-size='1024,768' data-liked='0'width="150" height="112" src="http://kotipalli.files.wordpress.com/2010/02/257_001.jpg?w=150&#038;h=112" class="attachment-thumbnail" alt="257_001" title="257_001" /></a>

<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kotipalli.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kotipalli.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kotipalli.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kotipalli.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kotipalli.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kotipalli.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kotipalli.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kotipalli.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kotipalli.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kotipalli.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kotipalli.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kotipalli.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kotipalli.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kotipalli.wordpress.com/212/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kotipalli.wordpress.com&amp;blog=8223911&amp;post=212&amp;subd=kotipalli&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kotipalli.wordpress.com/2010/02/10/om-sri-swamy-ayappa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a53fb89f9176c585850fb2ebc482614e?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">kotipalli</media:title>
		</media:content>

		<media:content url="http://kotipalli.files.wordpress.com/2010/02/257_001.jpg?w=150" medium="image">
			<media:title type="html">257_001</media:title>
		</media:content>
	</item>
		<item>
		<title>Variables and Data Storage</title>
		<link>http://kotipalli.wordpress.com/2009/09/28/variables-and-data-storage/</link>
		<comments>http://kotipalli.wordpress.com/2009/09/28/variables-and-data-storage/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 15:08:27 +0000</pubDate>
		<dc:creator>kotipalli</dc:creator>
				<category><![CDATA[Chapter-2]]></category>
		<category><![CDATA[Embedded Concepts]]></category>
		<category><![CDATA[Frequently Asking Questions in C]]></category>

		<guid isPermaLink="false">http://kotipalli.wordpress.com/?p=188</guid>
		<description><![CDATA[Where in memory are my variables stored? Variables can be stored in several places in memory, depending on their lifetime. Variables that are defined outside any function (whether of global or file static scope), and variables that are defined inside a function as static variables, exist for the lifetime of the program’s execution. These variables [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kotipalli.wordpress.com&amp;blog=8223911&amp;post=188&amp;subd=kotipalli&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="color:#3366ff;"><strong><em>Where in memory are my variables stored?</em></strong></span></p>
<p><span style="color:#333333;"><em>Variables can be stored in several places in memory, depending on their lifetime. Variables that are defined outside any function (whether of global or file static scope), and variables that are defined inside a function as static variables, exist for the lifetime of the program’s execution. <strong>These variables are stored in the “data segment.”</strong> The data segment is a fixed-size area in memory set aside for these variables. The data segment is subdivided into two parts, one for <strong>initialized variables</strong> and another for <strong>uninitialized variables.</strong></em></span></p>
<p><span style="color:#333333;"><em>Variables that are defined inside a function as auto variables (that are not defined with the keyword static) come into existence when the program begins executing the block of code (delimited by curly braces {}) containing them, and they cease to exist when the program leaves that block of code. Variables that are the arguments to functions exist only during the call to that function. These variables are stored on the “stack.” <strong>The stack is an area of memory that starts out small and grows automatically up to some predefined limit. </strong>In DOS and other systems without virtual memory, the limit is set either when the program is compiled or when it begins executing. In UNIX and other systems with virtual memory, the limit is set by the system, and it is usually so large that it can be ignored by the programmer.</em></span></p>
<p><span style="color:#333333;"><em>The third and final area doesn’t actually store variables but can be used to store data pointed to by variables. Pointer variables that are assigned to the result of a call to the malloc() function contain the address of a dynamically allocated area of memory. This memory is in an area called the “heap.” The heap is another area that starts out small and grows, but it grows only when the programmer explicitly calls malloc() or other memory allocation functions, such as calloc(). The heap can share a memory segment with either the data segment or the stack, or it can have its own segment. It all depends on the compiler options and operating system. The heap, like the stack, has a limit on how much it can grow, and the same rules apply as to how that limit is determined.</em></span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kotipalli.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kotipalli.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kotipalli.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kotipalli.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kotipalli.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kotipalli.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kotipalli.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kotipalli.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kotipalli.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kotipalli.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kotipalli.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kotipalli.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kotipalli.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kotipalli.wordpress.com/188/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kotipalli.wordpress.com&amp;blog=8223911&amp;post=188&amp;subd=kotipalli&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kotipalli.wordpress.com/2009/09/28/variables-and-data-storage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a53fb89f9176c585850fb2ebc482614e?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">kotipalli</media:title>
		</media:content>
	</item>
	</channel>
</rss>
