コード例 #1
0
static void doLoad (int argc, char *argv [])
{
  char *module1, *module2 ;
  char cmd [80] ;
  char *file1, *file2 ;
  char args1 [32], args2 [32] ;

  if (argc < 3)
    _doLoadUsage (argv) ;

  args1 [0] = args2 [0] = 0 ;

  /**/ if (strcasecmp (argv [2], "spi") == 0)
  {
    module1 = "spidev" ;
    module2 = "spi_bcm2708" ;
    file1  = "/dev/spidev0.0" ;
    file2  = "/dev/spidev0.1" ;
    if (argc == 4)
      sprintf (args1, " bufsize=%d", atoi (argv [3]) * 1024) ;
    else if (argc > 4)
      _doLoadUsage (argv) ;
  }
  else if (strcasecmp (argv [2], "i2c") == 0)
  {
    module1 = "i2c_dev" ;
    module2 = "i2c_bcm2708" ;
    file1  = "/dev/i2c-0" ;
    file2  = "/dev/i2c-1" ;
    if (argc == 4)
      sprintf (args2, " baudrate=%d", atoi (argv [3]) * 1000) ;
    else if (argc > 4)
      _doLoadUsage (argv) ;
  }
  else
    _doLoadUsage (argv) ;

  if (!moduleLoaded (module1))
  {
    sprintf (cmd, "modprobe %s%s", module1, args1) ;
    system (cmd) ;
  }

  if (!moduleLoaded (module2))
  {
    sprintf (cmd, "modprobe %s%s", module2, args2) ;
    system (cmd) ;
  }

  if (!moduleLoaded (module2))
  {
    fprintf (stderr, "%s: Unable to load %s\n", argv [0], module2) ;
    exit (1) ;
  }

  sleep (1) ;	// To let things get settled

  changeOwner (argv [0], file1) ;
  changeOwner (argv [0], file2) ;
}
コード例 #2
0
ファイル: gpio.cpp プロジェクト: ASA1976/wiringPi-cpp
static void doUnLoad (int argc, char *argv [])
{
  const char *module1, *module2 ;
  char cmd [80] ;

  if (argc != 3)
    _doUnLoadUsage (argv) ;

  /**/ if (strcasecmp (argv [2], "spi") == 0)
  {
    module1 = "spidev" ;
    module2 = "spi_bcm2708" ;
  }
  else if (strcasecmp (argv [2], "i2c") == 0)
  {
    module1 = "i2c_dev" ;
    module2 = "i2c_bcm2708" ;
  }
  else
    _doUnLoadUsage (argv) ;

  if (moduleLoaded (module1))
  {
    sprintf (cmd, "/sbin/rmmod %s", module1) ;
    system (cmd) ;
  }

  if (moduleLoaded (module2))
  {
    sprintf (cmd, "/sbin/rmmod %s", module2) ;
    system (cmd) ;
  }
}
コード例 #3
0
ファイル: gpio.c プロジェクト: LeMaker/WiringLMK
static void doI2Cdetect (int argc, char *argv [])
{
    int port = piBoardRev () == 1 ? 0 : 1 ;
    char command [128] ;
    struct stat statBuf ;

    //add for S500
    if( S500_REV == piBoardRev())
    {
        if (stat (I2CDETECT, &statBuf) < 0)
        {
            fprintf (stderr, "%s: Unable to find i2cdetect command: %s\n", argv [0], strerror (errno)) ;
            return ;
        }

        if (!moduleLoaded ("i2c-owl"))
        {
            fprintf (stderr, "%s: The I2C kernel module(s) are not loaded.\n", argv [0]) ;
        }

        sprintf (command, "%s -y %d", I2CDETECT, 2) ;
        if (system (command) < 0)
            fprintf (stderr, "%s: Unable to run i2cdetect: %s\n", argv [0], strerror (errno)) ;
    }
    /*add for BananaPro by LeMaker team*/
    else if(BP_REV == piBoardRev())
    {
        if (stat (I2CDETECT, &statBuf) < 0)
        {
            fprintf (stderr, "%s: Unable to find i2cdetect command: %s\n", argv [0], strerror (errno)) ;
            return ;
        }

        if (!moduleLoaded ("i2c-sunxi"))
        {
            fprintf (stderr, "%s: The I2C kernel module(s) are not loaded.\n", argv [0]) ;
            //return ;
        }

        sprintf (command, "%s -y %d", I2CDETECT, 2) ;
        if (system (command) < 0)
            fprintf (stderr, "%s: Unable to run i2cdetect: %s\n", argv [0], strerror (errno)) ;
    }
    else
    {

    }
    /*end 2014.08.19*/
}
コード例 #4
0
ファイル: gpio.c プロジェクト: lolsborn/WiringPi
static void doLoad (int argc, char *argv [])
{
  char *module ;
  char cmd [80] ;
  char *file1, *file2 ;

  if (argc != 3)
    _doLoadUsage (argv) ;

  /**/ if (strcasecmp (argv [2], "spi") == 0)
  {
    module = "spi_bcm2708" ;
    file1  = "/dev/spidev0.0" ;
    file2  = "/dev/spidev0.1" ;
  }
  else if (strcasecmp (argv [2], "i2c") == 0)
  {
    module = "i2c_bcm2708" ;
    file1  = "/dev/i2c-0" ;
    file2  = "/dev/i2c-1" ;
  }
  else
    _doLoadUsage (argv) ;

  if (!moduleLoaded (module))
  {
    sprintf (cmd, "modprobe %s", module) ;
    system (cmd) ;
  }

  if (!moduleLoaded (module))
  {
    fprintf (stderr, "%s: Unable to load %s\n", argv [0], module) ;
    exit (1) ;
  }

  sleep (1) ;	// To let things get settled

  changeOwner (argv [0], file1) ;
  changeOwner (argv [0], file2) ;
}
コード例 #5
0
ファイル: gpio.cpp プロジェクト: ASA1976/wiringPi-cpp
static void doI2Cdetect (int argc, char *argv [])
{
  int port = piBoardRev () == 1 ? 0 : 1 ;
  char command [128] ;
  struct stat statBuf ;

  if (stat (I2CDETECT, &statBuf) < 0)
  {
    fprintf (stderr, "%s: Unable to find i2cdetect command: %s\n", argv [0], strerror (errno)) ;
    return ;
  }

  if (!moduleLoaded ("i2c_dev"))
  {
    fprintf (stderr, "%s: The I2C kernel module(s) are not loaded.\n", argv [0]) ;
    return ;
  }

  sprintf (command, "%s -y %d", I2CDETECT, port) ;
  if (system (command) < 0)
    fprintf (stderr, "%s: Unable to run i2cdetect: %s\n", argv [0], strerror (errno)) ;

}
コード例 #6
0
ファイル: gpio.c プロジェクト: LeMaker/WiringLMK
static void doLoad (int argc, char *argv [])
{
    char *module1, *module2 ;
    char cmd [80] ;
    char *file1, *file2 ;
    char args1 [32], args2 [32] ;

    if (argc < 3)
        _doLoadUsage (argv) ;

    args1 [0] = args2 [0] = 0 ;

    //add for S500
    if(S500_REV == piBoardRev())
    {
        if (strcasecmp (argv [2], "spi") == 0)
        {
            module1 = "spidev" ;
            module2 = "spi-owl" ;
            file1  = "/dev/spidev0.0" ;
            file2  = "/dev/spidev0.1" ;
            if (argc == 4)
                sprintf (args1, " bufsiz=%d", atoi (argv [3]) * 1024) ;
            else if (argc > 4)
                _doLoadUsage (argv) ;
        }
        else if (strcasecmp (argv [2], "i2c") == 0)
        {
            module1 = "i2c_dev" ;
            module2 = "i2c-owl" ;
            file1  = "/dev/i2c-2" ;
            file2  = "/dev/i2c-2" ;
            if (argc == 4)
                sprintf (args2, " baudrate=%d", atoi (argv [3]) * 1000) ;
            else if (argc > 4)
                _doLoadUsage (argv) ;
        }
        else
            _doLoadUsage (argv) ;


        if (!moduleLoaded (module1))
        {
            sprintf (cmd, "  %s%s", module1, args1) ;
            system (cmd) ;
        }


        if (!moduleLoaded (module2))
        {
            sprintf (cmd, "modprobe %s%s", module2, args2) ;
            system (cmd) ;
        }

        if (!moduleLoaded (module2))
        {
            fprintf (stderr, "%s: Unable to load %s\n", argv [0], module2) ;
            exit (1) ;
        }
    }
    /*add for BananaPro by LeMaker team*/
    else if(BP_REV ==  piBoardRev())
    {
        /**/ if (strcasecmp (argv [2], "spi") == 0)
        {
            module1 = "spidev" ;
            module2 = "spi-sun7i" ;
            file1  = "/dev/spidev0.0" ;
            file2  = "/dev/spidev0.1" ;
            if (argc == 4)
                sprintf (args1, " bufsiz=%d", atoi (argv [3]) * 1024) ;
            else if (argc > 4)
                _doLoadUsage (argv) ;
        }
        else if (strcasecmp (argv [2], "i2c") == 0)
        {
            module1 = "i2c_dev" ;
            module2 = "i2c-sunxi" ;
            file1  = "/dev/i2c-2" ;
            file2  = "/dev/i2c-2" ;
            if (argc == 4)
                sprintf (args2, " baudrate=%d", atoi (argv [3]) * 1000) ;
            else if (argc > 4)
                _doLoadUsage (argv) ;
        }
        else
            _doLoadUsage (argv) ;


        if (!moduleLoaded (module1))
        {
            sprintf (cmd, "  %s%s", module1, args1) ;
            system (cmd) ;
        }


        if (!moduleLoaded (module2))
        {
            sprintf (cmd, "modprobe %s%s", module2, args2) ;
            system (cmd) ;
        }

        if (!moduleLoaded (module2))
        {
            fprintf (stderr, "%s: Unable to load %s\n", argv [0], module2) ;
            exit (1) ;
        }
    }
    else
    {

    }
    /*end 2014.08.19*/
    sleep (1) ;	// To let things get settled

    changeOwner (argv [0], file1) ;
    changeOwner (argv [0], file2) ;
}