diff --git a/include/sta/rtos/sharedmem.hpp b/include/sta/rtos/sharedmem.hpp index be11a40..d39141d 100644 --- a/include/sta/rtos/sharedmem.hpp +++ b/include/sta/rtos/sharedmem.hpp @@ -20,7 +20,7 @@ namespace sta * @ingroup STA_RTOS_API */ template - class RtosMemPool + class RtosSharedMem { public: using Message = T; /**< message type */ @@ -32,10 +32,9 @@ namespace sta /** * @brief Create a memory pool. And allocates exavlty one block. * - * @param block_size names the size of each block. * @param timeout names the timeout in milliseconds. */ - RtosSharedMem(uint32_t block_size, uint32_t timeout); + RtosSharedMem(uint32_t timeout); /** * @brief Destroy the Rtos Mem Pool object and frees the memory. diff --git a/include/sta/rtos/sharedmem.tpp b/include/sta/rtos/sharedmem.tpp index 233bc99..5460374 100644 --- a/include/sta/rtos/sharedmem.tpp +++ b/include/sta/rtos/sharedmem.tpp @@ -11,35 +11,35 @@ namespace sta { template - RtosMemPool::RtosMemPool() + RtosSharedMem::RtosSharedMem() { } template - RtosMemPool::RtosMemPool(uint32_t block_size, uint32_t timeout /* = osWaitForever */) + RtosSharedMem::RtosSharedMem(uint32_t timeout /* = osWaitForever */) { - handle_ = osMemoryPoolNew(block_size, block_count, NULL); + handle_ = osMemoryPoolNew(sizeof(T), 1, NULL); STA_ASSERT_MSG(handle_ != nullptr, "Failed to Create RtosMemPool for sharedmem"); - shared_mem_ = osMemoryPoolAlloc(handle_, timeout) + shared_mem_ = (T*) osMemoryPoolAlloc(handle_, timeout); STA_ASSERT_MSG(shared_mem_ != nullptr, "Failed to Alloc RtosMemPool Block"); } template - RtosMemPool::~RtosSharedMem() + RtosSharedMem::~RtosSharedMem() { osMemoryPoolFree(handle_, shared_mem_); osMemoryPoolDelete(handle_); } template - void RtosMemPool::write(T _message) + void RtosSharedMem::write(T _message) { *shared_mem_ = _message; } template - T RtosMemPool::read(void * block) + T RtosSharedMem::read() { return *shared_mem_; }