* Your valuable Suggestions / Advise for Beginners in Device Driver Development under Embedded Linux P
@ 2004-07-12 6:44 m madhuker
2004-07-12 7:56 ` Marc Leeman
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: m madhuker @ 2004-07-12 6:44 UTC (permalink / raw)
To: linuxppc-embedded
I have been assigned some project based in Device
Driver Development for USB, Printers, IDE, Ethernet
under Embedded Linux. Since I am a beginner in this
area, I would like to know some details based on the
following clarifications.
1] Pre-requisite skills / knowledge and concepts to
understand before embarking on the above project.
2] Typical Project Environment for Device Driver
Development under Embedded Linux Platform.
3] Ups & Downs of Embedded Linux w.r.t other RTOSes
( VxWorks, Psos, Nucleus, QNX, OSEK etc . . . .)
Please highlight me about the Benchmark details.
4] Suppose I need to start off with the above
project ( Device Drivers for Printers, Scanners, PDAs,
LCDs,
Keypads ), what are the essential points to be
kept in mind for smooth running of the project.
5] What are the Initialization / Installation steps
to be done regarding Embedded Linux. Please declare
the latest version to be used. Upon selecting
the RTOS, how should I deal with the selection of
Target
Board along with the Supporting Tools ?
6] Is it sufficient to use C, ignoring C++ & Java
? Is Assembly Language essential ? Which part of C
is
commonly used in Device Drivers ?
7] Please let me know the typical driver size (
Footprint ) for Printer. What could be the duration
of the
project ?
8] Highlight me about some of the useful websites,
books / references and contact Email IDs of
Experienced
Professionals involved in such Projects.
9] How does the Testing / Debugging takes place ?
What are the Test / Debug Tools available for such
Operations ?
10] Please let me know the Optimization Techniques
involved in the Device Driver Development.
11] In this case of the Project, Linux Porting must
be done prior to writing Device Drivers. Am I right
? Kindly
comment.
12] What Technical details should I need to
understand under RTOS, C, Embedded Linux ? Is it
necessary to
know any Protocol for Device Driver
Development ?
13] How often do you use Oscillators / Logic Analyzer
? Please highlight me about the Connection /
Installation details.
Please furnish the above details as soon as possible
and oblige. Your assistance in this regard would
greatly benefit towards my successful career under
this area.
Looking forward to hear from you soon,
Appreciating your favorable response
Regards
Madhukar
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
** This list is shutting down 7/24/2004.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Your valuable Suggestions / Advise for Beginners in Device Driver Development under Embedded Linux P
2004-07-12 6:44 Your valuable Suggestions / Advise for Beginners in Device Driver Development under Embedded Linux P m madhuker
@ 2004-07-12 7:56 ` Marc Leeman
2004-07-12 13:36 ` McMullan, Jason
2004-07-12 13:51 ` Your valuable Suggestions / Advise for Beginners in Device Driver " Mark Chambers
2 siblings, 0 replies; 5+ messages in thread
From: Marc Leeman @ 2004-07-12 7:56 UTC (permalink / raw)
To: linuxppc-embedded
> under Embedded Linux. Since I am a beginner in this area, I would like
> to know some details based on the following clarifications.
< ... snip ... >
These questions look suspiciously like questions you might have received
for a prestudy of a project. I suggest you use google and try to figure
out stuff like this for yourself instead of letting other ppl do your
job for you.
You might even try to add if someone can do a board design for you. Next
to the fact that I do not understand how you will ever get an unbiased
or objective answer to some of these questions on this mailinglist (I
know I would be biased).
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
** This list is shutting down 7/24/2004.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Your valuable Suggestions / Advise for Beginners in Device Driver Development under Embedded Linux P
2004-07-12 6:44 Your valuable Suggestions / Advise for Beginners in Device Driver Development under Embedded Linux P m madhuker
2004-07-12 7:56 ` Marc Leeman
@ 2004-07-12 13:36 ` McMullan, Jason
2004-07-12 14:35 ` Your valuable Suggestions / Advise for Beginners in DeviceDriver " Kevin P. Dankwardt
2004-07-12 13:51 ` Your valuable Suggestions / Advise for Beginners in Device Driver " Mark Chambers
2 siblings, 1 reply; 5+ messages in thread
From: McMullan, Jason @ 2004-07-12 13:36 UTC (permalink / raw)
To: m madhuker; +Cc: linuxppc-embedded
On Mon, 2004-07-12 at 02:44, m madhuker wrote:
> 1] Pre-requisite skills / knowledge and concepts to
> understand before embarking on the above project.
O'Reilly's "Linux Device Drivers" - pick it up!
http://www.xml.com/ldd/chapter/book/
> 2] Typical Project Environment for Device Driver
> Development under Embedded Linux Platform.
1) Cross compilation tools
2) Cross-compiled libc
3) Cross-compiled init/bash/util-linux, etc
> 4] Suppose I need to start off with the above
> project ( Device Drivers for Printers, Scanners, PDAs,
> LCDs,
> Keypads ), what are the essential points to be
> kept in mind for smooth running of the project.
*) Get all your hardware docs! Talk to your vendors,
and get EVERYTHING. Schematics can be *very* useful too!
*) Set up a dedicated lan (a second ethernet on your host and
a patch cable is all you need) for your target.
*) Get a good hardware debugger! For non-x86, Abatron's BDI-2000
is fantastic.
> 5] What are the Initialization / Installation steps
> to be done regarding Embedded Linux. Please declare
> the latest version to be used.
For Linux 2.4.x, look in arch/ppc/kernel/setup.c
For Linux 2.6.x, look in arch/ppc/platforms/* for examples.
> Upon selecting
> the RTOS, how should I deal with the selection of
> Target
> Board along with the Supporting Tools ?
[ObPlug]
TimeSys Corporation has a wide variety of BSP (Board Support Products)
for ARM, MIPS, XScale, SH3/SH4/SH5, PowerPC and x86. Our 2.4.x kernel
series has integrated hard real-time modifications, and our 2.6.x
products are in release for PowerPC 6xx/7xx/82xx, PowerPC 85xx, and x86.
[/ObPlug]
>
> 6] Is it sufficient to use C, ignoring C++ & Java
> ? Is Assembly Language essential ? Which part of C
> is
> commonly used in Device Drivers ?
C is sufficient. Although you can use C++ (with my C++ kernel runtime
environment: http://www.evillabs.net/~gus/cppfake/index.html )
is it highly *not* recommended for kernel work.
Java is right out.
Assembly is not often used in driver work, but if you have coded your
own non-standard bootloader, it's very useful when modify the
arch/ppc/kernel/head*.S series of files.
>
> 7] Please let me know the typical driver size (
> Footprint ) for Printer. What could be the duration
> of the
> project ?
Printer drivers are composed of two parts - that which drives the
LPT/serial port the printer is connected to (kernel space), and the
render (user space, and a ghostscript driver).
Which aspect are you talking about? For the kernel space, we're
probably only talking a few kb of code. For the renderer, it can be as
small as a few kb (simple rasterizer) to a couple of mb (lots of special
case code, embedded software fonts, etc)
> 9] How does the Testing / Debugging takes place ?
> What are the Test / Debug Tools available for such
> Operations ?
The Linux Testing Project: http://ltp.sourceforge.net/
[ObPlug]
TimeSys' "TimeStorm" toolset includes an embedded test environment, with
the Linux Testing Project's test suite
[/ObPlug]
> 10] Please let me know the Optimization Techniques
> involved in the Device Driver Development.
Are you optimizing for space? time? bandwidth? latency?
They're all different, and all have special techniques.
This topic alone is enough for several books.
> 11] In this case of the Project, Linux Porting must
> be done prior to writing Device Drivers. Am I right
> ? Kindly
> comment.
Yes. You need to get linux ported to your CPU (probably already done),
make sure/write firmware to do initial target setup (memory
configuation, bus config, chip selects, address spaces, etc), determine
a method of loading the kernel onto your target, make a simple serial
driver (polled), get IRQs working, get ethernet working, get an
IRQ-based serial driver working, then *poof* - you can start booting a
root filesystem via NFS, and do the rest of the project as loadable
modules.
> 12] What Technical details should I need to
> understand under RTOS, C, Embedded Linux ? Is it
> necessary to
> know any Protocol for Device Driver
> Development ?
Google is your friend.
Sniff out a good IRC/email community for your target board
See if anyone else has already ported Linux to your architecture
SUBMIT YOUR PATCHES BACK TO THE KERNEL!
> 13] How often do you use Oscillators / Logic Analyzer
> ? Please highlight me about the Connection /
> Installation details.
Usually I get the hardware after it's passed hardware verification, so
a JTAG debugger (ie the BDI-2000) is sufficient in most cases. If you
need to modify bus timings, cache timings, etc, then a sampling logic
probe is very useful.
--
Jason McMullan <jason.mcmullan@timesys.com>
TimeSys Corporation
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
** This list is shutting down 7/24/2004.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Your valuable Suggestions / Advise for Beginners in Device Driver Development under Embedded Linux P
2004-07-12 6:44 Your valuable Suggestions / Advise for Beginners in Device Driver Development under Embedded Linux P m madhuker
2004-07-12 7:56 ` Marc Leeman
2004-07-12 13:36 ` McMullan, Jason
@ 2004-07-12 13:51 ` Mark Chambers
2 siblings, 0 replies; 5+ messages in thread
From: Mark Chambers @ 2004-07-12 13:51 UTC (permalink / raw)
To: m madhuker, linuxppc-embedded
Madhuker,
> I have been assigned some project based in Device
> Driver Development for USB, Printers, IDE, Ethernet
> under Embedded Linux. Since I am a beginner in this
> area, I would like to know some details based on the
> following clarifications.
>
> etc. etc.
I would recommend two good books, both available from Amazon.com:
"Understanding the Linux Kernel" and "Linux Device Drivers". You are also
going to need google.com and do a lot of on-line research! If you are new
to linux completely, I would recommend playing with programming on a Linux
PC first, and only going to an embedded environment when you are comfortable
with the PC.
Good luck,
Mark Chambers
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
** This list is shutting down 7/24/2004.
^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: Your valuable Suggestions / Advise for Beginners in DeviceDriver Development under Embedded Linux P
2004-07-12 13:36 ` McMullan, Jason
@ 2004-07-12 14:35 ` Kevin P. Dankwardt
0 siblings, 0 replies; 5+ messages in thread
From: Kevin P. Dankwardt @ 2004-07-12 14:35 UTC (permalink / raw)
To: m madhuker; +Cc: linuxppc-embedded
The books and references that others have listed are certainly helpful. In
fact no matter what route a developer takes, getting training, figuring it
all out for one's self, or working with a vendor - the books and Web are
essential.
The fastest route for a developer to get up to speed is to take one or more
training courses.
The cheapest way is to get the books and use the Web.
The most expensive way is to hire an embedded Linux vendor.
Of course, they all have other tradeoffs as well.
Kevin Dankwardt
K Computing
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
** This list is shutting down 7/24/2004.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2004-07-12 14:35 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-07-12 6:44 Your valuable Suggestions / Advise for Beginners in Device Driver Development under Embedded Linux P m madhuker
2004-07-12 7:56 ` Marc Leeman
2004-07-12 13:36 ` McMullan, Jason
2004-07-12 14:35 ` Your valuable Suggestions / Advise for Beginners in DeviceDriver " Kevin P. Dankwardt
2004-07-12 13:51 ` Your valuable Suggestions / Advise for Beginners in Device Driver " Mark Chambers
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).