os_sample.c 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /* ----------------------------------------------------------------------
  2. * Copyright (C) 2011 ARM Limited. All rights reserved.
  3. *
  4. * $Date: 30. November 2011
  5. * $Revision: V0.02
  6. *
  7. * Project: CMSIS-RTOS API
  8. * Title: os_sample.c
  9. *
  10. * Description: This file shows the usage of the CMSIS-RTOS API.
  11. *
  12. *
  13. * Version 0.02
  14. * Initial Proposal Phase
  15. * -------------------------------------------------------------------- */
  16. #include "my_objects.h" // Define CMSIS OS Objects
  17. // dummy functions since there is no OS today
  18. /// Add a thread to ActiveThreads and set it to state READY
  19. osThreadId osThreadCreate (const osThreadDef_t *thread_def, void *argument) { return osOK; }
  20. /// Terminate execution of a thread and remove it from ActiveThreads
  21. osStatus osThreadTerminate (osThreadId thread_id) { return osOK; }
  22. /// Change prority of an existing thread
  23. osStatus osThreadSetPriority (osThreadId thread_id, osPriority priority) { return osOK; }
  24. /// Get current prority of an existing thread
  25. osPriority osThreadGetPriority (osThreadId thread_id) { return osPriorityNormal; }
  26. osMessageQId osMessageCreate (const osMessageQDef_t *queue_def, osThreadId thread_id) { return NULL; }
  27. osThreadId osThreadGetId (void) { return 0; }
  28. osStatus status;
  29. osThreadId thread_sample1;
  30. osThreadId thread_sample2;
  31. osMessageQDef(TcpMessageQ0, 10, a_element *);
  32. osMessageQDef(TcpMessageQ1, 10, a_element *);
  33. osMessageQDef(TcpMessageQ2, 10, a_element *);
  34. osMessageQDef(TcpMessageQ3, 10, a_element *);
  35. const osMessageQDef_t *TcpMessageQDef[4]
  36. #if 1
  37. = {
  38. osMessageQ(TcpMessageQ0),
  39. osMessageQ(TcpMessageQ1),
  40. osMessageQ(TcpMessageQ2),
  41. osMessageQ(TcpMessageQ3),
  42. }
  43. #endif
  44. ;
  45. osMessageQId TcpMessageQ[4];
  46. void CreateMessageQueues (void) {
  47. uint32_t i;
  48. for (i = 0; i < 4; i++) {
  49. TcpMessageQ[i] = osMessageCreate (TcpMessageQDef[i], NULL);
  50. }
  51. }
  52. int main (void) {
  53. thread_sample1 = osThreadCreate (osThread (thread_sample), NULL);
  54. thread_sample2 = osThreadCreate (osThread (thread_sample), NULL);
  55. }