共用方式為


I/O 控制項 ()

本主題涵蓋屬於 Azure 球體 SDK 隨附之頁首檔案一部分的 Linux 附加元件。 針對 ADC) 和脈衝寬度調製 ( (PWM) 周邊設備、一般用途 I/O (gpio) 、通用非同步接收器傳輸器 (UART) ,以及 CPU 效能縮放 (CPUFreq) ,Linux 轉譯程式會公開的 Linux 轉譯程式。

如果您偏好不使用 Linux 版本,請使用 Azure 球體執行時間文件庫中提供的 API。

Linux Open () 呼叫為 I/O 函數建立檔案和檔案描述器時,支援下列檔案路徑:

  /dev/gpiochip<number>
  /dev/tty<affix><number>
  /dev/pwm<number>
  /dev/adc<number>

CPUFreq

此管理行為相當於在 sysfs 中設定縮放比例的語法原則屬性。 請參閱 scaling_governor。 您可以 azure_sphere_cpufreq_dev_scaling_governor_for_cpu 在 usr/include/linux/cpufreq_dev.h 找到結構定義

#define CPUFREQ_SET_SCALING_GOVERNOR_FOR_CPU _IOW('p', 0x0A, struct azure_sphere_cpufreq_dev_scaling_governor_for_cpu)

參數

  • Fd 要開啟的檔案描述
  • CPUFREQ_SET_SCALING_GOVERNOR_FOR_CPU 要求
  • &Sgn 指示詳細資料

範例代碼

int fd = open("/dev/cpufreq", O_WRONLY | O_CLOEXEC, 0);
if (fd >= 0) {
    struct azure_sphere_cpufreq_dev_scaling_governor_for_cpu sgn;
    sgn.cpu = 0;
    sgn.governor_name = "ondemand" //allowed values are conservative, ondemand, and performance
    int res = ioctl(fd, CPUFREQ_SET_SCALING_GOVERNOR_FOR_CPU, &sgn);
}

Adc

下列工業用 I/O (IIO) 欄會在 Azure 球體中公開 ADC,並在 usr/include/linux/iio/privacytl.h 中定義:

  #define IIO_GET_DEVICE_INFO_BUFFER_TOTAL_SIZE_IOCTL _IOR('i', 0xD0, unsigned int)
  #define IIO_GET_DEVICE_INFO_BUFFER_IOCTL _IOWR('i', 0xD1, struct iio_ioctl_dev_info_buffer)
  #define IIO_GET_CHANNEL_SPEC_BUFFER_TOTAL_SIZE_IOCTL _IOWR('i', 0xD2, struct iio_ioctl_chan_spec_buffer_size)
  #define IIO_GET_CHANNEL_SPEC_BUFFER_IOCTL _IOWR('i', 0xD3, struct iio_ioctl_chan_spec_buffer)
  #define IIO_READ_RAW_CHANNEL_INFO_IOCTL _IOWR('i', 0xD4, struct iio_ioctl_raw_channel_info)
  #define IIO_WRITE_RAW_CHANNEL_INFO_IOCTL _IOWR('i', 0xD5, struct iio_ioctl_raw_channel_info)
  #define IIO_READ_CHANNEL_EXT_INFO_IOCTL _IOWR('i', 0xD6, struct iio_ioctl_read_chan_ext_info)
  #define IIO_WRITE_CHANNEL_EXT_INFO_IOCTL _IOWR('i', 0xD7, struct iio_ioctl_write_chan_ext_info)
  #define IIO_SCAN_MASK_QUERY_BIT_IOCTL _IOW('i', 0xD8, unsigned int)
  #define IIO_SCAN_MASK_SET_BIT_IOCTL_IOW('i', 0xD9, unsigned int)
  #define IIO_SCAN_MASK_CLEAR_BIT_IOCTL _IOW('i', 0xDA, unsigned int)
  #define IIO_BUFFER_GET_ENABLE_IOCTL _IO('i', 0xDB)
  #define IIO_BUFFER_SET_ENABLE_IOCTL _IOW('i', 0xDC, unsigned int)
  #define IIO_BUFFER_GET_LENGTH_IOCTL_IO('i', 0xDD)
  #define IIO_BUFFER_SET_LENGTH_IOCTL _IOW('i', 0xDE, unsigned int)
  #define IIO_BUFFER_GET_WATERMARK_IOCTL _IO('i', 0xDF)
  #define IIO_BUFFER_SET_WATERMARK_IOCTL _IOW('i', 0xE0, unsigned int)

如需詳細資訊,請參閱 在高階應用程式中使用 ADC

Pwm

下列表單會在頁首檔案 Sysroots/ApiSet/usr/include/linux/pwm.h (Linux OS) 中公開 PWM:

 #define PWM_APPLY_STATE _IOW(0xf7, 0x01, struct pwm_chardev_params)
 #define PWM_GET_STATE _IOWR(0xf7, 0x02, struct pwm_chardev_params)

如需有關設定應用程式資訊清單以存取這些表單的詳細資訊,請參閱 應用程式資訊清單設定在高階應用程式中使用 PWM

GPIO

下列表單會在頁首檔案 usr/include/linux/gpio 中公開 GPIO。h:

  #define GPIOHANDLE_GET_LINE_VALUES_IOCTL _IOWR(0xB4, 0x08, struct gpiohandle_data)
  #define GPIOHANDLE_SET_LINE_VALUES_IOCTL _IOWR(0xB4, 0x09, struct gpiohandle_data)

  #define GPIO_GET_CHIPINFO_IOCTL _IOR(0xB4, 0x01, struct gpiochip_info)
  #define GPIO_GET_LINEINFO_IOCTL _IOWR(0xB4, 0x02, struct gpioline_info)
  #define GPIO_GET_LINEHANDLE_IOCTL _IOWR(0xB4, 0x03, struct gpiohandle_request)
  #define GPIO_GET_LINEEVENT_IOCTL _IOWR(0xB4, 0x04, struct gpioevent_request)

如需有關設定應用程式資訊清單以存取這些 GPIO 表單的詳細資訊,請參閱 應用程式資訊清單設定在高階應用程式中使用 GPIO

Uart

如需終端機和序列線仰賴通用非同步接收器傳輸器 (UART) 的附加元件清單,請參閱 適用于終端機和循序的 Linux 標籤

如需有關設定應用程式資訊清單以存取這些 UART 表單的詳細資訊,請參閱 應用程式資訊清單設定在高階應用程式中使用 UART