| Register | FAQ | Calendar | Search | Today's Posts | Mark Forums Read |
|
#1
| |||
| |||
| 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.... |
|
#2
| |||
| |||
| 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 |
|
#3
| |||
| |||
| 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 |
|
#4
| |||
| |||
| 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 |
|
#5
| |||
| |||
| 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 |
|
#6
| |||
| |||
| > 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. |
![]() |
| Thread Tools | |
| Display Modes | |
In an effort to better serve ads to our visitors, cookies are used on objectmix.com. For more information, check out our Privacy Policy.