main.c
/*
* 说明:SPI通讯实现
* 方式一: 同时发送与接收实现函数: SPI_Transfer()
* 方式二:发送与接收分开来实现
* SPI_Write() 只发送
* SPI_Read() 只接收
* 两种方式不同之处:方式一,在发的过程中也在接收,第二种方式,收与发单独进行
* Created on: 2013-5-28
* Author: lzy
*/
#include <stdint.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <getopt.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <linux/types.h>
#include <linux/spi/spidev.h>
#include "sja1105.h"
#define SPI_DEBUG 1
//static uint32_t configBurst0_0[64] = {0xAF00030EU, 0x05000000U, 0x00000005U, 0x9A1CA02BU, 0x26420000U, 0x04250000U, 0xFFF80000U, 0xFFFFFFFFU, 0x0000FFFFU, 0x00F1AB13U, 0x06000000U, 0x0000005AU, 0x4ED2C50FU, 0xFEFB0000U, 0x03FFFFFFU, 0xFEFB0000U, 0x03FFFFFFU, 0xFEFB0000U, 0x03FFFFFFU, 0xFEFB0000U, 0x03FFFFFFU, 0xFEFB0000U, 0x03FFFFFFU, 0xFEFB0000U, 0x03FFFFFFU, 0xFEFB0000U, 0x03FFFFFFU, 0xFEFB0000U, 0x03FFFFFFU, 0xFEFB0000U, 0x07FFFFFFU, 0xFEFB0000U, 0x07FFFFFFU, 0xFEFB0000U, 0x07FFFFFFU, 0xFEFB0000U, 0x07FFFFFFU, 0xFEFB0000U, 0x07FFFFFFU, 0xFEFB0000U, 0x07FFFFFFU, 0xFEFB0000U, 0x07FFFFFFU, 0xFEFB0000U, 0x07FFFFFFU, 0xFEFB0000U, 0x0BFFFFFFU, 0xFEFB0000U, 0x0BFFFFFFU, 0xFEFB0000U, 0x0BFFFFFFU, 0xFEFB0000U, 0x0BFFFFFFU, 0xFEFB0000U, 0x0BFFFFFFU, 0xFEFB0000U, 0x0BFFFFFFU, 0xFEFB0000U, 0x0BFFFFFFU, 0xFEFB0000U, 0x0BFFFFFFU, 0xFEFB0000U, 0x0FFFFFFFU, 0xFEFB0000U};
//static uint32_t configBurst0_1[64] = {0x0FFFFFFFU, 0xFEFB0000U, 0x0FFFFFFFU, 0xFEFB0000U, 0x0FFFFFFFU, 0xFEFB0000U, 0x0FFFFFFFU, 0xFEFB0000U, 0x0FFFFFFFU, 0xFEFB0000U, 0x0FFFFFFFU, 0xFEFB0000U, 0x0FFFFFFFU, 0xFEFB0000U, 0x13FFFFFFU, 0xFEFB0000U, 0x13FFFFFFU, 0xFEFB0000U, 0x13FFFFFFU, 0xFEFB0000U, 0x13FFFFFFU, 0xFEFB0000U, 0x13FFFFFFU, 0xFEFB0000U, 0x13FFFFFFU, 0xFEFB0000U, 0x13FFFFFFU, 0xFEFB0000U, 0x13FFFFFFU, 0xFEFB0000U, 0xA3FFFFFFU, 0xFEFB0000U, 0xA7FFFFFFU, 0xFEFB0000U, 0xABFFFFFFU, 0xFEFB0000U, 0xAFFFFFFFU, 0xFEFB0000U, 0xB3FFFFFFU, 0x99CE35DCU, 0x07000000U, 0x00000002U, 0x7D0BCBF2U, 0x00000000U, 0x003FF000U, 0x88388685U, 0x08000000U, 0x0000001AU, 0x6AF62353U, 0x10000000U, 0xF7BDF58DU, 0x10000000U, 0xEF7BF58DU, 0x10000000U, 0xDEF7F58DU, 0x10000000U, 0xBDEFF58DU, 0x10000000U, 0x7BDFF58DU, 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U};
//static uint32_t configBurst0_2[64] = {0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, 0xC004A606U, 0x09000000U, 0x00000028U, 0x0DB43AC9U, 0x80000000U, 0xFE000003U, 0x00000001U, 0x07FC0102U, 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, 0x80000000U, 0xFE000003U, 0x00000001U, 0x07FC0104U, 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, 0x80000000U, 0xFE000003U, 0x00000001U, 0x07FC0104U, 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, 0x80000000U, 0xFE000003U, 0x00000001U, 0x07FC0102U, 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, 0x80000000U, 0xFE000003U, 0x00000001U, 0x07FC0104U, 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, 0x7B7ABF9DU, 0x0D000000U, 0x00000004U, 0x12D08C8FU, 0x02000000U, 0x00000000U, 0x04008010U, 0x00010020U, 0x34E31D78U};
//static uint32_t configBurst0_3[38] = {0x0E000000U, 0x00000003U, 0xC8A7CEE6U, 0x0071C000U, 0x00000000U, 0x00000000U, 0xC3F704B9U, 0x10000000U, 0x00000004U, 0x8AA0DFBCU, 0x80000000U, 0x0DF03FFBU, 0xB2B78098U, 0x40980DF7U, 0xE6C9318CU, 0x11000000U, 0x0000000BU, 0xEFA3E65AU, 0x01C00000U, 0x42040000U, 0xFFFFFC45U, 0xFFFFFFFFU, 0xFFDD37FFU, 0xFFFF0000U, 0x0000FFFFU, 0x0EFFFFFFU, 0x80C20000U, 0x00000301U, 0x450180C2U, 0xD7C68C8DU, 0x4E000000U, 0x00000001U, 0x3A5D5E24U, 0x28940000U, 0x01DC38F8U, 0x00000000U, 0x00000000U, 0x9DB7E6FDU};
static uint32_t configBurst0_0[64] = {0xAF00030EU, 0x05000000U, 0x00000005U, 0x9A1CA02BU, 0x26420000U, 0x04250000U, 0xFFF80000U, 0xFFFFFFFFU, 0x0000FFFFU, 0x00F1AB13U, 0x06000000U, 0x0000005AU, 0x4ED2C50FU, 0xFEFB0000U, 0x03FFFFFFU, 0xFEFB0000U, 0x03FFFFFFU, 0xFEFB0000U, 0x03FFFFFFU, 0xFEFB0000U, 0x03FFFFFFU, 0xFEFB0000U, 0x03FFFFFFU, 0xFEFB0000U, 0x03FFFFFFU, 0xFEFB0000U, 0x03FFFFFFU, 0xFEFB0000U, 0x03FFFFFFU, 0xFEFB0000U, 0x07FFFFFFU, 0xFEFB0000U, 0x07FFFFFFU, 0xFEFB0000U, 0x07FFFFFFU, 0xFEFB0000U, 0x07FFFFFFU, 0xFEFB0000U, 0x07FFFFFFU, 0xFEFB0000U, 0x07FFFFFFU, 0xFEFB0000U, 0x07FFFFFFU, 0xFEFB0000U, 0x07FFFFFFU, 0xFEFB0000U, 0x0BFFFFFFU, 0xFEFB0000U, 0x0BFFFFFFU, 0xFEFB0000U, 0x0BFFFFFFU, 0xFEFB0000U, 0x0BFFFFFFU, 0xFEFB0000U, 0x0BFFFFFFU, 0xFEFB0000U, 0x0BFFFFFFU, 0xFEFB0000U, 0x0BFFFFFFU, 0xFEFB0000U, 0x0BFFFFFFU, 0xFEFB0000U, 0x0FFFFFFFU, 0xFEFB0000U};
static uint32_t configBurst0_1[64] = {0x0FFFFFFFU, 0xFEFB0000U, 0x0FFFFFFFU, 0xFEFB0000U, 0x0FFFFFFFU, 0xFEFB0000U, 0x0FFFFFFFU, 0xFEFB0000U, 0x0FFFFFFFU, 0xFEFB0000U, 0x0FFFFFFFU, 0xFEFB0000U, 0x0FFFFFFFU, 0xFEFB0000U, 0x13FFFFFFU, 0xFEFB0000U, 0x13FFFFFFU, 0xFEFB0000U, 0x13FFFFFFU, 0xFEFB0000U, 0x13FFFFFFU, 0xFEFB0000U, 0x13FFFFFFU, 0xFEFB0000U, 0x13FFFFFFU, 0xFEFB0000U, 0x13FFFFFFU, 0xFEFB0000U, 0x13FFFFFFU, 0xFEFB0000U, 0xA3FFFFFFU, 0xFEFB0000U, 0xA7FFFFFFU, 0xFEFB0000U, 0xABFFFFFFU, 0xFEFB0000U, 0xAFFFFFFFU, 0xFEFB0000U, 0xB3FFFFFFU, 0x99CE35DCU, 0x07000000U, 0x00000002U, 0x7D0BCBF2U, 0x00000000U, 0x003FF000U, 0x88388685U, 0x08000000U, 0x0000001AU, 0x6AF62353U, 0x10000000U, 0xF7BDF58DU, 0x10000000U, 0xEF7BF58DU, 0x10000000U, 0xDEF7F58DU, 0x10000000U, 0xBDEFF58DU, 0x10000000U, 0x7BDFF58DU, 0x00000000U, 0x00000000U, 0