搜索
bottom↓
12
返回列表 发新帖
楼主: wye11083

有限解答C/C++/Xilinx方面的较难问题, 欢迎提问

  [复制链接]

出0入0汤圆

发表于 2020-8-1 04:18:37 | 显示全部楼层
支持楼主

出0入0汤圆

发表于 2020-8-3 22:46:54 | 显示全部楼层
支持楼主

出0入0汤圆

发表于 2020-8-4 09:03:54 | 显示全部楼层
支持,希望在这个帖子下多学习,取得进步

出0入0汤圆

发表于 2020-8-15 22:27:23 | 显示全部楼层
请楼主介绍下,多文档设计,如果躲开MFC,C++还有比较容易上手的工具吗?还有上次提到的线程里加SLEEP(100),加上后CPU的占用率仍是100%。

出0入442汤圆

 楼主| 发表于 2020-8-15 22:29:14 来自手机 | 显示全部楼层
zw_7627 发表于 2020-8-15 22:27
请楼主介绍下,多文档设计,如果躲开MFC,C++还有比较容易上手的工具吗?还有上次提到的线程里加SLEEP(100) ...

不知道了。qt你可以看看。cpu 100%还是你代码有跑,没有执行sleep,你调试。

出0入0汤圆

发表于 2020-8-15 22:34:14 | 显示全部楼层
wye11083 发表于 2020-8-15 22:29
不知道了。qt你可以看看。cpu 100%还是你代码有跑,没有执行sleep,你调试。 ...

谢谢,还有个情况,比如我想开个120秒的定时器,第一种settimier(1,1000,null);然后计数;第二种第一种settimier(1,120000,null);两种定时的时间并不准确。是什么原因,有什么好的解决办法?

出0入442汤圆

 楼主| 发表于 2020-8-15 23:07:41 来自手机 | 显示全部楼层
zw_7627 发表于 2020-8-15 22:34
谢谢,还有个情况,比如我想开个120秒的定时器,第一种settimier(1,1000,null);然后计数;第二种第一种se ...

pc本来就不精确。你可以用mutex配合timeout用。

出0入0汤圆

发表于 2020-9-28 13:34:02 | 显示全部楼层
mark,收藏慢慢学习

出0入0汤圆

发表于 2020-10-9 11:33:29 | 显示全部楼层
请教两个关于 C++的问题,也是困扰我两天的问题。
1、 7347F77A15A902DB20688C1A2C2AA2AC.jpg
此处 typedef 的函数指针定义为啥我不能放在类里面,图中第二个箭头所示的方向,放在里面就会报错,参见最下面一个箭头。

2、我在移植一个 shell 类的时候,涉及到函数指针的问题,本意上 shell 的命令都是通过 public 的外部函数进行添加,如下:
  1. void X_Shell::addCommand(const char *name, ShellFunctionT functionPoint)
  2. {
  3.         strncpy(&this->_staticCommand[X_Shell::commandCount].commandName[0], name, sizeof(this->_staticCommand[X_Shell::commandCount].commandName));
  4.         this->_staticCommand[X_Shell::commandCount].functionPoint = functionPoint;

  5.         X_Shell::commandCount++;

  6.         if (X_Shell::commandCount >= X_SHELL_MAX_CMD_COUNT)
  7.         {
  8.                 this->_shellSerial->print("Too many commands has been added!\r\n");
  9.         }
  10. }
复制代码

其中
  1. _staticCommand
复制代码
的结构体定义如下:
  1. typedef struct
  2. {
  3.         char commandName[X_SHELL_CMD_NAME_MAX_LENGTH];
  4.         void (*functionPoint)(char argc, char *argv);
  5. } CommandT;
复制代码


我为了内置一个保留命令,“ls”,所以将这个命令加入
  1. _staticCommand[0]
复制代码

但是在构造函数中初始化的的时候一直报错,
  1. X_Shell::X_Shell(HardwareSerial &serial)
  2. {
  3.         this->_shellSerial = &serial;

  4.         strncpy(this->_shell.userName, X_SHELL_USER_NAME, sizeof(this->_shell.userName));

  5.         strncpy(this->_staticCommand[0].commandName, "ls", sizeof(_staticCommand[0].commandName));
  6.         this->_staticCommand[0].functionPoint = this->shellListCommand;

  7.         this->_shell.command = &_staticCommand[0];
  8. }
复制代码

其中shellListCommand的定义如下:
  1. void X_Shell::shellListCommand(char argc, char *argv)
  2. {
  3.         if (!strcmp("all", &argv[argv[1]]))
  4.         {
  5.                 for (uint8_t i = 0; this->_staticCommand[i].functionPoint != NULL; i++)
  6.                 {
  7.                         this->_shellSerial->printf("%s\r\n", this->_staticCommand[i].commandName);
  8.                 }
  9.         }
  10.         else if (!strcmp("-v", &argv[argv[1]]))
  11.         {
  12.                 this->_shellSerial->printf("%s\r\n", X_SHELL_VERSION);
  13.         }
  14.         else
  15.         {
  16.                 this->_shellSerial->print("ls [options]\r\n");
  17.                 this->_shellSerial->print("options: \r\n");
  18.                 this->_shellSerial->print("\t -v \t: Show version\r\n");
  19.                 this->_shellSerial->print("\t all \t: show all commands\r\n");
  20.         }
  21. }
复制代码


看到网上说涉及到类的函数指针,需要把成员函数声明为 static,这块也不是很理解,还是希望大神指点一下~

出0入442汤圆

 楼主| 发表于 2020-10-9 12:49:16 来自手机 | 显示全部楼层
solojimes 发表于 2020-10-9 11:33
请教两个关于 C++的问题,也是困扰我两天的问题。
1、
此处 typedef 的函数指针定义为啥我不能放在类里面, ...

1 typedef确实是类似于define的东西,但是又不一样,一般是放顶层头文件或者全局,具体你要查c++标准,我也没这样用过。

2 报什么错?

出0入0汤圆

发表于 2020-10-9 14:09:06 | 显示全部楼层
wye11083 发表于 2020-10-9 12:49
1 typedef确实是类似于define的东西,但是又不一样,一般是放顶层头文件或者全局,具体你要查c++标准, ...

iShot2020-10-09 14.08.41.png

出0入442汤圆

 楼主| 发表于 2020-10-9 16:32:50 来自手机 | 显示全部楼层
solojimes 发表于 2020-10-9 14:09

你加个强制类型转换试试,或者先弄成void*再转换。类里面的函数一般来说都是全局的,继承的函数会通过virtual ptr表去找。

出0入0汤圆

发表于 2020-10-9 18:20:03 | 显示全部楼层
wye11083 发表于 2020-10-9 16:32
你加个强制类型转换试试,或者先弄成void*再转换。类里面的函数一般来说都是全局的,继承的函数会通过vi ...

而类成员函数指针就不仅仅是类成员函数的内存起始地址,还需要能解决因为C++的多重继承、虚继承而带来的类实例地址的调整问题,所以类成员函数指针在调用的时候一定要传入类实例对象。

https://blog.csdn.net/qq_3766843 ... 9#comments_13380571

参考一下

出0入442汤圆

 楼主| 发表于 2020-10-9 18:26:55 来自手机 | 显示全部楼层
solojimes 发表于 2020-10-9 18:20
而类成员函数指针就不仅仅是类成员函数的内存起始地址,还需要能解决因为C++的多重继承、虚继承而带来的 ...

所以我叫你强制转换啊。

出0入0汤圆

发表于 2020-10-10 19:18:49 | 显示全部楼层
solojimes 发表于 2020-10-9 11:33
请教两个关于 C++的问题,也是困扰我两天的问题。
1、
此处 typedef 的函数指针定义为啥我不能放在类里面, ...

1。放到外边是全局的定义,类型是ShellFunctionT,放到类里边定义类型是X_Shell::ShellFunctionT
2。void X_Shell::shellListCommand(char argc, char *argv) 是 void (X_Shell::*)(char , char *)类型,不是void (*)(char , char *) 类型
void (X_Shell::*)(char , char *)是类成员函数指针,参数隐含this指针,是和X_Shell类的实例绑定的,可以使用this指针访问类内部变量。
void (*)(char , char *)不和任何类实例绑定,不能使用this指针。
类内部的static 函数不和类绑定,static void X_Shell::shellListCommand(char argc, char *argv)不和任何类实例绑定,不能访问类内部非static变量


为了通用的话接口不要定义为void (*)(char , char *),定义成std::function<void(char,char*)> 类型,类外的函数和static函数直接传进来,
类内部的函数用std::bind绑定下在传进来

出0入0汤圆

发表于 2020-10-12 14:41:56 | 显示全部楼层
顶一下,学习

出0入0汤圆

发表于 2020-10-19 10:11:31 来自手机 | 显示全部楼层
楼主好人,请教个问题:现在用C#编一个界面,里面有一部分实时显示摄像头图像,现在需要拍一张照片,然后在和摄像头实时采集图像进行对比。但是不知道怎么实现,楼主如有思路,请指教,谢谢

出0入442汤圆

 楼主| 发表于 2020-10-19 10:23:33 来自手机 | 显示全部楼层
heyangfengyue 发表于 2020-10-19 10:11
楼主好人,请教个问题:现在用C#编一个界面,里面有一部分实时显示摄像头图像,现在需要拍一张照片,然后在 ...

对比什么?你这可能涉及到图像检测或图像识别领域了。

如果只是单纯的显示,那你一边一个好了,静态图像最简单的可以用picture控件,但是注意csharp的picture控件非常难用(加载图像文件之后会占有文件句柄造成文件被系统锁定),而且动态刷流时极易崩溃,如果不在乎cpu可以用opengl。mfc做这件事比csharp要方便10000倍。

出0入0汤圆

发表于 2020-10-19 12:09:44 | 显示全部楼层
点赞,支持你,大佬!

出0入0汤圆

发表于 2020-10-21 20:48:57 | 显示全部楼层
wye11083 发表于 2020-10-19 10:23
对比什么?你这可能涉及到图像检测或图像识别领域了。

如果只是单纯的显示,那你一边一个好了,静态图像 ...

拍摄的图像是用于对比位置的,就是拍摄一张图片,然后和摄像头里面的图像进行对比,发现位置有偏差了就纠正偏差,使之对齐。是想实现这样的功能

出0入442汤圆

 楼主| 发表于 2020-10-21 21:47:51 来自手机 | 显示全部楼层
heyangfengyue 发表于 2020-10-21 20:48
拍摄的图像是用于对比位置的,就是拍摄一张图片,然后和摄像头里面的图像进行对比,发现位置有偏差了就纠 ...

那你这得做图像匹配,你找找opencv。

出0入0汤圆

发表于 2020-10-21 22:03:26 | 显示全部楼层
wye11083 发表于 2020-10-21 21:47
那你这得做图像匹配,你找找opencv。

拍个照片只是参考,调节位置,是手动调节的,不是自动调节,用不着OPENCV。我现在是获取了摄像头的实时图像,也可以拍照,但是不知道怎么把图片叠加在摄像头的实时图像上,望指教,谢谢

出0入442汤圆

 楼主| 发表于 2020-10-21 23:51:36 来自手机 | 显示全部楼层
heyangfengyue 发表于 2020-10-21 22:03
拍个照片只是参考,调节位置,是手动调节的,不是自动调节,用不着OPENCV。我现在是获取了摄像头的实时图 ...

取bitmap,然后直接用指针访问就行了。网上有例程。

出0入0汤圆

发表于 2020-10-22 15:38:36 | 显示全部楼层
wye11083 发表于 2020-10-21 23:51
取bitmap,然后直接用指针访问就行了。网上有例程。

好滴,谢谢大神指导

出0入0汤圆

发表于 2020-10-22 20:25:21 | 显示全部楼层
  1. main()
  2. {
  3.         signed char i;
  4.         i=0xff;
  5.         D1=0;
  6.         if(i==0xff)
  7.                 D1=0;
  8.         else
  9.                 D1=1;
  10.         while(1);
  11. }
复制代码

这段代码的执行结果 D1为1,请问是什么原因?

出0入442汤圆

 楼主| 发表于 2020-10-22 21:36:39 来自手机 | 显示全部楼层
iamastu 发表于 2020-10-22 20:25
这段代码的执行结果 D1为1,请问是什么原因?

如果你按signed char,那么它=-1,显然不等于0xff(255)。当值未显式定义长度时,编译器默认为标准int类型数据。

出0入0汤圆

发表于 2020-10-25 21:22:23 | 显示全部楼层
谢谢wye11083,应该是将i的值转换成 int 类型,变为0xffff,与 0xff 不相等了。

出0入0汤圆

发表于 2020-11-4 10:14:30 | 显示全部楼层
我设计的ZNYQ的板子SD卡启动不了,同样的最小系统板子做了几款,其他的都可以,有一款的就是无法启动,困惑一周多了

出0入442汤圆

 楼主| 发表于 2020-11-4 12:12:24 来自手机 | 显示全部楼层
yongjia 发表于 2020-11-4 10:14
我设计的ZNYQ的板子SD卡启动不了,同样的最小系统板子做了几款,其他的都可以,有一款的就是无法启动,困惑 ...

(1)查ddr3,(2)串口跟踪uboot信息,(3)检查ps复位,progb,initb,done,

出0入0汤圆

发表于 2020-11-4 14:20:07 | 显示全部楼层
wye11083 发表于 2020-11-4 12:12
(1)查ddr3,(2)串口跟踪uboot信息,(3)检查ps复位,progb,initb,done,

1,DDR部分重新配置参数表了,
2,串口无输出,但是示波器上能测量到读写的波形
3:PS复位是好的,initb,done 肯定不对啦

出0入0汤圆

发表于 2020-11-24 18:21:02 | 显示全部楼层
在那里向楼主提问呢

出0入0汤圆

发表于 2020-11-26 15:48:38 | 显示全部楼层
为楼主的无私奉献点个赞!最近没有时间上网!来冒个泡!

出0入4汤圆

发表于 2020-11-28 20:41:20 | 显示全部楼层
目前学习FPGA CPLD优先选 Xilinx还是Altera

出0入442汤圆

 楼主| 发表于 2020-11-28 23:24:50 来自手机 | 显示全部楼层
ilan2003 发表于 2020-11-28 20:41
目前学习FPGA CPLD优先选 Xilinx还是Altera

xilinx功能更强大,没有altera了,现在叫intel。xilinx熟了可以考虑安路紫光高云等国产系了,现在可堪用了。

出0入0汤圆

发表于 2020-12-15 17:11:14 | 显示全部楼层
本帖最后由 654705188 于 2020-12-15 17:24 编辑

在a.h中定义结构体
typedef struct a
{
   int x;
}tA;

在b.h中引用tA
#include “a.h”
typedef struct b
{
   tA ab;
}tB;

在c.h中引用tA,tB
#include “b.h”
typedef union c
{
  tB bc;
}tC;
这样写MDk回报\Application\b.h(183): error:  #70: incomplete type is not allowed
请教大神,怎样才能不报错。

出0入442汤圆

 楼主| 发表于 2020-12-15 20:49:14 来自手机 | 显示全部楼层
654705188 发表于 2020-12-15 17:11
在a.h中定义结构体
typedef struct a
{

这typedef struct后面名字放到结构体后面试试。标准c似乎不支持这么写,vc一样会报错。

出0入0汤圆

发表于 2020-12-16 14:45:33 | 显示全部楼层
楼主想请教一下用FPGA做高速信号处理的问题。我现在采样率是3.2G,FPGA的时钟是200M的,相当于一个时钟周期回来16个数据。我现在想对数据做一下滤波(调用FIR的ip核),但是FPGA的时钟只有200M,一个时钟周期出来一个数据的话,数据根本处理不过来。这种情况是怎么处理呢?

出0入442汤圆

 楼主| 发表于 2020-12-16 17:14:26 来自手机 | 显示全部楼层
我是谁712 发表于 2020-12-16 14:45
楼主想请教一下用FPGA做高速信号处理的问题。我现在采样率是3.2G,FPGA的时钟是200M的,相当于一个时钟周期 ...

那你只能放16个核 并行平推了。

出0入85汤圆

发表于 2020-12-18 15:33:41 | 显示全部楼层
请教如何评估一个FPGA的并行总线,能够可靠的驱动多个从机?

出0入442汤圆

 楼主| 发表于 2020-12-18 19:19:07 来自手机 | 显示全部楼层
marshallemon 发表于 2020-12-18 15:33
请教如何评估一个FPGA的并行总线,能够可靠的驱动多个从机?

示波器看沿。

出0入0汤圆

发表于 2020-12-23 16:42:52 | 显示全部楼层
回答了多少问题了?

出0入442汤圆

 楼主| 发表于 2020-12-23 18:54:16 来自手机 | 显示全部楼层
sege1 发表于 2020-12-23 16:42
回答了多少问题了?

没几个。。

出0入0汤圆

发表于 2021-2-9 11:05:43 | 显示全部楼层
求vivado2020.2版本的一个破解license文件,网上搜到的链接都不存在

出0入442汤圆

 楼主| 发表于 2021-2-9 11:30:00 来自手机 | 显示全部楼层
lzlym182 发表于 2021-2-9 11:05
求vivado2020.2版本的一个破解license文件,网上搜到的链接都不存在

随便找一个就能用,所有版本通用。

出0入0汤圆

发表于 2021-2-9 11:38:51 | 显示全部楼层
wye11083 发表于 2021-2-9 11:30
随便找一个就能用,所有版本通用。

找到的有的要会员积分下载,有的链接不存在(百度分享,无一例外),先装一个vivado HL WebPACK(期间限定版的)。不知道限定哪些期间,我要用的器件是zynq7035,不知道会不会有限制
1612841836(1).jpg

出0入0汤圆

发表于 2021-4-20 22:50:15 | 显示全部楼层
支持楼主~

出0入0汤圆

发表于 2021-6-1 09:54:11 | 显示全部楼层
请教大神,如何动态生成函数指针:
如下
typedef void (*PFUN)(void)

void taskConstruct(PFUN fn, const uint8_t period)
{
    _SS
    WaitX(period);
    fn();
    _EE
}

PFUN taskCreate(PFUN fn, const uint8_t period)
{
    taskConstruct(fn, period);

    return taskConstruct;
}

我希望每次taskCreate返回一个新的taskConstruct函数指针,而不是固定的或者要提前写好可能的函数,把指针映射过来。

出0入442汤圆

 楼主| 发表于 2021-6-1 10:06:02 来自手机 | 显示全部楼层
MegaHealth 发表于 2021-6-1 09:54
请教大神,如何动态生成函数指针:
如下
typedef void (*PFUN)(void)

没见过你要的语法。你要对每种数据类型设置一个不同的函数?那就用define,用#define func(a,b) (a)_##(b)这种动态生成函数。具体用法请参考openblas的kernel函数,它的所有函数名都是cname,通过编译时根据一大堆define生成对应符号和优化过的函数。

出0入0汤圆

发表于 2021-6-1 10:08:39 | 显示全部楼层
wye11083 发表于 2021-6-1 10:06
没见过你要的语法。你要对每种数据类型设置一个不同的函数?那就用define,用#define func(a,b) (a) ...

好的,谢谢指教

出0入0汤圆

发表于 2021-6-1 10:18:23 | 显示全部楼层
wye11083 发表于 2021-6-1 10:06
没见过你要的语法。你要对每种数据类型设置一个不同的函数?那就用define,用#define func(a,b) (a) ...

用define似乎还是不行,因为define的函数在调用处是直接拷贝代码,无法获取函数指针,我需要函数指针

出0入442汤圆

 楼主| 发表于 2021-6-1 11:26:18 来自手机 | 显示全部楼层
MegaHealth 发表于 2021-6-1 10:18
用define似乎还是不行,因为define的函数在调用处是直接拷贝代码,无法获取函数指针,我需要函数指针 ...


应该不是。你语法写错了可能。或者你转一下,比如func fn=dfunc(x,y);
调用fn(...);
然后返回fn。这样fn是生成的函数。
否则blas就吃翔了。毕竟blas代码里面全是cname,不存在详细指定的函数名。这也因为blas的kernel函数是通用的。

出0入0汤圆

发表于 2021-6-29 09:25:26 | 显示全部楼层
wye11083 发表于 2020-6-26 07:46
器件批量一致性是不可靠的。而且我们是应用在24x365场合的。加抖动解决不了所有问题,留出足够余量才能做 ...

楼主这个方法确实是个很好的思路,回头试一下效果

出0入0汤圆

发表于 2021-7-3 22:49:09 | 显示全部楼层

为楼主的无私奉献点个赞

出0入0汤圆

发表于 2021-7-22 17:05:11 | 显示全部楼层
靠长时间积累

出0入0汤圆

发表于 2021-8-1 18:56:41 | 显示全部楼层
现在只会一些简单的verilog语法,请问如果要深入学习的话,路径是什么。自己写一个cpu这种怎么样?

出0入442汤圆

 楼主| 发表于 2021-8-1 19:41:18 来自手机 | 显示全部楼层
司马青衫 发表于 2021-8-1 18:56
现在只会一些简单的verilog语法,请问如果要深入学习的话,路径是什么。自己写一个cpu这种怎么样? ...

有钱有闲可以自己慢慢写,一般fpga建议用vexriscv。verilog想要深入必须得有实际项目支持,然后是把语法弄熟,数字电路基础搞熟,常用数字电路模型记熟,然后就能写好一些中低复杂度模块了。流水线算法的可以用hls从c语言转,但hls对ram支持不太好。

fpga代码优化是个长期工作,如果你只是突然的想去学一下,那么不一定能学成。毕竟硬件跟软件是完全的2套不同的东西,硬件更着重积累,积累不够,github也没用。虽然用软件的方法去写多数也能用,然而资源和效率不一定行。

出0入0汤圆

发表于 2021-10-23 16:47:53 | 显示全部楼层
学软件难吗老铁哥

出0入0汤圆

发表于 2021-10-26 16:49:26 | 显示全部楼层
请教LZ,spartan 6器件在往flash烧写软件时,所有的user io会输出高电平,这个会导致我们的控制电路有问题,有没有办法让他输出低?

出0入0汤圆

发表于 2021-10-26 18:02:28 | 显示全部楼层
wye11083 发表于 2020-3-22 11:23
那还是你没选好。你仔细看看chipscope选项。我已经多年不用了,调试直接读状态机看状态。chipscope只能用 ...

想知道楼主不用JTAG仿真器是如何调试FPGA的

出0入442汤圆

 楼主| 发表于 2021-10-26 22:02:31 来自手机 | 显示全部楼层
leeseel 发表于 2021-10-26 16:49
请教LZ,spartan 6器件在往flash烧写软件时,所有的user io会输出高电平,这个会导致我们的控制电路有问题 ...

没办法。io只有上拉和悬空两种状态(pudcb管脚控制)。甚至国产fpga下载程序时io状态不确定,随机。所以你要在外面用强下拉(大约2~3k电阻到地)。

出0入442汤圆

 楼主| 发表于 2021-10-26 22:04:36 来自手机 | 显示全部楼层
狂羁青马 发表于 2021-10-26 18:02
想知道楼主不用JTAG仿真器是如何调试FPGA的

加个uart,封装一个vexriscv内核,剩下的重要工作之一是写ip,之二是写c++代码,printf打印自然很正常了。有usb可以快速收发指令,这样可以读ip预设的状态口分析。

出0入0汤圆

发表于 2021-10-27 09:38:48 | 显示全部楼层
wye11083 发表于 2021-10-26 22:02
没办法。io只有上拉和悬空两种状态(pudcb管脚控制)。甚至国产fpga下载程序时io状态不确定,随机。所以 ...


spartan配置手册中说FPGA在配置阶段(包含初始化和编程)输出电平上拉/下拉受HSWAPEN引脚控制,实测FPGA正常上电启动,初始化,FPGA内部编程确实受这个控制。在烧写外部FLASH时,HSWAPEN无论我拉低还是拉高,USER IO输出都是为高,难道外部FLASH编程不能算编程吗?

出0入442汤圆

 楼主| 发表于 2021-10-27 11:00:01 来自手机 | 显示全部楼层
leeseel 发表于 2021-10-27 09:38
spartan配置手册中说FPGA在配置阶段(包含初始化和编程)输出电平上拉/下拉受HSWAPEN引脚控制,实测FPGA ...

你用jtag下载的spi?。。那个就不清楚了。我们通常使用isp下载,jtag已经好几年没用过了。

出0入0汤圆

发表于 2021-10-27 14:18:02 | 显示全部楼层
wye11083 发表于 2021-10-27 11:00
你用jtag下载的spi?。。那个就不清楚了。我们通常使用isp下载,jtag已经好几年没用过了。 ...

焊接上去了的空白片子应该只能用JTAG了吧?

出0入442汤圆

 楼主| 发表于 2021-10-27 18:07:22 来自手机 | 显示全部楼层
leeseel 发表于 2021-10-27 14:18
焊接上去了的空白片子应该只能用JTAG了吧?

自己留出来spi线,拉低progb可以直接烧spi

出0入0汤圆

发表于 2022-1-1 19:48:57 | 显示全部楼层
请教楼主


新手偶得1个IC  xc9572 查资料好象不是单片机  手头没有编程器啥的   只有USB2TTL / STLINK / USBASP 这几种线

怎么测试其是好是坏?  常用元件可以搭个最基本的电路来诊断下吗


出0入442汤圆

 楼主| 发表于 2022-1-1 20:26:52 来自手机 | 显示全部楼层
QQ忘了 发表于 2022-1-1 19:48
请教楼主  



你找个古董有并口的电脑,可以做个并口下载线。xilinx的并口连接是开源的,就是要在bios改成epp?模式(不兼容ecp模式)。

出0入0汤圆

发表于 2022-1-1 20:58:12 | 显示全部楼层
wye11083 发表于 2022-1-1 20:26
你找个古董有并口的电脑,可以做个并口下载线。xilinx的并口连接是开源的,就是要在bios改成epp?模式( ...

大神真是博学呀

这个东东有简单的测试方法吗

如果有并口编程器   是通过上位机可以发一个直观的测试吗
可以接个LED看结果吗
请给指导指导

我先找下并口看看

出0入442汤圆

 楼主| 发表于 2022-1-1 21:14:27 | 显示全部楼层
QQ忘了 发表于 2022-1-1 20:58
大神真是博学呀  

这个东东有简单的测试方法吗

你还得下个ISE 10.1或者能支持的版本,然后打开impact就可以查找设备了。一般CPLD比较扛造。

出0入0汤圆

发表于 2022-1-1 21:45:08 | 显示全部楼层
本帖最后由 QQ忘了 于 2022-1-2 15:18 编辑
wye11083 发表于 2022-1-1 21:14
你还得下个ISE 10.1或者能支持的版本,然后打开impact就可以查找设备了。一般CPLD比较扛造。 ...


感谢指教

并口下载线看到2种   大同小异,1种是贴片件
电路倒不复杂  以后有时间的话体验下

还好有类似blink的例程

出0入0汤圆

发表于 2022-1-4 13:05:45 | 显示全部楼层
本帖最后由 QQ忘了 于 2022-1-4 13:49 编辑
wye11083 发表于 2022-1-1 20:26
你找个古董有并口的电脑,可以做个并口下载线。xilinx的并口连接是开源的,就是要在bios改成epp?模式( ...


请教 关于JTAG接口

已解决




出0入0汤圆

发表于 2022-1-5 21:45:02 | 显示全部楼层
wye11083 发表于 2022-1-1 21:14
你还得下个ISE 10.1或者能支持的版本,然后打开impact就可以查找设备了。一般CPLD比较扛造。 ...

请教Xilinx下用哪个软件入门学习?    适合我手头这个片子的

这两天临时做个了学习板   还有下载线要做,材料在路上了

在Xilinx也注册了,感觉都是高价货   等着谁自投罗网




出0入442汤圆

 楼主| 发表于 2022-1-6 00:02:49 来自手机 | 显示全部楼层
QQ忘了 发表于 2022-1-5 21:45
请教Xilinx下用哪个软件入门学习?    适合我手头这个片子的

这两天临时做个了学习板   还 ...

。。这种老古董你找ise网站上有版本号,用最后一版能支持的。你玩这玩意还真不如买个原子的板子,好歹有教程可以参考。自己从0不容易学。

出0入0汤圆

发表于 2022-1-6 10:38:56 | 显示全部楼层
wye11083 发表于 2022-1-6 00:02
。。这种老古董你找ise网站上有版本号,用最后一版能支持的。你玩这玩意还真不如买个原子的板子,好歹有 ...

您的建议是对的
对自己没信心  随便学点就算了

偶得一棵葱    不想去买螃蟹了  


出0入0汤圆

发表于 2022-1-7 19:37:18 | 显示全部楼层
本帖最后由 QQ忘了 于 2022-1-7 19:38 编辑
wye11083 发表于 2022-1-6 00:02
。。这种老古董你找ise网站上有版本号,用最后一版能支持的。你玩这玩意还真不如买个原子的板子,好歹有 ...


昨天把下载线画好了 ,关于vref端口请教下

JTAG下载线的资料上   去开发板上的接口是6 pin 的,其中有个脚是 vref,其它是TDI/TMS/TCK/TDO/GND
而开发板上的JTAG口是10pin的,除了不用的口  是+5V/TDI/TMS/TCK/TDO/GND
抄来的

这个vref引脚有没有额定的值? 和+5V接一起可以吗
不知道5V作为基准会不会有点高    



出0入442汤圆

 楼主| 发表于 2022-1-7 19:55:43 | 显示全部楼层
QQ忘了 发表于 2022-1-7 19:37
昨天把下载线画好了 ,关于vref端口请教下  :

JTAG下载线的资料上   去开发板上的接口是6 ...

VREF是给下载线电平转换用的,你外面直接3.3V的话可以不用管。记得如果你用电脑并口线串个51~150R的电阻,要不然不稳定。

出0入0汤圆

发表于 2022-1-7 20:05:15 | 显示全部楼层
wye11083 发表于 2022-1-7 19:55
VREF是给下载线电平转换用的,你外面直接3.3V的话可以不用管。记得如果你用电脑并口线串个51~150R的电阻 ...

感谢指教
搭的环境是5V电源的

抄的是并口下载线, 但台机都角落里吃灰好多年了  








出0入8汤圆

发表于 2022-3-2 20:59:27 | 显示全部楼层
来提问了,V7 BUFG不够怎么办?
一共挂了两组DDR3、4个X2的SRIO跟别的FPGA通信、一路SDI显示、两个X4的NVME SSD,到这就用了四五十个BUFG,V7一共32个
实在不好删BUFG了,剩下的基本上都是IP核里GTH内部的了。

出0入0汤圆

发表于 2022-4-16 11:12:43 | 显示全部楼层
楼主您好。
请问怎么在C语言中实现wireshark UDP抓包的功能?
谢谢

出20入25汤圆

发表于 2023-3-13 08:24:16 来自手机 | 显示全部楼层
请教楼主问题,vdma 2个帧缓冲,circular模式,设置1帧计数中断,程序也有一个缓存,中断中通过拷贝刷新两个缓存中的一个。最后出来花屏,出现花屏是什么情况。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 05:11

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表