Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
MCSPI_misc.c
MCSPI_misc.h
MCSPI_mod.c
MCSPI_reg.c
MCSPI_reg.h
Makefile
README.md
cm_per.h
control_module.h
mcspi_ioctl.h
my_gpio.h
testSPI.c

README.md

SPI_polling

Sending data over SPI using polling. One byte at a time...


Copyright (C) 2019 Aniruddha Kanhere

This program is free software; you can redistribute it and/or modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation.


This section of the repository has the polling version of SPI data transfer from the MCSPI0 module of the beaglebone black. The user can (currently) configure the module by directly modifying the (struct MCSPI) mcspi present in the MCSPI_mod.c file. For available configuration options one can look into the MCSPI_reg.h file which has definitions of the registers and the values it can possibly take.

The ioctl commands are defined in the MCSPI_ioctl.h file which has to be included in userspace programs as well as the kernel code. The commands and arguments are defined using the existing definition in MCSPI_reg.h. (USER_SPACE stops compilation of non-user space libraries while the program is being compiled for the userland program(s).)

Also (in near) future, I will be uploading the Interrupt driven versions of the SPI device driver (in another directory within the same repo).

If you just want to transmit some message with the given (default) configuration, first go into superuser mode using sudo su. You will be asked for your password. Enter it. Now the prompt will change from what it was before. Now, just type make in the terminal window after traversing to the directory of this project. If all goes well, you'll have an executable file called testSPI (Huzzah!!). Once you have that, just do sudo insmod SPI.ko and then just execute the file using ./testSPI and follow the commands.

You can’t perform that action at this time.