Semaphore.cpp 513 B

123456789101112131415161718192021222324
  1. #include "Semaphore.h"
  2. #include <string.h>
  3. //#include "error.h"
  4. namespace rtos {
  5. Semaphore::Semaphore(int32_t count) {
  6. #ifdef CMSIS_OS_RTX
  7. memset(_semaphore_data, 0, sizeof(_semaphore_data));
  8. _osSemaphoreDef.semaphore = _semaphore_data;
  9. #endif
  10. _osSemaphoreId = osSemaphoreCreate(&_osSemaphoreDef, count);
  11. }
  12. int32_t Semaphore::wait(uint32_t millisec) {
  13. return osSemaphoreWait(_osSemaphoreId, millisec);
  14. }
  15. osStatus Semaphore::release(void) {
  16. return osSemaphoreRelease(_osSemaphoreId);
  17. }
  18. }