【发布时间】:2010-01-08 07:47:50
【问题描述】:
我有一个用 C 语言编写的用于 Xilinx Microblaze 核心的应用程序。但是,性能并不是我想要的,所以我正在考虑重写汇编中的一些核心功能。不过,我无法弄清楚如何让 Xilinx Platform Studio 将两者编译成一个 ELF 文件。
我该怎么做?
【问题讨论】:
-
您使用的是哪个版本的 EDK?
标签: c assembly xilinx microblaze
我有一个用 C 语言编写的用于 Xilinx Microblaze 核心的应用程序。但是,性能并不是我想要的,所以我正在考虑重写汇编中的一些核心功能。不过,我无法弄清楚如何让 Xilinx Platform Studio 将两者编译成一个 ELF 文件。
我该怎么做?
【问题讨论】:
标签: c assembly xilinx microblaze
正如 Yann 所建议的,您可以使用内联汇编。方法如下:
AR# 18561. 11.1 EDK - How do I include inline assembly within my C source files?
不过,请尝试分析您的代码以确定性能瓶颈所在。 Xilinx 的 SDK 允许进行侵入式分析。您还可以使用 GPIO 和示波器(或具有快速触发时钟的逻辑分析仪)自行分析您的功能/代码部分。
【讨论】:
【讨论】:
您是否详细说明了性能不佳的确切原因?根据我的经验,核心功能非常快,因此您的代码可能是问题的根源。尝试使用优化 (-O3) 进行编译或更改缓存大小(如果您使用缓存)。
【讨论】:
我不知道您要重写哪个 Microblaze 函数,但您可以随时前往 Xilinx 安装目录(例如 C:\Xilinx\13.4\ISE_DS\EDK\sw\lib\bsp\standalone_v3_00_a\src\ microblaze) 来修改功能,甚至在特定的软件库中包含您自己的汇编语言文件。
【讨论】: