HACKING: "Adding a new hardware driver" chapter.
This commit is contained in:
parent
d36777dbf5
commit
2bba3dd3a8
44
HACKING
44
HACKING
|
@ -24,6 +24,50 @@ Contributions
|
||||||
github.com, or any other public git hosting site.
|
github.com, or any other public git hosting site.
|
||||||
|
|
||||||
|
|
||||||
|
Adding a new hardware driver
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
The simple, scripted way (recommended):
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
Use the 'new-driver' script from the sigrok-util repo:
|
||||||
|
|
||||||
|
$ git clone git://sigrok.org/sigrok-util
|
||||||
|
$ cd sigrok-util/source
|
||||||
|
$ ./new-driver "Tondaj SL-814"
|
||||||
|
|
||||||
|
The example above generates a patch file against the current libsigrok
|
||||||
|
development git tree which adds a simple "stub" driver for your device
|
||||||
|
(the Tondaj SL-814 sound level meter in this case).
|
||||||
|
|
||||||
|
You can apply it like this:
|
||||||
|
|
||||||
|
$ cd libsigrok
|
||||||
|
$ git am 0001-tondaj-sl-814-Initial-driver-skeleton.patch
|
||||||
|
|
||||||
|
You can now edit the files in the hardware/tondaj-sl-814 directory as needed.
|
||||||
|
|
||||||
|
|
||||||
|
The manual way:
|
||||||
|
---------------
|
||||||
|
|
||||||
|
This is a rough overview of what you need to do in order to add a new driver
|
||||||
|
(using the Tondaj SL-814 device as example). It's basically what the
|
||||||
|
'new-driver' script (see above) does for you:
|
||||||
|
|
||||||
|
- configure.ac:
|
||||||
|
- Add an --enable-tondaj-sl-814 option.
|
||||||
|
- Add "hardware/tondaj-sl-814/Makefile" to the AC_CONFIG_FILES list.
|
||||||
|
- Add and entry for the device in the "Enabled hardware drivers" list
|
||||||
|
at the bottom of the file.
|
||||||
|
- hardware/Makefile.am: Add "tondaj-sl-814" to the SUBDIRS variable.
|
||||||
|
- hwdriver.c: Add a tondaj_sl_814_driver_info entry in two places.
|
||||||
|
- hardware/tondaj-sl-814/ directory: Add the following files:
|
||||||
|
Makefile.am, api.c, protocol.c, protocol.h
|
||||||
|
|
||||||
|
See existing drivers or the 'new-driver' output for the details.
|
||||||
|
|
||||||
|
|
||||||
Random notes
|
Random notes
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue