Extensions & Device Drivers

This is a discussion on Extensions & Device Drivers within the Symbian forums in Other Technologies category; What is the Difference between kernel extensions and Device drivers? kernel Extensions are Device Drivers..? how can logical and physical Driver is implemented for Extensions ? Thanks in advance..... Cheeerrrs Sd.......

Go Back   Application Development Forum > Other Technologies > Symbian

Object Mix

Register FAQ Calendar Search Today's Posts Mark Forums Read
  #1  
Old 02-19-2008, 01:29 AM
symbian-developer
Guest
 
Default Extensions & Device Drivers


What is the Difference between kernel extensions and Device drivers?

kernel Extensions are Device Drivers..?

how can logical and physical Driver is implemented for Extensions ?


Thanks in advance.....

Cheeerrrs
Sd....


Reply With Quote
  #2  
Old 02-19-2008, 09:15 AM
markd
Guest
 
Default Re: Extensions & Device Drivers

Hi,


Device drivers are DLLs that allow code running in Symbian OS to communicat=
e with hardware the Variant or kernel extensions.=20



Device driver DLLs are loaded into the kernel process after the kernel has =
booted. They live on the Kernel side and use the kernel heap. They may be e=
xecute-in-place (XIP) or loaded into RAM.=20



User side code accesses a device driver through a specific API provided by =
the Kernel. This is the RBusLogicalChannel class. This provides functions t=
hat are used to open a channel to a device driver and to make requests. The=
se functions are protected, and the device driver author provides a class d=
erived from RBusLogicalChannel that implements functions that are specific =
to the device driver.=20



The kernel contains device driver like code that is entirely kernel-side an=
d does not have a user API. Examples are the keyboard and touch screen impl=
ementation, which interact only with the kernel. These are implemented as a=
special DLL that is loaded at boot-time. Such DLLs are called Kernel Exten=
sions.


Unlike an LDD or PDD, a Kernel Extension is not different from any other DL=
L - there are no requirements for exported functions, or expected APIs, or =
any framework imposed by the kernel.=20



Mark
Symbian
Reply With Quote
  #3  
Old 02-19-2008, 10:05 AM
nverma
Guest
 
Default Re: Extensions & Device Drivers


Fundamentally, kernel extensions are just device drivers with the following=
major differences,=20



1.) The role of device driver is to give user side application access to ke=
rnel side memorychunk and peripheral access. On the other hand kernel exten=
sions do not have any user side interface.=20



2.) Device drivers can be loaded and unloaded by the user-side application.=
Kernel extensions on the other hand are loaded on kernel boot up time and =
are typically used to perform early initialisation of hardware components a=
nd to provide permanently available services for devices such as the LCD, D=
MA, I2C and peripheral bus controllers.

Kernel extension have got concept of PIL/PSL(platform independent layer/ pl=
atform specific layer) analogous to LDD/PDD in device drivers.

To make porting an extension to a new hardware platform easier, the PIL is =
generally responsible for providing functionality common to versions of the=
extension (such as state machines and so on) and defining the exported API=
, with the PSL taking on the responsibility of communicating directly with =
the hardware. =20

However, some device drivers use the same concept and split the PDD into pl=
atform independent and platform specific layers. One such example is the l=
ocal media subsystem - this consists of a generic LDD interface suitable fo=
r all media drivers, and a PDD interface which is further divided to handl=
e common device interfaces such as ATA/PCMCIA, NAND or NOR Flash.

For detailed method of writing and understanding kernel extensions, please =
refer "SymbianOS Internals" book.

Thanks
NVerma=20


Reply With Quote
  #4  
Old 02-20-2008, 01:10 AM
symbian-developer
Guest
 
Default Re: Extensions & Device Drivers


Hi ,

If we write a new device driver or extensions is it necessary to the recomp=
ile the kernel..? if no how we can doo it?=20

Recompilation of kernel depends on extensions PSL\PIL or device drivers PD=
D\LDD?=20

Thanks in advance


Reply With Quote
  #5  
Old 02-20-2008, 04:46 AM
c_a_kozak
Guest
 
Default Re: Extensions & Device Drivers

Hi,
Since the extensions/ PDD/LDD are basically DLLs you do not need to recompi=
le them (atleast when using on hardware).=20

For Extensions:
While using it on hardware, there are a set of steps to be followed like sp=
ecifying the keyword variant against the extension in the oby file. The ROM=
build takes care of the rest.=20

On the emulator, you need to add this dll to a list in a file called proper=
ty.cpp (I guess).=20

For LDDs:
Once you compile the LDDs, you can use it using a call User::LoadLogicalDev=
ice()

I strongly urge you to go through the book prescribed my Verma.

Plus, you can find additional info on this in the Dev kit documenation.

Regards
Kozak

Reply With Quote
  #6  
Old 10-23-2008, 07:29 AM
lukaszf
Guest
 
Default Re: Extensions & Device Drivers

> If we write a new device driver or extensions is it necessary to the reco=
mpile the kernel..? if no how we can doo it?=20
No - you need to compile the kernel only once (and every time after you cha=
nge it)- your driver/extension should then be able to link against it.

> Recompilation of kernel depends on extensions PSL\PIL or device drivers =

PDD\LDD?=20
No.
Reply With Quote
Reply


Thread Tools
Display Modes


All times are GMT -5. The time now is 07:29 AM.


Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
vB Ad Management by =RedTyger=

In an effort to better serve ads to our visitors, cookies are used on objectmix.com. For more information, check out our Privacy Policy.