Search Linux Wireless

Re: IEEE 802.15.4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Monday 23 February 2009, Rahul Jain wrote:
> Hello all,
>
> I am working on implementing a Linux device driver for IEEE 802.15.4
> NanoLoc Chipset for my bachelor's thesis. Currently, I am writing the
> research proposal, and therefore am collecting background information on
> this topic so that I can come up with a concrete work plan. I have no
> previous experience with device drivers as such, however since this is
> something I really want to do I am more than willing to learn.

Haven't seen any doc written about it, but what you probably want to do 
is start at top level and figure out answers to:

- what are the usage models?
- what do I want to do with the device?

Once you have those answers, you start to break them down in "requirements",
for lack of a better word. Then you need to implement those "requirements",
which probably will be high level actions that a "client" application would
do, such as (quick dirty list):

- discover available adapters in the system
- have each adapter scan for available connection peers/nodes
- tx/rx information from those peers (this will probably expand a lot)
- etc...

and then you'll have to break the functionality in areas, where do you
implement which functionality?:

- a user space daemon/library/d-bus interface?
  (so many applications can be client of the service and take advantage
   of the high level functionality without reimplementing it); this
  would talk to a very low level kernel API...

- ...implemented by a kernel stack to abstract out the common parts that 
  all the drivers will have to offer

- the drivers themselves doing the bare minimum to expose the interface
  that the kernel stack needs drivers to have.

Sometimes there is no need to do some of those parts, or any (for example,
if all the devices will ever be USB, it could be implemented all in user
space with libusb), but there is normally no way to know that ahead of time
and you just take your best judgement at the time :)

Don't be shy on starting and then realizing you got it wrong from the start.
If you wait to learn everything, you'll never finish. You might have to go
over two or three whole redesign and reimplementation phases until you get
it right. That's not bad at all, as it gives you time to stop, rethink, 
put together all the accumulated knowledge that you lacked at the start and
clean up dead wood.

An example of that model, with things split out, is the bluetooth stack.
If I remember correctly how Zigbee worked, there might be some similarities
you might use for an starting point.

-- 
Inaky
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux