Welcome to the BlackDog Software Development Kit. The SDK consists of two primary sections:
- The Developer’s Guide, which provides developers with information on how to use the Development Emulator to develop and install applications that run on the BlackDog.
- A collection of third-party documentation, which may be helpful in creating applications that run on the BlackDog.
To navigate the SDK, click the Developer’s Guide or Third-Party Documentation links at the left to display the Table of Contents. You can also search any part of this SDK by selecting the scope of your search using the Search Another Area link and entering search terms.
BlackDog Developer’s Guide Overview
This developer’s guide consists of eight sections:
- Introduction. This section describes the intended audience for the SDK and outlines the SDK contents.
- Installing the SDK. This section describes SDK system requirements, provides instructions for installing and configuring the SDK, and explains host-specific configuration information.
- System Architecture. This section describes the overall system architecture, networking, graphical windowing, and BlackDog specifications.
- Developing BlackDog Applications. This section explains guidelines for designing applications, using the development emulator, compiling and debugging applications, accessing the MMC card, accessing BlackDog with SSH, using cross compilers, encrypting files for storage, troubleshooting the BlackDog, and re-imaging the BlackDog on a Linux or Windows host. It also explains how to work with LEDs and user communication, and how to use BlackDog system information.
- Deploying BlackDog Applications. This section explains how to deploy applications directly to the BlackDog and how to perform software updates on the BlackDog.
- BlackDog Boot Sequence. This section describes BlackDog boot scripts, how to modify the authentication sequence, the BlackDog boot sequence on a Windows host, and how to implement BlackDog shutdown notification in an application.
- BlackDog Reference and Sample Applications. This section describes the three BlackDog reference applications: Login, Fingerprint Trainer, and Realm-networking (user_nat). It also describes the two BlackDog sample applications: Launcher, and Xdialog.
- BlackDog to Host Communications. This section describes how to work with user networking, and how to establish direct communications with the host.
Third Party Documentation Overview
The SDK includes a number of third party tools to aid in development. This document includes copies of the documentation for the major tools and libraries so that you have the information at your fingertips. Including the third party documents in the SDK also allows you to perform searches over these documents.
Core System Libraries
This table provides descriptions of libraries that support core system functionality.
| Tool | Description |
|---|---|
| GNU C Library | Glibc, also known as libc6, is the GNU project’s Standard C library. |
| Kernel | Documentation for programming for the Linux kernel. |
| PAM | Documentation for Linux PAM. |
| Debian | Debian New Maintainer’s Guide and dh_make documentation. |
| crypto | The OpenSSL cryptographic library documentation. |
Development Utilities
This table describes third party tools that support basic development in the SDK.
| Tool | Description |
|---|---|
| GNU Binary Utilities (binutils) | The GNU Binutils is a collection of programming tools developed by the Free Software Foundation for the manipulation of object code in various object file formats. They are typically used in conjunction with GCC, make and GDB. |
| GCC | The GNU Compiler Collection (usually shortened to GCC) is a set of programming language compilers produced by the GNU Project. It is free software distributed by the Free Software Foundation (FSF) under the GNU GPL, and is a key component of the GNU toolchain. It is the standard compiler for the open source Unix-like operating systems, and certain proprietary operating systems derived thereof such as Mac OS. |
| GDB | The GNU Debugger, usually called just GDB, is the standard debugger for the GNU software system. It is a portable debugger which runs on many Unix-like systems and works for many programming languages, including C, C++, and FORTRAN. Originally written by Richard Stallman in 1988, GDB is free software released under the GNU General Public License. |
| GNU Profiler | Gprof is a GNU project tool that helps you increase program efficiency by allowing you to see which parts of a program are taking most of the execution time. |
| QEMU | QEMU is a generic and open source processor emulator which achieves a good emulation speed by using dynamic translation. |
High Level Libraries
This table describes third party tools and libraries that provide common functionality.
| Tool | Description |
|---|---|
| Boost | Boost.org provides free peer-reviewed portable C++ source libraries. The SDK includes the program options, threads, and regular expression libraries. |
| Busybox | Information about busybox, the utility that provides many of the UNIX utilities on the BlackDog device. |
| GTK+ | Initially created for the graphics program the GIMP, the GIMP Toolkit — abbreviated as GTK+ — is one of the two most popular widget toolkits for the X Window System, intended for creating graphical user interfaces.GTK+ and Qt have supplanted Motif, previously the most widely-used X widget toolkit. |
| gtkmm | gtkmm is the official C++ interface for the popular GUI library GTK+. Highlights include typesafe callbacks, widgets extensible via inheritance and a comprehensive set of widgets. |
| libsigc++ | libsigc++ implements a typesafe callback system for standard C++. It allows you to define signals and to connect those signals to any callback function, either global or a member function, regardless of whether it is static or virtual. |
| libstdc++ | The standard C++ library, needed for dynamically linked C++ programs. |
| make | Make is a tool which controls the generation of executables and other non-source files of a program from the program’s source files. |
| OpenSSL | OpenSSL is an open source implementation of the SSL and TLS protocols. The core library (written in the C programming language) implements the basic cryptographic functions and provides various utility functions. Wrappers allowing the use of the OpenSSL library in a variety of computer languages are available. |
| X | The X Window System (commonly X11 or X) is a windowing system for bitmap displays. It is the standard graphical interface on Unix, Unix-like operating systems and OpenVMS, and is available for most other modern operating systems. |
| zlib | zlib is an open-source, cross-platform, general-purpose data compression library implementing the DEFLATE compression algorithm. |
