我只是試圖分配一個包含Eigen :: Matrix的實例給Xenomai的共享內存。如何進行配置分配Eigen :: Matrix到共享內存(或堆)?
unsigned char * mem; //shared memory pointer
Robot * robot = new ((void *)(mem+ROBOT_ADDR)) Robot();
Robot類包含幾個Eigen :: Matrix。但是,我無法在共享內存中分配機器人對象。
但基本配置在下面工作得很好。
Robot * robot = new Robot(); //work well!
斷言日誌是:
徵::內部:: plain_array :: plain_array() [用T =雙; int Size = 36; INT MatrixOrArrayOptions = 0]: 斷言`(的reinterpret_cast(eigen_unaligned_array_assert_workaround_gcc47(陣列))& 0xf)== 0 & & 「這一說法在這裏解釋:」 「http://eigen.tuxfamily.org/dox-devel/group__TopicUnalignedArrayAssert.html」,「 ****閱讀本WEB PAGE !!! ****「'失敗。
我已經檢查了日誌中的網頁。但我的情況沒有解決辦法。
如何做位置分配Eigen :: Matrix到共享內存(或用戶定義的特定堆)?
另一種解決方案是使用不對齊的類型,如:'Matrix'而不是'Matrix4f'。 –
ggael
我解決它使用'__attribute__((對齊16))'。謝謝XD – Dayamre