在pthread_mutex_init()
的QNX Neutrino RTOS和Blackberry10 OS(here)的描述中,有以下内容:
您应该仅在普通内存中分配同步对象 映射。在某些处理器(例如一些PPC处理器)上,原子 如果调用pthread_mutex_lock()等操作将导致错误 控制结构分配在未缓存的内存中。
我已经将Mutex
定义为任何函数,并且在尝试执行pthread_mutex_init()
时出现“内存错误”错误。所以,我想知道“正常的内存映射”和“未缓存的内存”术语是什么意思?我应该在哪里定义Mutex
锁定?
答案 0 :(得分:0)
考虑到您使用的是ARM体系结构。
ARM体系结构支持三种类型的内存 -
1 - 强烈有序 - 不可缓存
2 - 设备 - 不可缓存(对于内存映射外设)
3 - 正常 - 可缓存
根据您的描述,您应该从Normal内存中分配muxtex结构。正常程序执行使用正常内存。你的问题看起来与此无关。请检查内存分配函数的返回值。
有关ARM内存类型的详细说明,请访问ARM网站。