USB通信CY7C68013A的Linux驱动试验

0. 环境

EZ-USB FX2LP CY7C68013A USB 核心板
ubuntu16

1. 下载FX3_SDK_1.3.4_linux

EZ-USB™ FX3 Software Development Kit
https://www.infineon.com/cms/en/design-support/tools/sdk/usb-controllers-sdk/ez-usb-fx3-software-development-kit

2. 解压

压缩文件放到
/home/xxjianvm/work/FX3_SDK_1.3.4_Linux.tar.gz

解压

tar -zvxf FX3_SDK_1.3.4_Linux.tar.gz

得到了
fx3_firmware_linux.tar.gz
ARM_GCC.tar.gz                    # 交叉编译工具
eclipse_x64.tar.gz                # IDE
eclipse_x86.tar.gz
cyusb_linux_1.0.5.tar.gz        # cyusb驱动

继续解压

tar -zvxf fx3_firmware_linux.tar.gz && \
tar -zvxf ARM_GCC.tar.gz && \
tar -zvxf eclipse_x64.tar.gz && \
tar -zvxf cyusb_linux_1.0.5.tar.gz

 

3. 测试cyusb_linux

这个软件是开源的,编译安装

cd cyusb_linux_1.0.5
make 
sudo ./install.sh

问题:ubuntu18编译时出错:main.cpp:133:62: error: invalid conversion from ‘int’ to ‘int* (*)()’ [-fpermissive]
    libusb_error(r, "Error in 'get_active_config_descriptor' ");
未找到解决办法。ubuntu16则顺利编译。也没啥,ubuntu18没有图形界面的示例也可以顺利编译执行的。

cd cyusb_linux_1.0.5/bin
chmod +x cyusb_linux
export LD_LIBRARY_PATH=/home/xxjianvm/work/cyusb_linux_1.0.5/lib:$LD_LIBRARY_PATH && \
./cyusb_linux

USB通信CY7C68013A的Linux驱动试验_第1张图片
4. eclipse搭建环境(跳过,FX2LP是51内核的要用keil,eclipse适用arm内核的FX3LP)

尝试运行
cd eclipse
./ezUsbSuite

 

失败,提示没有java环境

下载Java version 1.6.0_41
镜像站:
https://repo.huaweicloud.com/java/jdk/
http://www.codebaoku.com/jdk/jdk-index.html

下载到
/home/xxjianvm/work/java/jdk-6u45-linux-x64.bin

安装到当前目录
chmod 777 jdk-6u45-linux-x64.bin
./jdk-6u45-linux-x64.bin


/home/xxjianvm/work/java/jdk1.6.0_45/jre
拷贝到
/home/xxjianvm/work/eclipse/jre

即可运行eclipse
cd /home/xxjianvm/work/eclipse
./ezUsbSuite

设置工作区:
/home/xxjianvm/work/Workspace

5. cyusb demo

cd cyusb_linux_1.0.5/src
make
./01_getdesc

USB通信CY7C68013A的Linux驱动试验_第2张图片

 

6. 创建自己的main.c

cd cyusb_linux_1.0.5/src
cp 01_getdesc.cpp ex1.cpp 
export LD_LIBRARY_PATH=/home/xxjianvm/work/cyusb_linux_1.0.5/lib:$LD_LIBRARY_PATH
修改Makefile,添加一行
    gcc -o ex1                  ex1.cpp                  -L ../lib -l cyusb

7. bolkloop测试

7.1 烧写bolkloop

打开上位机程序

cd cyusb_linux_1.0.5/bin
chmod +x cyusb_linux
export LD_LIBRARY_PATH=/home/xxjianvm/work/cyusb_linux_1.0.5/lib:$LD_LIBRARY_PATH && \
./cyusb_linux


下载程序
选择设备 -> Program -> Select file -> 
-> 选择 /home/xxjianvm/work/cyusb_linux_1.0.5/fx2_images/bulkloop.hex
-> Start Download

USB通信CY7C68013A的Linux驱动试验_第3张图片

 

7.2 测试

7.2.1 cyusb_linux图形界面测试

选择设备 -> Data Transfers -> 
-> Data-Out输入 12345678 -> 点击SEND
再点击 RECEIVE接收到刚才发送的数据

USB通信CY7C68013A的Linux驱动试验_第4张图片

 

7.2.2 命令行测试

cd /home/xxjianvm/work/zhyb/cyusb_linux_1.0.5/src
export LD_LIBRARY_PATH=/home/xxjianvm/work/cyusb_linux_1.0.5/lib:$LD_LIBRARY_PATH
./08_cybulk

USB通信CY7C68013A的Linux驱动试验_第5张图片

 

参考:https://github.com/nickdademo/cypress-fx3-sdk-linux


 

你可能感兴趣的:(linux,嵌入式硬件)