草庐IT

aeabi_memcpy

全部标签

c++ - 什么是 __aeabi_unwind_cpp_pr1' 以及如何避免它?

我有一堆arm程序集、C和C++文件。gcc正在尝试链接它们,但这些是针对嵌入式项目的。我没有使用任何外部库,所有使用的代码都是我编写的。似乎发生了一个错误,因为我在main.c中定义了一个名为intkernel_main(void)的函数,它试图调用set_LED(intvalue)在mailbox.cpp中定义,其中包含headermailbox.h(我确实在main.c文件中包含header)。准确的错误是:undefinedreferenceto`__aeabi_unwind_cpp_pr1'我制作项目的方式是:-在不链接(-c)的情况下将所有源文件(.s、.c、.cpp)编译

c++ - 与 memcpy 的数据竞争,未定义的行为?

我在一个线程中写入内存区域(使用memcpy),然后在另一个线程中使用memcpy将其复制到新位置。有时这些操作可能会重叠,从而导致数据竞争。具有数据竞争的程序会调用未定义的行为并且是无效的。在这种情况下,我在复制后检查复制的数据是否有效(实际上没有发生竞争。)如果确实发生了竞争,我将丢弃复制的数据。但是,据我所知,这并没有让我摆脱关于UB的困境。我认为是否使用数据竞赛的结果仍然是UB。现在我可以在汇编中编写自己的memcpy例程(或者只是复制并粘贴libc中的例程),这将避开整个UB问题。汇编不是C++,汇编中发生的任何事情都不会授予编译器调用鼻恶魔[1]的许可。顺便说一句,对于内联

c++ - C++中正确使用memset和memcpy初始化字符数组

我想用字符指针中的数据初始化一个字符数组。我为此编写了以下代码:(请原谅我对结构所做的一切......实际上这段代码应该适合更大的东西,因此该结构及其使用很奇怪)#include#includestructABC{chara;charb;charc[16];};intmain(intargc,charconst*argv[]){structABC**abc;std::string_r="Ritwik";constchar*r=_r.c_str();if(_r.length()c)){intpadding=sizeof((*abc)->c)-_r.length();std::coutc)

c++ - 使用 memcpy 将结构转换为 char 数组

我正在尝试将以下结构转换为字符数组,以便我可以通过串口发送它。structfoo{uint16_tvoltage;charID;charTempByte;charRTCday[2];charRTCmonth[2];charRTCyear[2];charRTChour[2];charRTCmin[2];charSepbyte;}dvar={500,'X','>',"18","10","15","20","15",'#'};然后我使用以下方法将其转换为字符数组:charb[sizeof(structfoo)];memcpy(b,&dvar,sizeof(structfoo));但是由于某种

IOS memcpy 纹理到双数组

您好,我正在使用以下函数将sampleBuffer绑定(bind)到opengl纹理,效果很好。void*imageData;-(void)captureOutput:(AVCaptureOutput*)captureOutputdidOutputSampleBuffer:(CMSampleBufferRef)sampleBufferfromConnection:(AVCaptureConnection*)connection{UIImage*image=[selfgenerateUIImageFromSampleBuffer:sampleBuffer];if(imageData==N

ios - memcpy() 在 iOS 中导致 EXC_BAD_ACCESS

我在我的套接字接收函数上得到NSData并且我正在尝试将该数据复制到我的音频类的tempbuffer中,我正在使用外部类型全局变量这样做。这是我的代码:memcpy([recordertempBuffer].mdata,(__bridgerconstvoid*)data,data.length);这里的recorder是我的音频类的extern类型的全局变量。当控制到达这行代码时抛出异常,可能是什么错误。 最佳答案 这里确实存在三种可能性:[recordertempBuffer].mdata不是有效指针。(例如,它是什么类型?如果它

android ndk开发问题: 'Invalid arguments' error for memcpy function

我为android项目使用了c++代码,所以我使用了NDK工具。IDE是eclipse。编译项目时,memcpy函数出现错误:Invalidarguments'Candidatesare:void*memcpy(void*,constvoid*,?)'对于malloc,strftime也是如此。我是在Windows系统下开发的。为什么?这是我的部分代码:#include#include#include#include#include"dirent.h"#include#include#include#include#includestringgetCurrentDate(){time_

java - 如何在 Java 中获取 memcpy?

我正在开发一个与在Windows服务器上运行的C程序通信的应用程序,该程序是使用VisualStudio开发的(如果此信息有任何帮助的话)。服务器通过套接字通信向我发送一个整数,在发送之前服务器会做以下事情:-声明一个整数给它赋值使用memcpy将2个字节复制到char*(比如缓冲区)向该缓冲区添加更多数据发送缓冲区现在接收端有java实现,不能直接用memcpy,我用过shortmId=java.nio.ByteBuffer.wrap(recvBuf,0,2).order(ByteOrder.LITTLE_ENDIAN).getShort();这很好用,但这部分代码每隔几毫秒就会调用

c++ - memcpy 进程安全吗?

我在网上看过,但无法找到令自己满意的答案。memcpy是线程安全的吗?(在Windows中)我的意思是,如果我使用单个memcpy写入进程之间共享的内存区域(使用boost::shared_memory_object),然后尝试从另一个内存区域读取该区域使用单个memcpy的进程然后将自动阻止一个进程当那个写发生的时候?我在哪里可以读到这方面的信息? 最佳答案 memcpy通常针对原始速度进行编码。它不会是线程安全的。如果您需要这样做,您需要在关键部分内执行memcpy调用或使用其他一些信号量机制。take_mutex(&mutex

c++ - std::copy 与 memcpy 的效率

这个问题在这里已经有了答案:Isitbettertousestd::memcpy()orstd::copy()intermstoperformance?(8个答案)关闭7年前。使用memcpy和std::copy之间的效率损失有多严重?我有一种情况,我的系统上的vector实现似乎没有使用连续内存,这让我不得不稍后std::copy它的内容而不是做memcpy(dest,&vec[0],尺寸);.我不确定这对效率的影响有多严重。