<?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; Device Drivers</title>
	<atom:link href="https://www.emblogic.com/blog/tag/device-drivers/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>Project 05: Character Device Driver</title>
		<link>https://www.emblogic.com/blog/11/project-05-character-device-driver/</link>
		<comments>https://www.emblogic.com/blog/11/project-05-character-device-driver/#comments</comments>
		<pubDate>Fri, 02 Nov 2012 16:52:39 +0000</pubDate>
		<dc:creator><![CDATA[spatlou]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>
		<category><![CDATA[char driver]]></category>
		<category><![CDATA[Character Device Driver]]></category>
		<category><![CDATA[Device Drivers]]></category>
		<category><![CDATA[EmbeddedTraining]]></category>
		<category><![CDATA[EmbLogic]]></category>
		<category><![CDATA[Linux Device Drivers Training]]></category>

		<guid isPermaLink="false">http://emblogic.org/blog/?p=5628</guid>
		<description><![CDATA[Makefile for a basic kernel module

obj-m += hello-1.o

all:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean <a href="https://www.emblogic.com/blog/11/project-05-character-device-driver/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Modules are pieces of code that can be loaded and unloaded into the kernel upon demand. They extend the functionality of the kernel without the need to reboot the<a href="http://emblogic.org/blog/11/project-05-character-device-driver/cdd2/" rel="attachment wp-att-5630"><img class="alignright size-medium wp-image-5630" title="cdd2" src="http://emblogic.org/blog/wp-content/uploads/2012/11/cdd2-e1351875063299-300x108.jpg" alt="" width="300" height="108" /></a> system. For example, one type of module is the device driver, which allows the kernel to access hardware connected to the system. Without modules, we would have to build monolithic kernels and add new functionality directly into the kernel image. Besides having larger kernels, this has the disadvantage of requiring us to rebuild and reboot the kernel every time we want new functionality.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/11/project-05-character-device-driver/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>What is Device Drivers</title>
		<link>https://www.emblogic.com/blog/01/what-is-device-drivers/</link>
		<comments>https://www.emblogic.com/blog/01/what-is-device-drivers/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 19:34:04 +0000</pubDate>
		<dc:creator><![CDATA[spatlou]]></dc:creator>
				<category><![CDATA[Device Drivers]]></category>
		<category><![CDATA[Linux Device Drivers]]></category>
		<category><![CDATA[Linux Device Drivers Training]]></category>

		<guid isPermaLink="false">http://emblogic.org/blog/?p=1621</guid>
		<description><![CDATA[People new to Linux often hear that it has excellent support for all kinds of cards and that the device drivers are stable and fast. Sometimes, though, setting up devices under Linux is often not all plug-and-play. Everything is a &#8230; <a href="https://www.emblogic.com/blog/01/what-is-device-drivers/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>People new to Linux often hear that it has excellent support for all kinds of cards and that the device drivers are stable and fast. Sometimes, though, setting up devices under Linux is often not all plug-and-play.<strong></strong></p>
<p><strong>Everything is a file</strong></p>
<p>Many modern operating systems have a method for installing special files to make hardware work. On the Apple Mac, for instance, the drivers for the hardware devices are usually special files that go in the System Extensions folder. Linux also has special files that it uses to control the hardware.</p>
<p>Linux device drivers work through special kernel code that directly accesses the hardware. To make the services that the card or other device offers available to normal user programs, the kernel uses the special files in<code> /dev</code></p>
<p>One end of the file in <code>/dev</code> can be opened normally and the other end is attached to the kernel. That is of course an oversimplification, but I think you get the general idea: hardware, kernel, special file, user program and the same path back from user program to hardware. There are two forms of the kernel portion of this equation: compiled-in drivers that are coded in permanently when the kernel is built, and modules.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/01/what-is-device-drivers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
