问题标签 [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 投票
0 回答
79 浏览

vhdl - Xilinx EDK 中的不透明平台故障

这是在运行:

  • Ubuntu 64 LTS
  • 赛灵思平台工作室 14.7 (lin64)

我正在尝试运行PLDkit 提供的 Virtex 5 板microblaze_demo中包含的项目,但我遇到了一个非常无用的错误。

简短的错误日志

不幸的system_microblaze_0_wrapper_xst.srp是,据我所知,从未创建过。由于大小原因,完整的比特流构建日志位于pastebin 。

我只是想按照PLDkit 提供的说明进行操作——我以前从未使用过 microblaze。我能做些什么来解决这个问题?

系统.mhs

mpmc核心需要更新其版本,但下面的代码与它们提供的代码相同:

0 投票
1 回答
405 浏览

embedded - MicroBlaze AXI4 异常

我想知道 MicroBlaze 的数据总线异常。在 MicroBlaze 产品手册中指出,当缓存关闭时,异常只能在 M_AXI_DC 上发生?这对我来说没有意义;是不是说如果在M_AXI_DC线上给出了错误响应,开启缓存就不会触发异常?我目前将 C_DCACHE_ALWAYS_USED 设置为 1,所以这不是问题。

谢谢。

MicroBlaze 产品指南摘录:

0 投票
1 回答
1404 浏览

c - 在 C 语言中为 Xilinx Microblaze 使用内联汇编

我有一个用 C 语言编写的应用程序,带有 Xilinx Microblaze 内核的内联汇编。我的内联汇编有一个延迟任务。函数“_delay_loop_X_x”在处理器的每个循环中恰好延迟 4 个周期。输入信号确定要进行的循环数。函数“_NOPx”是为了达到更高的精度。该功能工作正常,但在信号结束时,它会提供两倍的额外延迟。恐怕我错误地使用了寄存器。有人可以检查我的汇编代码吗?

对于 Microblaze,我使用以下文档:https ://www.xilinx.com/support/documentation/sw_manuals/mb_ref_guide.pdf

汇编代码:

C代码:

我的结果: https ://imgur.com/a/beBgn

0 投票
1 回答
232 浏览

microblaze - 如何使用 microblaze 查找时钟周期

我是 Microblaze 的初学者。

我只想知道有多少时钟周期会使用一些指令。

变量 s0 将映射到一个寄存器(在寄存器文件中)x5,s1 到 x6;汇编代码将是

  • 将 s0 从内存加载到寄存器文件(需要多少个时钟周期?)
  • 将 s1 从内存加载到寄存器文件(需要多少个时钟周期?)
  • 做逻辑与(需要多少个时钟周期?)
  • 地址计算和存储指令(需要多少个时钟周期?)
0 投票
1 回答
635 浏览

sdk - 在 Axi GPIO 中具有双通道意味着什么?

我正在学习 Microblaze 处理器,但在使用 gpio 功能时我并不真正了解这一点。

0 投票
0 回答
382 浏览

c - 错误:“SpimodFlashWrite”的类型冲突

当我将此函数调用到另一个函数时,我在函数中出现错误可能是第二个参数 int u16 地址我传递错误

}

如果我像这样使用这个功能

`

错误:“SpimodFlashWrite”的类型冲突

谢谢

0 投票
0 回答
79 浏览

assembly - Microblaze,用地址值声明数据数组;

我正在尝试为 Microblaze CPU 制作一个切换(跳转)表,它看起来像

问题是偏移表填充了零。当数据类型为“字节”或“短”时,情况确实如此。当数据类型为“int”时,表中填充了正确的值。

应该如何声明这样的偏移表以填充正确的字节值?

谢谢。

0 投票
2 回答
231 浏览

c - 如何控制变量中的单个位?

我正在开发嵌入 FPGA 的 Microblaze 软 CPU 中的 LCD 控制器。为了连接到顶级 Verilog 文件的输出,我使用了一个 8 位 GPO。

在我的 C 语言中,我为我控制的每个位使用了占位符变量,例如:

如果我正在编程 PIC,我可以简单地将每个定义为 uC 上的一个引脚,即#define LCD_RS PORTA,0.

但是,我相信我只能通过函数访问端口

data变量在哪里。

有没有办法我可以输入#define一位data,所以 LCD_RS = bit0,LCD_RW = bit1,LCD_E = bit3,我的 LCD 数据总线可能是接下来的四位?

0 投票
1 回答
297 浏览

vhdl - 在 microblaze 中使用以太网对 spartan-6 FPGA 进行远程编程

现场升级能力是最近基于 FPGA 的系统的关键特性之一。我想通过以太网端口进行远程 FPGA 重新配置。但我没有找到任何关于此的线索。有人可以对此有所了解吗?

谢谢!

0 投票
1 回答
204 浏览

python - Python 和 C 应用程序之间的串行端口数据传输(在 Microblaze 上运行)

我正在尝试使用我的 PC 上的 python 控制台来读取和写入在 microblaze 主机上运行的嵌入式 C 应用程序。两者之间的连接是通过 FTDI 芯片的 USB -> UART。

关于我的技能/背景的简要说明:RF/微波工程师,大量的硬件经验和大量的 HDL 经验,但是很少或没有软件经验,当然没有 C 或 python 经验。

问题/问题

  1. 我可以使用 PuTTy 或 Termite 控制台输入命令(例如“频率?”)并从函数接收预期的返回值。我什至可以使用函数的“设置”版本来设置值。在我的 C 应用程序中,uart_write_char 函数正在使用“putchar()”,我怀疑它只是打印字符和字符串,而不是“传输”数据(字节、双精度、浮点数等)。

这是描述 uart_write 函数的代码片段:

*

*我想知道“打印”数据到控制台和“传输”数据到另一端之间是否有区别,所以我可以接收它并将其转储到文件中。

  1. 我想知道在我的 python 端使用 pyVISA 接收通过串口传输的数据的最佳方法。在我使用 ResourceManager() 和 openResource() 打开端口的那一刻,我相应地设置了波特率,但是我似乎无法“查询”设备。查询是一个 pyVISA 函数(?),它是先写后读。在这种情况下,我希望发送命令“频率?” 到嵌入式 microblaze,我希望结果会被传回。如果我可以使用 PuTTy 或 Termite 等控制台成功完成此操作,那么使用 pyVISA 查询功能有什么区别?也许编码?

编辑:我还尝试了https://media.readthedocs.org/pdf/pyvisa/1.6/pyvisa.pdf中记录的 query_ascii_value() 和 query_binary_value() 结果仍然相同,我在 python 中收到超时错误安慰。

更新我已经使用 NI-MAX 来捕获 Trace IO,并且超时似乎在读取端。如果我连接到设备,我假设它会完成写入功能,这是真的吗?这是 Ni-MAX 日志

  1. viOpenDefaultRM (0x00001001) 进程 ID:0x000082C8 线程 ID:0x00006F90 开始时间:15:21:12.0642 调用持续时间 00:00:00.0139 状态:0 (VI_SUCCESS)

  2. viClose (0x00000000) 进程 ID:0x000082C8 线程 ID:0x00006F90 开始时间:15:21:12.0781 调用持续时间 00:00:00.0000 状态:0x3FFF0082 (VI_WARN_NULL_OBJECT)

  3. viParseRsrcEx (0x00001001, "ASRL​​6::INSTR", 4 (0x4), 6 (0x6), "INSTR", "ASRL​​6::INSTR", "COM6") 进程 ID: 0x000082C8 线程 ID: 0x00006F90 开始时间: 15:21 :12.0781 通话时间 00:00:00.0000 状态:0 (VI_SUCCESS)

  4. viOpen (0x00001001, "ASRL​​6::INSTR", 0 (0x0), 0 (0x0), 0x00000001) 进程 ID: 0x000082C8 线程 ID: 0x00006F90 开始时间: 15:21:12.0792 调用持续时间 00:00:00.0657 状态: 0 ( VI_成功)

  5. viParseRsrcEx (0x00001001, "ASRL​​6::INSTR", 4 (0x4), 6 (0x6), "INSTR", NULL, NULL) 进程 ID: 0x000082C8 线程 ID: 0x00006F90 开始时间: 15:21:12.1450 调用持续时间 00:00 :00.0000 状态:0 (VI_SUCCESS)

  6. viWrite (ASRL6::INSTR (0x00000001), "tx_lo_freq?...", 14 (0xE), 14 (0xE)) 进程 ID: 0x000082C8 线程 ID: 0x00006F90 开始时间: 15:21:24.5897 调用持续时间 00:00: 00.0000 状态:0 (VI_SUCCESS)

  1. viRead (ASRL6::INSTR (0x00000001), 0x000001DF461F5420, 20480 (0x5000), 0 (0x0)) 进程 ID: 0x000082C8 线程 ID: 0x00006F90 开始时间: 15:21:24.5897 调用持续时间 00:00:02.01500 00:00: 02.0500 )

我很感激有关此问题的任何建议,并很高兴提供更多代码片段/信息。也热衷于任何关于帖子礼仪的反馈以及改进帖子请求的潜力

干杯,