问题标签 [microblaze]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
239 浏览

c - c中的字符串比较

我正在为 fpga 上的 microblaze 编写 ac 程序,现在我想检查我是否收到了消息,但 strncmp 和 strcmp 不起作用,唯一有效的方法是:

但是一旦我处理更长的文本,这将很难,所以有什么好的方法吗?我以这种格式尝试了 strncmp :

0 投票
1 回答
137 浏览

c - microplaze 应用中的 lwip 缓冲液

只需我通过在接收回调函数中检查我的 pbuff 的有效负载来检查并将数据发送到我的 microplaze,它可以在我可以看到 microplaze 回显我的消息但当我尝试将它们从 mmicroplaze 打印到终端时工作(使用 printf()在c代码中)这里发生了一些奇怪的事情是打印输出:

那是什么,为什么,它发生在超过 3 个字符的任何地方.. 为什么会这样?有任何想法吗 ?

我正在使用带有 16 位总线和 4mb ram 的 microblaze 处理器的 sprtan3a。

0 投票
2 回答
275 浏览

git - Microblaze 重建所需的最少文件

我正在开发一个包含 microblaze 设计的 Xilinx 项目。我很好奇将项目的硬件部分存储在 Git(或其他一些 CM 工具)中所需的最小文件集,并且仍然能够在不同的机器上重建它。到目前为止,我一直无法缩小范围,但是生成了很多文件,我确信我可以摆脱这些文件。在顶层目录中还有 _xps、bootloops、data 等、hdl、implementation、pcores、revup、SDK 和综合目录。哪些目录是完全不需要的,哪些文件是其余文件夹中必须的?

到目前为止,我无法在任何地方找到一个好的列表(我自己缩小范围的尝试也没有结果)。

0 投票
2 回答
6841 浏览

c - XGpio_SetDataDirection,Xilinx,C 开发人员

我的问题是,这个函数 XGpio_SetDataDirection 做了什么,en C。例如 XGpio_SetDataDirection (&gp_out, 1, 0x00) ?

0 投票
2 回答
4082 浏览

linux-kernel - Linux下获取缓冲区的物理地址

我在带有完整 MMU 的 Xilinx 的 Microblaze 上运行 Linux 内核 3.3。我正在做的任务需要我知道以下内容:我需要创建一个文本文件(缓冲区)并定位此缓冲区的物理地址,并且我不希望内核将此文件写入不连续的内存区域。

我需要这个的原因是因为我有一个 DMA 引擎,可以从预设的物理内存地址流式传输数据,所以我需要强制 Linux 在那个确切的内存位置创建缓冲区文件,这样当我将数据写入这个文件时,它会立即传输由 DMA 引擎传输到另一个硬件内核

更多细节:

我的系统有一个 512 MB DDR3 RAM 通过“Xilinx 的多端口内存控制器(MPMC)连接到系统。这个内存控制器的基地址是 0x90000000,系统中的所有单元都通过这个控制器访问内存,包括 MicroBlaze,DMA我拥有的单元使用称为本机个性接口(NPI)的特殊接口在非常低的级别与内存进行通信,从而产生非常高的速度性能。

这个 NPI DMA 单元最初设计用于一个非常基本的嵌入式内核“xilkernel”,它不支持虚拟内存,MMU 都不是 MicroBlaze 的一部分,因此程序员可以看到 OS 代码将驻留在哪里并选择物理内存诸如 0x91800000 之类的地址作为 DMA 将从其流式传输的源地址,然后程序员可以在该确切地址中放置一个文件并运行系统

当我们需要迁移项目以使用 Linux 而不是 xilkernel 时,我们遇到了这个问题,我在外部存储设备上有文件,我可以从 Linux 作为块设备访问,我需要将每个文件移动到主存储器(DDR3 RAM)并使 DMA 流成为文件。目前 DMA 从固定地址流式传输,但如果需要,我可以将其设为通用。

0 投票
1 回答
184 浏览

xilinx - 如何在 microblaze 中找出 1 次迭代的值

我正在尝试找到一种方法,使用 xilkernel 将函数的计算时间增加到 1 秒,而不使用 xilinx microblaze 中的 sleep 函数。

因此,我是否知道在一个简单的 for 循环中需要进行多少次迭代才能将计算时间增加到 1 秒?

0 投票
1 回答
12346 浏览

udp - 在 lwip ARP 中创建 RAW UDP 连接

我目前正在努力创建一个简单的以太网传输协议。我有一个 SP605 Xilinx 评估板,我用它来调试我们项目的以太网部分。我试图蚕食这个例子,但到目前为止还没有成功。目前,通信只需要一种方式。目前,我正在尝试查看使用 netcat 发送的数据。我也打开了wireshark,看到系统反复询问:

2217 1323.697811000 Xilinx_00:01:02 广播
ARP 60 谁有 192.168.1.11?告诉 192.168.1.10

我可以看到主机回复:

2217 1323.697811000 Xilinx_00:01:02 广播
ARP 60 谁有 192.168.1.11?告诉 192.168.1.10

我觉得我的配置有一些问题,但无法弄清楚它是怎么回事。我认为这可能与没有设置 recv 处理程序有关,但我不确定。

下面是我正在使用的代码。lwip_init() 正在模仿 Xilinx 提供的示例中的调用。

0 投票
1 回答
2132 浏览

fpga - MicroBlaze MCS 固定定时器中断

我试图在 MicroBlaze MCS 内核中获得一个固定计时器来调用一个函数来切换一些 LED 作为概念证明。

这是我现在拥有的代码

GPO 的东西有效。如果我把它放在 while 循环中,我可以让 LED 按预期切换。然而,就目前的代码而言,timerTick() 永远不会被调用。我对如何正确设置中断感到非常困惑,而且我找不到任何关于此的文档。我能找到的最好的是http://www.xilinx.com/support/documentation/sw_manuals/xilinx14_4/pg048-microblaze-mcs.pdf,它涵盖了更多关于内核硬件的信息,而不是如何对其进行编程。

启用和连接中断的正确方法是什么?

0 投票
1 回答
3509 浏览

c - 在 microblaze 中 printf 用于十六进制到字符

我正在尝试xil_printf()在 for 循环中并通过 uart 将其馈送到 SendBuffer 中。如何打印字符而不是整数?它打印的只是十六进制数字......

这打印十六进制字符:

我试过了 :

它打印单个字符:

如何打印以下内容(将十六进制字符 4241 转换为 AB,4443 转换为 CD 等...)?

0 投票
1 回答
121 浏览

vhdl - “-bp” MAP 选项在哪里以及如何在 xilinx 的 spartant 6 中使用它,或者任何可以建议使用更少资源的更好设计

我在 vhdl 中编写一些代码,当我合成它时显示 desgin 正在使用 13036 切片 LUT 在此处输入图像描述 在谷歌上搜索后,我找到了以下链接(http://www.xilinx.com/support/answers/15888.htm),上面写着如果我们使用“-bp” MAP 选项我们可以减少使用的 LUT,所以这是可能的。如何使用 xilinx 14.4 中的选项。这是我第一次遇到使用的逻辑超过可用的情况。

代码如下:

感谢 Brian & baldy,我明白了我的 for 循环部分如何转换为状态机类型的逻辑。需要制作一些乘法和加法器数组(我正在编写 60 个抽头,同样可以用于 100 个抽头):

和一个新的逻辑:

在一个时钟周期内使用上述替换而不是 for 循环,我可以获得更好的结果: 在此处输入图像描述

是的,我可以成功实现该设计,并且它适用于 FPGA(xc6slx9)。

现在我尝试在Microblaze中进行此设计。制作了一个外设,在用户逻辑中使用了相同的 vhdl 代码,因为相同的设计使用了更多的资源 在此处输入图像描述 并且无法实现,那么如何才能对其进行更多优化呢?如果有必要了解我在做什么,我可以编写完整的 vhdl 代码。