<?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>EmbLogic &#187; Kamran Ali</title>
	<atom:link href="https://www.emblogic.com/blog/author/kamran/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.emblogic.com/blog</link>
	<description>Embedded System and ARM Training</description>
	<lastBuildDate>Tue, 03 Mar 2020 13:00:06 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.9.1</generator>
	<item>
		<title>TOOLCHAIN!!!</title>
		<link>https://www.emblogic.com/blog/01/toolchain/</link>
		<comments>https://www.emblogic.com/blog/01/toolchain/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 05:49:02 +0000</pubDate>
		<dc:creator><![CDATA[Kamran Ali]]></dc:creator>
				<category><![CDATA[Embedded Linux]]></category>

		<guid isPermaLink="false">http://emblogic.org/blog/?p=1790</guid>
		<description><![CDATA[while constructing the tool chain i have got some of the error, if any one have the same error do let me know of the solution. ERROR 1 unable to find&#8230;/libiberty/libiberty.a ERROR 2 unable to get the full time stamp]]></description>
				<content:encoded><![CDATA[<p>while constructing the tool chain i have got some of the error, if any one have the same error do let me know of the solution.<br />
ERROR 1 unable to find&#8230;/libiberty/libiberty.a<br />
ERROR 2 unable to get the full time stamp</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/01/toolchain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Serial Port Driver</title>
		<link>https://www.emblogic.com/blog/01/serial-port-driver/</link>
		<comments>https://www.emblogic.com/blog/01/serial-port-driver/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 08:42:11 +0000</pubDate>
		<dc:creator><![CDATA[Kamran Ali]]></dc:creator>
				<category><![CDATA[Serial Port Driver]]></category>

		<guid isPermaLink="false">http://emblogic.org/blog/?p=1694</guid>
		<description><![CDATA[Following is the code prepared by me.Only interrupt is left working on it.It is done for a loop back process.Any mistake &#8230; leave the comments #include&#8221;header.h&#8221; static int my_proc (char * buf, char ** start,off_t off, int count) { int &#8230; <a href="https://www.emblogic.com/blog/01/serial-port-driver/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Following is the code prepared by me.Only interrupt is left working on it.It is done for a loop back process.Any mistake &#8230; leave the comments</p>
<p>#include&#8221;header.h&#8221;</p>
<p>static int my_proc (char * buf, char ** start,off_t off, int count)<br />
{<br />
	int intr_id,lsr,msr,len=0;<br />
	int baudrate,div_lacth,lcr;<br />
	#ifdef PRINT<br />
	printk(KERN_INFO &#8220;Begin : &#8216;%s&#8217;\n&#8221;,__func__);<br />
	#endif</p>
<p>	intr_id = inb(SERIAL_IIR);<br />
	lsr = inb(SERIAL_LSR);<br />
	msr = inb(SERIAL_MSR);</p>
<p>	lcr = inb(SERIAL_LCR);<br />
	outb(lcr | 0&#215;80 , SERIAL_LCR);<br />
	div_lacth = inw(SERIAL_DLL);<br />
	outb(lcr,SERIAL_LCR);</p>
<p>	baudrate = CLOCKRATE / div_lacth;</p>
<p>	len = len + sprintf(buf+len, &#8220;Baudrate = %d\n&#8221;,baudrate);<br />
	len = len + sprintf(buf+len, &#8220;Data Format = %d\n&#8221;, 5+(lcr &amp; 3));<br />
	len = len + sprintf(buf+len, &#8220;MSR = %02x\n&#8221;,msr);<br />
	len = len + sprintf(buf+len, &#8220;LSR = %02x\n&#8221;,lsr);<br />
	len = len + sprintf(buf+len, &#8220;Interrupt ID = %02x\n&#8221;,intr_id);<br />
	len = len + sprintf(buf+len, &#8220;\n&#8221;);</p>
<p>	#ifdef PRINT<br />
	printk(KERN_INFO &#8220;Exit : &#8216;%s&#8217;\n&#8221;,__func__);<br />
	#endif</p>
<p>return len;<br />
}</p>
<p>static int my_open(struct inode *inode, struct file *filp)<br />
{</p>
<p>	#ifdef PRINT<br />
	printk(KERN_INFO &#8220;Begin :&#8217;%s&#8217;\n&#8221;,__func__);<br />
	printk(KERN_INFO &#8220;Device_Open = %d\n&#8221;,Device_Open);<br />
	#endif</p>
<p>	if(Device_Open)<br />
	{<br />
		#ifdef PRINT<br />
		printk(KERN_INFO &#8220;The driver is busy\n&#8221;);<br />
		#endif<br />
		return -EBUSY;<br />
	}<br />
	Device_Open ++;</p>
<p>	//MOD_INC_USE_COUNT(THIS_MODULE);<br />
	try_module_get(THIS_MODULE);<br />
	#ifdef PRINT<br />
	printk(KERN_INFO &#8220;Exit :&#8217;%s&#8217;\n&#8221;,__func__);<br />
	#endif<br />
return 0;<br />
}</p>
<p>static int my_release(struct inode *inode, struct file *filp)<br />
{<br />
	#ifdef PRINT<br />
	printk(KERN_INFO &#8220;Begin :&#8217;%s&#8217;\n&#8221;,__func__);<br />
	#endif</p>
<p>	Device_Open &#8211;;<br />
	#ifdef PRINT<br />
	printk(KERN_INFO &#8220;Decrementing the value of Device_Open, new value is %d\n&#8221;,Device_Open);<br />
	#endif</p>
<p>	//MOD_INC_COUNT(THIS_MODULE);<br />
	module_put(THIS_MODULE);<br />
	#ifdef PRINT<br />
	printk(KERN_INFO &#8220;Decrementing the count in the kernel\n&#8221;);<br />
	#endif</p>
<p>	#ifdef PRINT<br />
	printk(KERN_INFO &#8220;Exit :&#8217;%s&#8217;\n&#8221;,__func__);<br />
	#endif<br />
return 0;<br />
}</p>
<p>int my_ioctl(struct inode *inode, struct file *filp, unsigned int request, unsigned long address)<br />
{<br />
	int lcr,div_lacth,baudrate = 0 ;<br />
	int *there = (int *) address;<br />
	#ifdef PRINT<br />
	printk(KERN_INFO &#8220;Begin :&#8217;%s&#8217;\n&#8221;,__func__);<br />
	#endif</p>
<p>	switch(request)<br />
	{<br />
		case IOCTL_GET_BAUDRATE:<br />
			lcr = inb(SERIAL_LCR);<br />
			outb(inb(SERIAL_LCR) | 0&#215;80, SERIAL_LCR);<br />
			div_lacth = inw(SERIAL_DLL);<br />
			outb(lcr,SERIAL_LCR);</p>
<p>			if(div_lacth &gt; 0)<br />
			{<br />
				baudrate = CLOCKRATE / div_lacth;<br />
				#ifdef PRINT<br />
				printk(KERN_INFO &#8220;div_lacth = %d\n&#8221;,div_lacth);<br />
				printk(KERN_INFO &#8220;baudrate = %d\n&#8221;,baudrate);<br />
				printk(KERN_INFO &#8220;Clockrate = %d&#8221;,CLOCKRATE);<br />
				#endif<br />
			}</p>
<p>			if(copy_to_user(there, &amp;baudrate, 4))<br />
			{<br />
				#ifdef PRINT<br />
				#endif<br />
				return -EFAULT;<br />
			}<br />
		return 0;<br />
		break;</p>
<p>		case IOCTL_SET_BAUDRATE:<br />
			if(copy_from_user(&amp;baudrate, there, 4))<br />
			{<br />
				#ifdef PRINT<br />
				#endif<br />
				return -EFAULT;<br />
			}</p>
<p>			if((baudrate  CLOCKRATE))<br />
			{<br />
				#ifdef PRINT<br />
				#endif<br />
				return -EFAULT;<br />
			}</p>
<p>			div_lacth = CLOCKRATE / baudrate;<br />
			lcr = inb(SERIAL_LCR);<br />
			outb(inb(SERIAL_LCR)| 0&#215;80, SERIAL_LCR);<br />
			outw(div_lacth,SERIAL_DLL);<br />
			outb(lcr,SERIAL_LCR);<br />
			return 0;<br />
			break;<br />
	}</p>
<p>	#ifdef PRINT<br />
	printk(KERN_INFO &#8220;Exit :&#8217;%s&#8217;\n&#8221;,__func__);<br />
	#endif<br />
return -EINVAL;<br />
}</p>
<p>ssize_t my_read(struct file *filp, char *buf, size_t len, loff_t *pos)<br />
{<br />
	unsigned char data;<br />
	int count,i,lsr;<br />
	#ifdef PRINT<br />
	printk(KERN_INFO &#8220;Begin :&#8217;%s&#8217;\n&#8221;,__func__);<br />
	#endif</p>
<p>	lsr = inb(SERIAL_LSR);<br />
	#ifdef PRINT<br />
	printk(KERN_INFO &#8220;The LSR status is %04x\n&#8221;,lsr);<br />
	printk(KERN_INFO &#8220;The LSR status is %04x\n&#8221;,inb(SERIAL_LSR));<br />
	#endif</p>
<p>	if((lsr &amp; 0&#215;01) == 0)<br />
	{<br />
		if(filp-&gt;f_flags &amp; O_NONBLOCK)<br />
		{<br />
			#ifdef PRINT<br />
			printk(KERN_INFO &#8220;A NONBLOCK flag is on, exiting now\n&#8221;);<br />
			#endif<br />
			return 0;<br />
		}<br />
	}</p>
<p>	count = 0;</p>
<p>	for (i=0;if_flags &amp; O_NONBLOCK)<br />
		#ifdef PRINT<br />
		printk(KERN_INFO &#8220;A NONBLOCK flag is on, exiting now\n&#8221;);<br />
		#endif<br />
		return 0;<br />
	}<br />
	count = 0;</p>
<p>	for(i=0;i&lt;len;i++)<br />
	{<br />
		if(copy_from_user(&amp;data,buf+i,1))<br />
		{<br />
			#ifdef PRINT<br />
			printk(KERN_INFO &quot;Unable to read macro failed\n&quot;);<br />
			#endif<br />
			return -EFAULT;<br />
		}</p>
<p>		while((inb(SERIAL_LSR) &amp; 0&#215;20) == 0&#215;00);<br />
		outb(data,SERIAL_TX_REG);<br />
		++count;</p>
<p>		if((inb(SERIAL_MASK) &amp; 0&#215;01) != 0&#215;01)<br />
		{<br />
			#ifdef PRINT<br />
			printk(KERN_INFO &quot;the writer is not sending data to reciver\n&quot;);<br />
			#endif<br />
			break;<br />
		}<br />
	}<br />
	#ifdef PRINT<br />
	printk(KERN_INFO &quot;Exit :&#039;%s&#039;\n&quot;,__func__);<br />
	#endif<br />
return count;<br />
}</p>
<p>static dev_t serial_setup_cdev (struct serial_dev *ldev , int i)<br />
{<br />
	dev_t ldevno;<br />
	int result;<br />
	#ifdef PRINT<br />
	printk(KERN_INFO &quot;Begin :&#039;%s&#039;\n&quot;,__func__);<br />
	#endif<br />
	ldevno = MKDEV(serial_major,serial_minor);<br />
	cdev_init(&amp;ldev[i].cdev,&amp;fops);<br />
	ldev[i].cdev.owner = THIS_MODULE;<br />
	ldev[i].cdev.ops = &amp;fops;<br />
	result = cdev_add(&amp;ldev[i].cdev,ldevno,ndevice);<br />
	#ifdef PRINT<br />
        printk(KERN_INFO &quot;result = %d\n&quot;,result);<br />
        printk(KERN_INFO &quot;device no : %d\t,minor number = %d\n&quot;,i,serial_minor);<br />
        #endif</p>
<p>        serial_minor++;</p>
<p>	#ifdef PRINT<br />
	printk(KERN_INFO &quot;Exit :&#039;%s&#039;\n&quot;,__func__);<br />
	#endif<br />
return 0;<br />
}</p>
<p>static int __init my_init(void)<br />
{<br />
	int ret,i;<br />
	#ifdef PRINT<br />
	printk(KERN_INFO &quot;Begin :&#039;%s&#039;\n&quot;,__func__);<br />
	#endif</p>
<p>	#ifdef PRINT<br />
	//printk(KERN_INFO &quot;Current value of jiffies is %ld\n&quot;,j1);<br />
	printk(KERN_INFO &quot;Major = %d\tMinor = %d\n&quot;,serial_major,serial_minor);<br />
	#endif</p>
<p>	if(serial_major)<br />
	{<br />
		devno = MKDEV(serial_major,serial_minor);<br />
		ret = register_chrdev_region(devno, ndevice, device_name);<br />
	}<br />
	else<br />
	{<br />
		ret = alloc_chrdev_region(&amp;devno, serial_minor, ndevice, device_name);<br />
		serial_major = MAJOR(devno);<br />
		#ifdef PRINT<br />
		printk(KERN_INFO &quot;Major number allocated is %d\n&quot;,serial_major);<br />
		#endif<br />
	}</p>
<p>	if(ret comm,current-&gt;pid);<br />
        #endif</p>
<p>	if(serial_major)<br />
	{<br />
		serial_dev = (struct serial_dev *) kmalloc (sizeof(struct serial_dev),GFP_KERNEL);<br />
		if(!serial_dev)<br />
		{<br />
			#ifdef PRINT<br />
			printk(KERN_WARNING &#8220;Unable to allocate the memory for the device\n&#8221;);<br />
			#endif<br />
			return -ENOMEM;<br />
		}<br />
		#ifdef PRINT<br />
		printk(KERN_WARNING &#8220;allocate the memory for the device\n&#8221;);<br />
		#endif<br />
		memset(serial_dev, 0, sizeof(struct serial_dev));</p>
<p>		for(i=0;icomm,current-&gt;pid);<br />
        #endif</p>
<p>	//changing the register<br />
	#ifdef PRINT<br />
	printk(KERN_INFO &#8220;Setting the default values to the register&#8230;now\n&#8221;);<br />
	#endif</p>
<p>	outb(0&#215;00,SERIAL_IER);				//disable the IER<br />
	outb(0&#215;00,SERIAL_FIFO);				//disable the FIFO<br />
	outb(0&#215;00,SERIAL_MCR);				//MCR = 0</p>
<p>	#ifdef PRINT<br />
	printk(KERN_INFO &#8220;Setting the default values to the register done successfully\n&#8221;);<br />
	#endif</p>
<p>	#ifdef PRINT<br />
	printk(KERN_INFO &#8220;Exit :&#8217;%s&#8217;\n&#8221;,__func__);<br />
	#endif<br />
}</p>
<p>module_init(my_init);<br />
module_exit(my_exit);</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/01/serial-port-driver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Update of assignment</title>
		<link>https://www.emblogic.com/blog/01/update-of-assignment/</link>
		<comments>https://www.emblogic.com/blog/01/update-of-assignment/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 06:24:15 +0000</pubDate>
		<dc:creator><![CDATA[Kamran Ali]]></dc:creator>
				<category><![CDATA[Parallel Port Driver]]></category>

		<guid isPermaLink="false">http://emblogic.org/blog/?p=1632</guid>
		<description><![CDATA[I have completed the 3 modes of parallel device driver i.e compatibility mode, byte mode and nibble mode. Working on the ECP and EPP mode. Successfully implemented man page creation and development. Working on customizing them as per the needs. &#8230; <a href="https://www.emblogic.com/blog/01/update-of-assignment/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I have completed the 3 modes of parallel device driver i.e compatibility mode, byte mode and nibble mode.<br />
Working on the ECP and EPP mode.</p>
<p>Successfully implemented man page creation and development. Working on customizing them as per the needs.</p>
<p>I would like to thanks Emblogic team for the C paper, it help me and was able to pass the C test for sasken. thanks again.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/01/update-of-assignment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>STATUS: Char DD</title>
		<link>https://www.emblogic.com/blog/10/status-char-dd/</link>
		<comments>https://www.emblogic.com/blog/10/status-char-dd/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 09:26:40 +0000</pubDate>
		<dc:creator><![CDATA[Kamran Ali]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://emblogic.org/blog/?p=1175</guid>
		<description><![CDATA[Completed: open, close, read (single quantum, multiple quantum),write(single quantum, multiple quantum),semaphore(syn tech),LSEEK. Working: Completion, IOCTL. earlier ioctl (struct inode * inode, struct file * filp, unsigned int cmd, unsigned long arg) In 2.6.x the ioctl is divided in to 2 &#8230; <a href="https://www.emblogic.com/blog/10/status-char-dd/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Completed: open, close, read (single quantum, multiple quantum),write(single quantum, multiple quantum),semaphore(syn tech),LSEEK.<br />
Working: Completion, IOCTL.<br />
earlier<br />
ioctl (struct inode * inode, struct file * filp, unsigned int cmd, unsigned long arg)</p>
<p>In 2.6.x the ioctl is divided in to 2<br />
compact_ioctl (struct file * filp, unsigned int cmd, unsigned long arg )<br />
it is used when a 32 bit application is called in 64 bit, so it will provide the required mapping born due to the different architecture of 32 and 64 bit.</p>
<p>unlocked_ioctl (struct file * filp, unsigned int cmd, unsigned long arg )</p>
<p>In earlier version the (struct inode * ) parameter was used to fetch the device info from filp-&gt;private_data. but now it has been removed.<br />
It is provided as filp-&gt;f_dentry-&gt;d_inode</p>
<p>plus in<br />
struct file_operations<br />
{<br />
ioctl:my_ioctl,</p>
<p>use<br />
compact_ioctl: my_ioctl,<br />
unlocked_ioctl: my_ioctl,<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/10/status-char-dd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Status : Char Device Driver</title>
		<link>https://www.emblogic.com/blog/10/status-char-device-driver/</link>
		<comments>https://www.emblogic.com/blog/10/status-char-device-driver/#comments</comments>
		<pubDate>Sun, 23 Oct 2011 08:43:18 +0000</pubDate>
		<dc:creator><![CDATA[Kamran Ali]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>

		<guid isPermaLink="false">http://emblogic.org/blog/?p=1164</guid>
		<description><![CDATA[Completed: open, close, read (single quantum, multiple quantum),write(single quantum, multiple quantum),semaphore(syn tech). Working: Completion, IOCTL,LSEEK]]></description>
				<content:encoded><![CDATA[<p>Completed: open, close, read (single quantum, multiple quantum),write(single quantum, multiple quantum),semaphore(syn tech).<br />
Working: Completion, IOCTL,LSEEK</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/10/status-char-device-driver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Printk error</title>
		<link>https://www.emblogic.com/blog/10/printk-error/</link>
		<comments>https://www.emblogic.com/blog/10/printk-error/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 09:27:09 +0000</pubDate>
		<dc:creator><![CDATA[Kamran Ali]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>

		<guid isPermaLink="false">http://emblogic.org/blog/?p=1145</guid>
		<description><![CDATA[I have used printk statement in char device driver code. &#8220;make&#8221; have no warning or error on doing insmod no error is given . but on dmesg the printk statement are not showing. i have checked in /var/log/message but printk &#8230; <a href="https://www.emblogic.com/blog/10/printk-error/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I have used printk statement in char device driver code.<br />
&#8220;make&#8221; have no warning or error</p>
<p>on doing insmod no error is given .<br />
but on dmesg the printk statement are not showing.<br />
i have checked in /var/log/message but printk statement are not present.</p>
<p>Ihave changed the priority in printk.h file bur no avail .</p>
<p>If any one has any info do let it pass to me. </p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/10/printk-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>insmod error</title>
		<link>https://www.emblogic.com/blog/10/insmod-error/</link>
		<comments>https://www.emblogic.com/blog/10/insmod-error/#comments</comments>
		<pubDate>Thu, 13 Oct 2011 20:05:38 +0000</pubDate>
		<dc:creator><![CDATA[Kamran Ali]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>

		<guid isPermaLink="false">http://emblogic.org/blog/?p=1111</guid>
		<description><![CDATA[while MAKE there is no error. when i try to insmod : following error is produced : insmod : error inserting &#8216;./modules/lkm.ko&#8217; : -1 operation not permitted But the amazing thing is that my driver is registered in /proc/devices(major number &#8230; <a href="https://www.emblogic.com/blog/10/insmod-error/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>while MAKE there is no error.<br />
when i try to insmod :<br />
following error is produced :<br />
insmod : error inserting &#8216;./modules/lkm.ko&#8217; : -1 operation not permitted<br />
But the amazing thing is that my driver is registered in /proc/devices(major number is allotted) and on doing dmesg : the buffer has the printk output in it.</p>
<p>Secondly, the *.ko file from different directory and as well as from my other colleagues are working fine my laptop fine.</p>
<p>I tried copying the data to a new place but no avail.<br />
Sir, please let me know what to do.<br />
i am using the above command in super user mode (su &#8211; ), but still i have the problem.<br />
Fedora 15 64 bit<br />
kernel 2.6.40</p>
<p>i have written the driver from scratch but again no avail, but  i got more confident in driver while writing it again.</p>
<p>Tried google it but no avail.</p>
<p>I am troubled by it and my work is also stopped&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/10/insmod-error/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>char device driver status</title>
		<link>https://www.emblogic.com/blog/10/char-device-driver-status/</link>
		<comments>https://www.emblogic.com/blog/10/char-device-driver-status/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 16:23:39 +0000</pubDate>
		<dc:creator><![CDATA[Kamran Ali]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>

		<guid isPermaLink="false">http://emblogic.org/blog/?p=1092</guid>
		<description><![CDATA[I was able to write a single qset successfully, now on to multiple qset&#8230;hope to finish that by Wednesday. Great help from Vaibhav &#8230;thanks bro.]]></description>
				<content:encoded><![CDATA[<p>I was able to write a single qset successfully, now on to multiple qset&#8230;hope to finish that by Wednesday.<br />
Great help from Vaibhav &#8230;thanks bro.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/10/char-device-driver-status/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>status on project provided</title>
		<link>https://www.emblogic.com/blog/10/status-on-project-provided/</link>
		<comments>https://www.emblogic.com/blog/10/status-on-project-provided/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 17:44:40 +0000</pubDate>
		<dc:creator><![CDATA[Kamran Ali]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://emblogic.org/blog/?p=1033</guid>
		<description><![CDATA[Char device driver -&#62;done compression -&#62; left with last part of comparing and uncompressed data SCULL -&#62; done for the scull size of 16 and limited data flow]]></description>
				<content:encoded><![CDATA[<p>Char device driver -&gt;done<br />
compression -&gt; left with last part of comparing and uncompressed data<br />
SCULL -&gt; done for the scull size of 16 and limited data flow </p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/10/status-on-project-provided/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Update on char DD</title>
		<link>https://www.emblogic.com/blog/10/update-on-char-dd/</link>
		<comments>https://www.emblogic.com/blog/10/update-on-char-dd/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 06:36:14 +0000</pubDate>
		<dc:creator><![CDATA[Kamran Ali]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://emblogic.org/blog/?p=1018</guid>
		<description><![CDATA[Well, upto date with the char device driver module]]></description>
				<content:encoded><![CDATA[<p>Well, upto date with the char device driver module</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/10/update-on-char-dd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
