MoinMoin Logo
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Navigation

  • Start
  • Sitemap

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

Revision 13 as of 2015-02-22 03:31:50
  • ISELFinalProjectInfo

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

Create entry / attributes

https://godandme.wordpress.com/2011/04/05/how-to-make-a-sysfs-entry/

http://stackoverflow.com/questions/11063719/kernel-modules-parameters-in-sysfs-quick-reaction-for-changes

http://stackoverflow.com/questions/11067262/getting-parent-for-kobject-add

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(helloworld_init);
  17 module_exit(helloworld_exit);
  • make
  • tail -f /var/log/messages
  • insmod helloWorld.ko
  • /sys/module/helloWorld # module !!!
  • rmmod helloWorld.ko
  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01