工具/软件:TI C/C++编译器
您好!
我想编写 hwafft 代码。
TI 提供的文件是 Assmbly lang。 hwafft.asm、hwafft_rom.asm
如何在 c 项目中实现这些文件。 我已经实现了、但给出了运行时模型选项的错误。
是否有任何方法可以直接在 C 代码中编写汇编函数、语法是什么..do u 有任何相同的示例。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:TI C/C++编译器
您好!
我想编写 hwafft 代码。
TI 提供的文件是 Assmbly lang。 hwafft.asm、hwafft_rom.asm
如何在 c 项目中实现这些文件。 我已经实现了、但给出了运行时模型选项的错误。
是否有任何方法可以直接在 C 代码中编写汇编函数、语法是什么..do u 有任何相同的示例。
您好 Kanchan、
SPRABB6 zip 文件 包含两个 asm 文件。
hwafft_rom.asm - hwafft C 可调用的汇编例程、因为它们位于 C55xx 器件的 ROM 中。 但 ROM 代码包含一个错误- HWAFFT 数据和临时指针被复制为16位而不是23位。 有关更多详细信息、请参阅勘误表。
建议使用两种权变措施。
hwafft.asm - hwafft C 可调用的汇编例程、使用23位指针修复了16位指针错误(该错误的一个建议的变通办法)。 代码不是驻留在 ROM 中、而是占用 RAM。 您还必须从链接器.cmd 文件中删除函数指针地址、以强制链接器使用 RAM 中的此汇编代码、而不是存储在 ROM 中的汇编代码。
hwafft.asm 和 hwafft_rom.asm 中的 hwafft 例程都是 C 语言调用的。 它们像任何 C 函数调用一样推入栈、因此您只需使用以下语法从 C 文件调用任何函数调用它们:
OUT_SEL = hwafft_Npts (data、scratch、FFT_flag、scale_flag);
=-=-=-
供参考-您可以使用以下语法从 C 代码调用汇编(显示了代数和助记符汇编):
asm (" bset XF");//助记符汇编、将 XF 输出设置为高电平
asm (“BCLR ST3_CLKOFF”);//助记符汇编,将 CLKOUT 引脚设置为切换
asm (“Bset ST3_CLKOFF”);//助记符汇编,禁用 CLKOUT 引脚
asm ("位(ST1、#ST1_XF)=#0");//代数汇编、将 XF 输出设为低电平
asm ("位(ST1、#ST1_XF)=#1");//代数汇编、将 XF 输出设置为高电平
您可以在工程编译设置中将汇编样式从代数更改为助记符、也可以通过右键单击某个文件并转到该文件的属性来更改该文件的汇编样式。
希望这对您有所帮助、
标记
HII 标记、
根据我们的指导、我删除了 hwafft.asm、并在.cmd 文件的末尾添加了以下地址。
_hwafft_br = 0x00ff6cd6;
_hwafft_8pts = 0x00ff6cea;
_hwafft_16Pts = 0x00ff6dd9;
_hwafft_32pts = 0x00ff6f2f;
_hwafft_64pts = 0x00ff7238;
_hwafft_128pts = 0x00ff73cd;
_hwafft_256pts = 0x00ff75de;
_hwafft_512pts = 0x00ff77dc;
_hwafft_1024pts = 0x00ff7a56;
但是、当我调试 proram 时、它不会转到函数的位置、它会显示 "0x106cd6"没有可用的源代码
为什么...问题是什么
您好 Kanchan、
当您从 ROM 中执行 HWAFT 代码(即.cmd 文件中的这些地址指向的地址)时、调试器不知道在何处查找源代码以单步执行该代码。
您仍然可以通过查看分解来查看装配体。 在 CCS 的 Debug 透视图中、点击 View -> Dissasembly。 现在、您可以通过单击"Assembly Single Step in"和"Assembly Single Step Over "的绿色箭头单步执行汇编代码。
仅建议在代码完全调试并正常工作后、从使用 hwafft.asm 文件切换到使用 ROM 中的 HWAFT 代码。 使用 ROM 中的 HWAFT 代码可释放 RAM 以用于其他程序或更多数据等。
确保您使用 的是 SPRABB6.zip 中提供的固定 hwafft.asm。 该错误的详细信息与使用的16位指针地址而不是23位指针地址有关。 如果 您希望在 ROM 中使用 HWAFT 代码、勘误表中还介绍了其他权变措施。
希望这对您有所帮助、
标记