主页 > 开源代码  > 

CH36X系列接口芯片Linux系统开发库说明

CH36X系列接口芯片Linux系统开发库说明
一、概述

ch36x_lib库是Linux系统下用于开发CH36X系列设备CH365/CH367/CH368等芯片应用的软件接口库,此接口库主要提供以下功能:

设备打开/关闭

获取芯片类型/驱动版本

获取IO基地址/Memory基地址/中断号

配置空间读写(支持单字节/双字节/四字节)

IO空间读写(支持单字节/双字节/四字节)

Memory空间读写(支持单字节/双字节/四字节/块)

中断启用/禁用/设置中断服务程序

SPI模式设置/SPI透传接口/FLASH Lock/擦除/读写

I2C读写

应用框图:

二、接口函数说明

ch36x_open

int ch36x_open(const char *devname) 功能:打开设备 参数:devname:设备完整路径名 返回:成功时返回文件描述符,失败时返回负值

ch36x_close

int ch36x_close(int fd) ​ 功能:关闭设备 ​ 参数:fd:设备文件描述符 ​ 返回:成功时返回0,失败时返回其他值

ch36x_get_chiptype

int ch36x_get_chiptype(int fd, enum CHIP_TYPE *chiptype) ​ 功能:获取当前打开的芯片型号 ​ 参数:fd:设备文件描述符,chiptype:芯片类型名 ​ 返回:成功时返回0,失败时返回其他值

ch36x_get_version

int ch36x_get_version(int fd, char *version) ​ 功能:获取当前驱动版本 ​ 参数:fd:设备文件描述符,version:驱动版本字符串 ​ 返回:成功时返回0,失败时返回其他值

ch36x_get_irq

int ch36x_get_irq(int fd, int *irq) ​ 功能:获取系统分配的中断号 ​ 参数:fd:设备文件描述符,irq:设备中断号 ​ 返回:成功时返回0,失败时返回其他值

ch36x_get_ioaddr

int ch36x_get_ioaddr(int fd, void *ioaddr) ​ 功能:获取系统为设备分配的IO基址 ​ 参数:fd:设备文件描述符,ioaddr:系统分配的IO基址 ​ 返回:成功时返回0,失败时返回其他值

ch36x_get_memaddr

int ch36x_get_memaddr(int fd, void *memaddr) ​ 功能:获取系统为设备分配的Memory基址 ​ 参数:fd:设备文件描述符,memaddr:系统分配的Memory基址 ​ 返回:成功时返回0,失败时返回其他值

ch36x_read_config_byte

int ch36x_read_config_byte(int fd, uint8_t offset, uint8_t *obyte); ​ 功能:以字节为单位读取配置空间 ​ 参数:fd:设备文件描述符,offset:配置空间偏移地址,obyte:读取到的8位数据 ​ 返回:成功时返回0,失败时返回其他值

ch36x_read_config_word

int ch36x_read_config_word(int fd, uint8_t offset, uint16_t *oword); 功能:以字为单位读取配置空间 参数:fd:设备文件描述符,offset:配置空间偏移地址,oword:读取到的16位数据 返回:成功时返回0,失败时返回其他值

ch36x_read_config_dword

int ch36x_read_config_dword(int fd, uint8_t offset, uint32_t *odword) 功能:以双字为单位读取配置空间 参数:fd:设备文件描述符,offset:配置空间偏移地址,odword:读取到的32位数据 返回:成功时返回0,失败时返回其他值

ch36x_write_config_byte

int ch36x_write_config_byte(int fd, uint8_t offset, uint8_t ibyte); 功能:以字节为单位写数据到取配置空间 参数:fd:设备文件描述符,offset:配置空间偏移地址,ibyte:写入的8位数据 返回:成功时返回0,失败时返回其他值

ch36x_write_config_word

int ch36x_write_config_word(int fd, uint8_t offset, uint16_t iword) 功能:以字为单位写数据到取配置空间 参数:fd:设备文件描述符,offset:配置空间偏移地址,iword:写入的16位数据 返回:成功时返回0,失败时返回其他值

ch36x_write_config_dword

int ch36x_write_config_dword(int fd, uint8_t offset, uint32_t idword) 功能:以双字为单位写数据到取配置空间 参数:fd:设备文件描述符,offset:配置空间偏移地址,idword:写入的32位数据 返回:成功时返回0,失败时返回其他值

ch36x_read_io_byte

int ch36x_read_io_byte(int fd, uint8_t offset, uint8_t *obyte) 功能:以字节为单位读取IO空间 参数:fd:设备文件描述符,offset:IO空间偏移地址,obyte:读取到的8位数据 返回:成功时返回0,失败时返回其他值

ch36x_read_io_word

int ch36x_read_io_word(int fd, uint8_t offset, uint16_t *oword) 功能:以字为单位读取IO空间 参数:fd:设备文件描述符,offset:IO偏移地址,oword:读取到的16位数据 返回:成功时返回0,失败时返回其他值

ch36x_read_io_dword

int ch36x_read_io_dword(int fd, uint8_t offset, uint32_t *odword) 功能:以双字为单位读取IO空间 参数:fd:设备文件描述符,offset:IO空间偏移地址,odword:读取到的32位数据 返回:成功时返回0,失败时返回其他值

ch36x_write_io_byte

int ch36x_write_io_byte(int fd, uint8_t offset, uint8_t ibyte) 功能:以字节为单位写数据到IO空间 参数:fd:设备文件描述符,offset:IO空间偏移地址,ibyte:写入的8位数据 返回:成功时返回0,失败时返回其他值

ch36x_write_io_word

int ch36x_write_io_word(int fd, uint8_t offset, uint16_t iword) 功能:以字为单位写数据到IO空间 参数:fd:设备文件描述符,offset:IO空间偏移地址,iword:写入的16位数据 返回:成功时返回0,失败时返回其他值

ch36x_write_io_dword

int ch36x_write_io_dword(int fd, uint8_t offset, uint32_t dword); 功能:以双字为单位写数据到IO空间 参数:fd:设备文件描述符,offset:IO空间偏移地址,dword:写入的32位数据 返回:成功时返回0,失败时返回其他值

ch36x_read_mem_byte

int ch36x_read_mem_byte(int fd, uint16_t offset, uint8_t *obyte) 功能:以字节为单位读取Memory空间 参数:fd:设备文件描述符,offset:Memory空间偏移地址,obyte:读取到的8位数据 返回:成功时返回0,失败时返回其他值

ch36x_read_mem_word

int ch36x_read_mem_word(int fd, uint16_t offset, uint16_t *oword) 功能:以字为单位读取Memory空间 参数:fd:设备文件描述符,offset:Memory空间偏移地址,oword:读取到的16位数据 返回:成功时返回0,失败时返回其他值

ch36x_read_mem_dword

int ch36x_read_mem_dword(int fd, uint16_t offset, uint32_t *odword) 功能:以双字为单位读取Memory空间 参数:fd:设备文件描述符,offset:Memory空间偏移地址,odword:读取到的32位数据 返回:成功时返回0,失败时返回其他值

ch36x_write_mem_byte

int ch36x_write_mem_byte(int fd, uint16_t offset, uint8_t ibyte) 功能:以字节为单位写数据到Memory空间 参数:fd:设备文件描述符,offset:Memory空间偏移地址,ibyte:写入的8位数据 返回:成功时返回0,失败时返回其他值

ch36x_write_mem_word

int ch36x_write_mem_word(int fd, uint16_t offset, uint16_t iword) 功能:以字为单位写数据到Memory空间 参数:fd:设备文件描述符,offset:Memory空间偏移地址,iword:写入的16位数据 返回:成功时返回0,失败时返回其他值

ch36x_write_mem_dword

int ch36x_write_mem_dword(int fd, uint16_t offset, uint32_t idword) 功能:以双字为单位写数据到Memory空间 参数:fd:设备文件描述符,offset:Memory空间偏移地址,idword:写入的32位数据 返回:成功时返回0,失败时返回其他值

ch36x_read_mem_block

int ch36x_read_mem_block(int fd, uint16_t offset, uint8_t *obuffer, uint32_t len) 功能:以块为单位读取Memory空间的数据 参数:fd:设备文件描述符,obuffer:读取的数据,len:读取数据的长度 返回:成功时返回0,失败时返回其他值

ch36x_write_mem_block

int ch36x_write_mem_block(int fd, uint16_t offset, uint8_t *ibuffer, uint32_t len) 功能:以块为单位写入数据到Memory空间 参数:fd:设备文件描述符,ibuffer:要写入的数据,len:写入数据的长度 返回:成功时返回0,失败时返回其他值

ch36x_enable_isr

int ch36x_enable_isr(int fd, enum INTMODE mode) 功能:开启中断 参数:fd:设备文件描述符,mode:设置中断触发方式,支持高/低电平、上升沿/下降沿 返回:成功时返回0,失败时返回其他值

ch36x_disable_isr

int ch36x_disable_isr(int fd); 功能:关闭中断 参数:fd:设备文件描述符 返回:成功时返回0,失败时返回其他值

ch36x_set_int_routine

void ch36x_set_int_routine(int fd, void *isr_handler) 功能:设置中断服务函数 参数:fd:设备文件描述符,isr_handler:中断服务函数

ch36x_set_stream

int ch36x_set_stream(int fd, uint8_t mode) 功能:设置SPI模式 参数:fd:设备文件描述符,mode:SPI模式设置参数 返回:成功时返回0,失败时返回其他值

ch36x_stream_spi

int ch36x_stream_spi(int fd, uint8_t *ibuffer, uint32_t ilen, uint8_t *obuffer, uint32_t olen) 功能:SPI数据收发 参数:fd:设备文件描述符,ibuffer:发送的数据,ilen:发送数据的长度,obuffer:接收返回的数据,olen:接收数据的长度 返回:成功时返回0,失败时返回其他值

ch36x_flash_lock

int ch36x_flash_lock(int fd, uint8_t lock) 功能:锁/解锁FLASH 参数:fd:设备文件描述符,lock:锁/解锁使能,0->解锁,1->上锁 返回:成功时返回0,失败时返回其他值

ch36x_flash_erase

int ch36x_flash_erase(int fd, uint32_t addr, uint32_t ilen) 功能:擦除FLASH数据 参数:fd:设备文件描述符,addr:FLASH擦除起始地址,ilen:擦除长度 返回:成功时返回0,失败时返回其他值

ch36x_flash_read

int ch36x_flash_read(int fd, uint32_t addr, uint8_t *obuffer, uint32_t olen) 功能:读取FLASH数据 参数:fd:设备文件描述符,addr:FLASH读取起始地址,obuffer:读取的数据,ilen:读取数据长度 返回:成功时返回0,失败时返回其他值

ch36x_flash_write

int ch36x_flash_write(int fd, uint32_t addr, uint8_t *ibuffer, uint32_t ilen) 功能:写入FLASH数据 参数:fd:设备文件描述符,addr:FLASH写入起始地址,ibuffer:写入的数据,ilen:写入数据长度 返回:成功时返回0,失败时返回其他值

ch36x_i2c_write

int ch36x_i2c_write(int fd, uint8_t addr, uint8_t reg, uint8_t *ibuffer, uint32_t ilen) 功能:写I2C操作 参数:fd:设备文件描述符,addr:从机设备地址,reg:从机寄存器地址,ilen:发送数据长度 返回:成功时返回0,失败时返回其他值

ch36x_i2c_read

int ch36x_i2c_read(int fd, uint8_t addr, uint8_t reg, uint8_t *obuffer, uint32_t olen) 功能:读I2C操作 参数:fd:设备文件描述符,addr:从机设备地址,reg:从机寄存器地址,olen:读取数据长度 返回:成功时返回0,失败时返回其他值

开发资料包的demo文件夹下提供的例子程序演示了如何使用ch36x_lib库中的接口函数开发目标程序,一般情况下用户可以基于此例程修改,也可以根据此开发说明自行开发。

标签:

CH36X系列接口芯片Linux系统开发库说明由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“CH36X系列接口芯片Linux系统开发库说明