uctsk_OSView.c 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. /****************************************Copyright (c)****************************************************
  2. **
  3. ** http://www.powermcu.com
  4. **
  5. **--------------File Info---------------------------------------------------------------------------------
  6. ** File name: uctsk_OSView.c
  7. ** Descriptions: The uctsk_OSView application function
  8. **
  9. **--------------------------------------------------------------------------------------------------------
  10. ** Created by: AVRman
  11. ** Created date: 2010-11-9
  12. ** Version: v1.0
  13. ** Descriptions: The original version
  14. **
  15. **--------------------------------------------------------------------------------------------------------
  16. ** Modified by:
  17. ** Modified date:
  18. ** Version:
  19. ** Descriptions:
  20. **
  21. *********************************************************************************************************/
  22. /* Includes ------------------------------------------------------------------*/
  23. #include <includes.h>
  24. #if (OS_VIEW_MODULE == DEF_ENABLED)
  25. /* Private variables ---------------------------------------------------------*/
  26. static OS_STK OSViewTerminalTaskStk[APP_TASK_OSVIEW_TERMINAL_STK_SIZE];
  27. static OS_EVENT *eventAppOSViewTerminalRxMbox;
  28. /* Private function prototypes -----------------------------------------------*/
  29. static void uctsk_OSViewTerminal(void *pdata);
  30. static void AppOSViewTerminalRx(CPU_INT08U rx_data);
  31. void App_OSViewTaskCreate (void)
  32. {
  33. CPU_INT08U os_err;
  34. os_err = os_err; /* prevent warning... */
  35. OSView_Init(OS_VIEW_BAUDRATE); /* OSView Init, baud rate = OS_VIEW_BAUDRATE */
  36. OSView_TerminalRxSetCallback(AppOSViewTerminalRx);
  37. OSView_RxIntEn(); /* Enable Rx Interrupts */
  38. eventAppOSViewTerminalRxMbox = OSMboxCreate((void *)0);
  39. os_err = OSTaskCreateExt((void (*)(void *)) uctsk_OSViewTerminal,
  40. (void * ) 0,
  41. (OS_STK * )&OSViewTerminalTaskStk[APP_TASK_OSVIEW_TERMINAL_STK_SIZE - 1],
  42. (INT8U ) APP_TASK_OSVIEW_TERMINAL_PRIO,
  43. (INT16U ) APP_TASK_OSVIEW_TERMINAL_PRIO,
  44. (OS_STK * )&OSViewTerminalTaskStk[0],
  45. (INT32U ) APP_TASK_OSVIEW_TERMINAL_STK_SIZE,
  46. (void * ) 0,
  47. (INT16U )(OS_TASK_OPT_STK_CLR | OS_TASK_OPT_STK_CHK));
  48. #if OS_TASK_NAME_EN > 0
  49. OSTaskNameSet(APP_TASK_OSVIEW_TERMINAL_PRIO, "Task OSView Terminal", &os_err);
  50. #endif
  51. }
  52. /*
  53. *********************************************************************************************************
  54. * AppTerminalRx()
  55. *
  56. * Description : Callback function for uC/OS-View
  57. *
  58. * Argument(s) : rx_data The received data.
  59. *
  60. * Return(s) : none.
  61. *********************************************************************************************************
  62. */
  63. static void AppOSViewTerminalRx (CPU_INT08U rx_data)
  64. {
  65. OSMboxPost(eventAppOSViewTerminalRxMbox, &rx_data);
  66. }
  67. static void uctsk_OSViewTerminal(void *pdata)
  68. {
  69. INT8U s[100];
  70. INT8U *key;
  71. INT8U err;
  72. (void)pdata; /* Prevent compiler warning */
  73. OSView_TxStr("\n?: Help (This menu)\n", 0);
  74. while (1) {
  75. key = (INT8U *)OSMboxPend(eventAppOSViewTerminalRxMbox, 0, &err);
  76. switch (*key) {
  77. case '1':
  78. sprintf((char *)s, "\nCPU Usage = %3u%%\n", OSCPUUsage);
  79. OSView_TxStr(s, 1);
  80. break;
  81. case '2':
  82. sprintf((char *)s, "\n#Tasks = %3u\n", OSTaskCtr);
  83. OSView_TxStr(s, 1);
  84. break;
  85. default:
  86. OSView_TxStr("\n\nMicrium, Inc.", 1);
  87. OSView_TxStr("\n1: CPU Usage (%)", 1);
  88. OSView_TxStr("\n2: #Tasks", 1);
  89. OSView_TxStr("\n?: Help (This menu)\n", 1);
  90. break;
  91. }
  92. }
  93. }
  94. #endif
  95. /*********************************************************************************************************
  96. END FILE
  97. *********************************************************************************************************/