cancel
Showing results for 
Search instead for 
Did you mean: 

USB superspeed peripherals

hongliangli
New Contributor

你好请问:

我用usb3014芯片开发的项目,运行方式是usb与fpga进行高速传输,如果有SPI事件则进行SPI与fpga传输,SPI传输完成则就绪usb与fpga的高速传输通道。

我遇到的问题是:只用SPI数据传输可以用,只用Slavefifo与fpga传输也可以,但是两者结合在一起就不可以,线程不知道怎么切换。注:SPI与Slavefifo并不是同时与fpga传输,SPI是只要接收到上位机命令就传输,Slavefifo也是一样。

以下是我的固件程序:

  1. 定义两个线程,参考官网摄像头程序,一个线程处理命令(上位机控制SPI传输),一个线程处理Slavefifo数据传输
 

hongliangli_10-1638942725667.pnghongliangli_11-1638942732598.png

 

hongliangli_12-1638942750448.pnghongliangli_13-1638942755389.png

 

 

 

 

 

 2.命令处理代码

  1.  
    hongliangli_9-1638942710025.png

     



     

  2. 自己定义的GPIO,模仿SPI时序
  3.  
    hongliangli_6-1638942608240.png

     

     

0 Likes
1 Solution
YiZ_31
Moderator
Moderator

Hi,

 

您是需要知道两个线程之间切换的方法吗?FX3的固件是基于ThreadX开发的,不同thread间的切换您可以搜索一下RTOS入门

View solution in original post

0 Likes
3 Replies
YiZ_31
Moderator
Moderator

Hi,

 

您是需要知道两个线程之间切换的方法吗?FX3的固件是基于ThreadX开发的,不同thread间的切换您可以搜索一下RTOS入门

View solution in original post

0 Likes
hongliangli
New Contributor

是的,我参考AN75779摄像头的固件,不知为什么切换不了,AN75779里面也是创建了两个线程,是用时间标志切换的 ,而我和模仿的固件程序就会出现卡死。

我了解了RTOS内核入门,但是FX3的固件有些函数没有,比如中断函数,官网资料中没有介绍深入,

您那边没有一些有线程切换的资料吗,主要是有些网上的threadx源码和FX3中的固件不一样,FX3固件中有的缺少!

帮帮忙给点提示资料,多谢!!

0 Likes
YiZ_31
Moderator
Moderator

SDK中的RtosExample例程就是最基本的不同thread之间的切换。 您遇到的具体问题是什么?

0 Likes