C6657与FPGA通过SRIO通信流程 - TMS320C665x - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6891|回复: 7
打印 上一主题 下一主题

[已解决] C6657与FPGA通过SRIO通信流程

[复制链接]

16

主题

43

帖子

1325

积分

金牌会员

Rank: 6Rank: 6

积分
1325
跳转到指定楼层
楼主
发表于 2018-10-29 19:00:23 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
关于C6657与FPGA通过SRIO通信,FPGA主动将数据写入C6657内存,C6657的doorbell中断操作代码如下:

doorbell_flag = ~doorbell_flag;
if(doorbell_flag == 0)
{
  // 计数开始值
  t_start = _itoll(TSCH, TSCL);
}
else
{
  // 计数结束值
  t_stop = _itoll(TSCH, TSCL);
  cycles = (t_stop - t_start) - t_overhead;
  doorbell_printf_flag = 1;
}

从代码来看,应该是每次传输会有两个doorbell中断
常规思想,应该是第一次中断记录开始时间,第二次中断记录结束时间,然后计算速度,打印结果
但从代码来看, doorbell_flag初始值为0,第一次中断直接记录结束时间,这两个doorbell中断到底是什么关系?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

4

主题

188

帖子

1698

积分

禁止发言

积分
1698
8#
发表于 2018-11-1 13:53:24 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

16

主题

43

帖子

1325

积分

金牌会员

Rank: 6Rank: 6

积分
1325
7#
 楼主| 发表于 2018-10-31 17:13:52 | 只看该作者
tronlong-gxd 发表于 2018-10-30 18:21
您好:
       这里面是有一个if嵌套的语句,计数开始的标志位是doorbell_flag为0,而不会翻转为1。 ...

首先,初始化时doorbell_flag的值为0

进入中断服务程序,清除标志位,再执行以下两句

doorbell_flag = ~doorbell_flag;
if(doorbell_flag == 0)

按照你的意思,doorbell_flag翻转和判断doorbell_flag是否为0,这两句是并行、同时进行的?
回复 支持 反对

使用道具 举报

4

主题

188

帖子

1698

积分

禁止发言

积分
1698
6#
发表于 2018-10-30 18:21:56 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

16

主题

43

帖子

1325

积分

金牌会员

Rank: 6Rank: 6

积分
1325
5#
 楼主| 发表于 2018-10-30 09:52:09 | 只看该作者
本帖最后由 lide0619 于 2018-10-30 09:54 编辑
tronlong-gxd 发表于 2018-10-30 09:33
您好:
       门铃中断的0和1标志着传输的开始和结束,计数是在这个时间段内完成。 ...

流程上是这样理解的

但麻烦看一下代码以及我的问题,doorbell_flag初始值为0,进doorbell中断翻转为1,就直接结束了
回复 支持 反对

使用道具 举报

4

主题

188

帖子

1698

积分

禁止发言

积分
1698
地板
发表于 2018-10-30 09:33:19 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

16

主题

43

帖子

1325

积分

金牌会员

Rank: 6Rank: 6

积分
1325
板凳
 楼主| 发表于 2018-10-30 08:44:33 | 只看该作者
tronlong-gxd 发表于 2018-10-30 08:38
您好:
      SRIO_2x_DSP2FPGA程序默认是从DSP先向FPGA写入数据,然后打印速度。SRIO_2x_DSP2FPGA_SWRITE这 ...

这个doorbell中断就是SRIO_2x_DSP2FPGA_SWRITE例程里的

代码在smain.c文件中的SRIODoorBellIsr函数中
回复 支持 反对

使用道具 举报

4

主题

188

帖子

1698

积分

禁止发言

积分
1698
沙发
发表于 2018-10-30 08:38:55 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2024-11-1 07:44 , Processed in 0.039804 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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