ISELFInalProjectInfo
Information about several subjects regarding the ISEL final project.
Linux Kernel
https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.13.5.tar.xz
Linux Device Drivers book
http://lwn.net/images/pdf/LDD3/ldd3_pdf.tar.bz2
sysfs
http://lxr.free-electrons.com/source/Documentation/filesystems/sysfs.txt
What it is:
sysfs is a ram-based filesystem initially based on ramfs. It provides a means to export kernel data structures, their attributes, and the linkages between them to userspace.
sysfs is tied inherently to the kobject infrastructure. Please read Documentation/kobject.txt for more information concerning the kobject interface.
- /usr/src/linux-3.2.45/Documentation/filesystems/sysfs.txt
IIO
Adapted from http://wiki.analog.com/software/linux/docs/iio/iio
The Industrial I/O subsystem is intended to provide support for devices that in some sense are analog to digital or digital to analog convertors (ADCs, DACs). Devices that fall into this category are:
- ADCs
- Accelerometers
- Gyros
- IMUs
- Capacitance to Digital Converters (CDCs)
- Pressure Sensors
- Color, Light and Proximity Sensors
- Temperature Sensors
- Magnetometers
- DACs
- DDS (Direct Digital Synthesis)
- PLLs (Phase Locked Loops)
- Variable/Programmable Gain Amplifiers (VGA, PGA)
SPI
I2C
ARM AT91SAM9260B
http://www.atmel.com/devices/sam9260.aspx
A 210MHz ARM926-based processor with an extensive range of communication peripherals. It embeds FS USB host and device interfaces, a 10/100 Ethernet MAC and an image sensor interface, as well as standard peripherals such as a Multimedia Card Interface (MCI), I2S, USARTs, master/slave SPIs, 16-bit Timers, a TWI and four-channel 10-bit ADC. The external bus interface features controllers for SDRAM and static memories including NAND flash and CompactFlash. The SAM9260 is available in 217-ball LFBGA and 208-pin QFP packages.
Linux4SAM
http://www.at91.com/linux4sam/bin/view/Linux4SAM/WebHome
http://www.at91.com/linux4sam/bin/view/Linux4SAM/GettingStarted
http://www.at91.com/linux4sam/bin/view/Linux4SAM/IioAdcDriver
FXOS8700CQ
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=FXOS8700CQ
Freescale’s FXOS8700CQ 6-axis sensor combines industry leading accelerometer and magnetometer sensors in a small 3 x 3 x 1.2 mm QFN plastic package. The 14-bit accelerometer and 16-bit magnetometer are combined with a high-performance ASIC to enable an eCompass solution capable of a typical orientation resolution of 0.1 degrees and sub 5 degree compass heading accuracy for most applications.
Hello world linux kernel module on Slackware 14
- su
- cd /usr/src/linux/
- mkdir helloWorld
- nano Makefile
obj-m = helloWorld.o KVERSION = $(shell uname -r) all: make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules clean: make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean
- nano helloWorld.c
1 #include <linux/module.h> /* Required by all modules */
2 #include <linux/kernel.h> /* Required for KERN_INFO */
3 #include <linux/init.h> /* Required for the macros */
4
5 static int __init helloworld_init(void)
6 {
7 printk(KERN_INFO "Hello world\n");
8 return 0;
9 }
10
11 static void __exit helloworld_exit(void)
12 {
13 printk(KERN_INFO "Bye all.\n");
14 }
15
16 module_init(hello_init);
17 module_exit(hello_exit);
- make
- tail -f /var/log/messages
- insmod helloWorld.ko
- rmmod helloWorld.ko