Arm上的内在函数实现

时间:2015-12-03 05:38:41

标签: c assembly arm

我想通过使用内部函数来优化代码。有人可以为此指导。由于我的代码包含MAC(乘法和加法)语句,我想用SMLAxy指令替换。我试过但是得到链接错误。我使用了armintr.h头文件,但得到了:

error:armintr.h :No such file or directory

我使用英特尔Ubuntu桌面作为主机,我的目标是ARM Cortex-a8。我使用带有-O3 -mcpu=cortex-a8 -Wall选项标志的arm-none-linux-gnueabi-gcc编译器。

2 个答案:

答案 0 :(得分:1)

  

错误:armintr.h:没有这样的文件或目录

通常,当您在指定路径中没有特定的头文件时会出现此错误。或者您需要为此头文件提供正确的路径。

在您的情况下,您没有启用内在指令,因此您收到错误。

启用内在指定编译器option,例如--fpu=name

答案 1 :(得分:1)

我希望GCC能够在不使用内在函数的情况下为您生成SMLAL指令。

String^ ipAddrNo=ipAddrText->Text;  
System::Int32 portNumber;
portNumber = System::Convert::ToInt32(portText->Text);
portNumber = System::Int32::Parse(portText->Text); 
serverThread^ objserverThread = gcnew serverThread();
objserverThread->chk=portNumber;
objserverThread->str=ipAddrNo;
Thread^ oThread = gcnew Thread( gcnew ThreadStart(objserverThread,&serverThread::serverListen) );
oThread->Start();

这不会为您生成说明。