[Atmel] 发现mbed rtos 在Atmel这块有BUG

[复制链接]
1086|0
 楼主| ddllxxrr 发表于 2016-2-26 09:57 | 显示全部楼层 |阅读模式
昨天我试了了,mbed 的rtos,程序如下:


  1. #include "mbed.h"
  2. #include "rtos.h"

  3. DigitalOut led1(LED1);


  4. void led1_thread(void const *args) {
  5.     while (true) {
  6.         led1 = !led1;
  7.         Thread::wait(1000);
  8.     }
  9. }

  10. int main() {
  11.     Thread thread(led1_thread);
  12.    
  13.     while (true) {
  14.            Thread::wait(500);
  15.     }
  16. }
  17. }
刚开始是没有加rtos库提示如下:


在子目录mbed-dev点右键,导入库
再编译确出现如下:




看了下,rtos根本就没有Atmel的型号如下:


  1. /*----------------------------------------------------------------------------
  2. *      RTX User configuration part BEGIN
  3. *---------------------------------------------------------------------------*/

  4. //-------- <<< Use Configuration Wizard in Context Menu >>> -----------------
  5. //
  6. // <h>Thread Configuration
  7. // =======================
  8. //
  9. //   <o>Number of concurrent running threads <0-250>
  10. //   <i> Defines max. number of threads that will run at the same time.
  11. //       counting "main", but not counting "osTimerThread"
  12. //   <i> Default: 6
  13. #ifndef OS_TASKCNT
  14. #  if   defined(TARGET_LPC1768) || defined(TARGET_LPC2368)   || defined(TARGET_LPC4088) || defined(TARGET_LPC4088_DM) || defined(TARGET_LPC4330) || defined(TARGET_LPC4337) || defined(TARGET_LPC1347) || defined(TARGET_K64F) || defined(TARGET_STM32F401RE)\
  15.    || defined(TARGET_STM32F410RB) || defined(TARGET_KL46Z) || defined(TARGET_KL43Z)  || defined(TARGET_STM32F407) || defined(TARGET_F407VG)  || defined(TARGET_STM32F303VC) || defined(TARGET_LPC1549) || defined(TARGET_LPC11U68) \
  16.    || defined(TARGET_STM32F411RE) || defined(TARGET_STM32F405RG) || defined(TARGET_K22F) || defined(TARGET_STM32F429ZI) || defined(TARGET_STM32F401VC) || defined(TARGET_MAX32610) || defined(TARGET_MAX32600) || defined(TARGET_TEENSY3_1) \
  17.    || defined(TARGET_STM32L152RE) || defined(TARGET_STM32F446RE) || defined(TARGET_STM32F446VE) || defined(TARGET_STM32L476VG) || defined(TARGET_STM32L476RG) || defined(TARGET_STM32F469NI) || defined(TARGET_STM32F746NG) || defined(TARGET_STM32L152RC)
  18. #    define OS_TASKCNT         14
  19. #  elif defined(TARGET_LPC11U24) || defined(TARGET_STM32F303RE) || defined(TARGET_STM32F303K8) || defined(TARGET_LPC11U35_401)  || defined(TARGET_LPC11U35_501) || defined(TARGET_LPCCAPPUCCINO) || defined(TARGET_LPC1114) \
  20.    || defined(TARGET_LPC812)   || defined(TARGET_KL25Z)         || defined(TARGET_KL26Z)         || defined(TARGET_KL05Z)        || defined(TARGET_STM32F100RB)  || defined(TARGET_STM32F051R8) \
  21.    || defined(TARGET_STM32F103RB) || defined(TARGET_LPC824) || defined(TARGET_STM32F302R8) || defined(TARGET_STM32F334R8) || defined(TARGET_STM32F334C8) \
  22.    || defined(TARGET_STM32L053R8) || defined(TARGET_STM32L053C8) || defined(TARGET_STM32F072RB) || defined(TARGET_STM32F091RC) || defined(TARGET_NZ32_SC151) \
  23.    || defined(TARGET_SSCI824)  || defined(TARGET_STM32F030R8) || defined(TARGET_STM32F070RB)
  24. #    define OS_TASKCNT         6
  25. #  else
  26. #    error "no target defined"
  27. #  endif
  28. #endif

  29. //   <o>Scheduler (+ interrupts) stack size [bytes] <64-4096:8><#/4>
  30. #ifndef OS_SCHEDULERSTKSIZE
  31. #  if   defined(TARGET_LPC1768) || defined(TARGET_LPC2368)   || defined(TARGET_LPC4088) || defined(TARGET_LPC4088_DM) || defined(TARGET_LPC4330) || defined(TARGET_LPC4337) || defined(TARGET_LPC1347)  || defined(TARGET_K64F) || defined(TARGET_STM32F401RE)\
  32.    || defined(TARGET_STM32F410RB) || defined(TARGET_KL46Z) || defined(TARGET_KL43Z) || defined(TARGET_STM32F407) || defined(TARGET_F407VG)  || defined(TARGET_STM32F303VC) || defined(TARGET_LPC1549) || defined(TARGET_LPC11U68) \
  33.    || defined(TARGET_STM32F411RE) || defined(TARGET_STM32F405RG) || defined(TARGET_K22F) || defined(TARGET_STM32F429ZI) || defined(TARGET_STM32F401VC) || defined(TARGET_MAX32610) || defined(TARGET_MAX32600) || defined(TARGET_TEENSY3_1) \
  34.    || defined(TARGET_STM32L152RE) || defined(TARGET_STM32F446RE) || defined(TARGET_STM32F446VE) || defined(TARGET_STM32L476VG) || defined(TARGET_STM32L476RG) || defined(TARGET_STM32F469NI) || defined(TARGET_STM32F746NG) || defined(TARGET_STM32L152RC)
  35. #      define OS_SCHEDULERSTKSIZE    256
  36. #  elif defined(TARGET_LPC11U24) || defined(TARGET_LPC11U35_401)  || defined(TARGET_LPC11U35_501) || defined(TARGET_LPCCAPPUCCINO)  || defined(TARGET_LPC1114) \
  37.    || defined(TARGET_LPC812)   || defined(TARGET_KL25Z)         || defined(TARGET_KL26Z)        || defined(TARGET_KL05Z)        || defined(TARGET_STM32F100RB)  || defined(TARGET_STM32F051R8) \
  38.    || defined(TARGET_STM32F103RB) || defined(TARGET_LPC824) || defined(TARGET_STM32F302R8) || defined(TARGET_STM32F072RB) || defined(TARGET_STM32F091RC) || defined(TARGET_NZ32_SC151) \
  39.    || defined(TARGET_SSCI824) || defined(TARGET_STM32F030R8) || defined(TARGET_STM32F070RB)
  40. #      define OS_SCHEDULERSTKSIZE    128
  41. #  elif defined(TARGET_STM32F334R8) || defined(TARGET_STM32F303RE) ||  defined(TARGET_STM32F303K8) ||  defined(TARGET_STM32F334C8) || defined(TARGET_STM32L053R8) || defined(TARGET_STM32L053C8)
  42. #      define OS_SCHEDULERSTKSIZE    112
  43. #  else
  44. #    error "no target defined"
  45. #  endif
  46. #endif

  47. //   <o>Idle stack size [bytes] <64-4096:8><#/4>
  48. //   <i> Defines default stack size for the Idle thread.
  49. #ifndef OS_IDLESTKSIZE
  50. #define OS_IDLESTKSIZE         128
  51. #endif

  52. //   <o>Timer Thread stack size [bytes] <64-4096:8><#/4>
  53. //   <i> Defines stack size for Timer thread.
  54. //   <i> Default: 200
  55. #ifndef OS_TIMERSTKSZ
  56. #define OS_TIMERSTKSZ  WORDS_STACK_SIZE
  57. #endif

  58. // <q>Check for stack overflow
  59. // <i> Includes the stack checking code for stack overflow.
  60. // <i> Note that additional code reduces the Kernel performance.
  61. #ifndef OS_STKCHECK
  62. #define OS_STKCHECK    1
  63. #endif

  64. // <o>Processor mode for thread execution
  65. //   <0=> Unprivileged mode
  66. //   <1=> Privileged mode
  67. // <i> Default: Privileged mode
  68. #ifndef OS_RUNPRIV
  69. #define OS_RUNPRIV     1
  70. #endif

  71. // </h>
  72. // <h>SysTick Timer Configuration
  73. // ==============================
  74. //
  75. //   <o>Timer clock value [Hz] <1-1000000000>
  76. //   <i> Defines the timer clock value.
  77. //   <i> Default: 6000000  (6MHz)
  78. #ifndef OS_CLOCK
  79. #  if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) || defined(TARGET_TEENSY3_1)
  80. #    define OS_CLOCK       96000000

  81. #  elif defined(TARGET_LPC1347) || defined(TARGET_STM32F303VC) || defined(TARGET_LPC1549) || defined(TARGET_STM32F334R8) || defined(TARGET_STM32F334C8) || defined(TARGET_STM32F303RE)
  82. #    define OS_CLOCK       72000000

  83. #  elif defined(TARGET_STM32F303K8)
  84. #    define OS_CLOCK       64000000

  85. #  elif defined(TARGET_LPC11U24) || defined(TARGET_LPC11U35_401)  || defined(TARGET_LPC11U35_501) || defined(TARGET_LPCCAPPUCCINO)  || defined(TARGET_LPC1114) || defined(TARGET_KL25Z) \
  86.      || defined(TARGET_KL26Z) || defined(TARGET_KL05Z) || defined(TARGET_KL46Z) || defined(TARGET_KL43Z) || defined(TARGET_STM32F051R8) || defined(TARGET_LPC11U68) || defined(TARGET_STM32F072RB) || defined(TARGET_STM32F091RC)
  87. #    define OS_CLOCK       48000000

  88. #  elif defined(TARGET_LPC812)
  89. #    define OS_CLOCK       36000000

  90. #  elif defined(TARGET_LPC824) || defined(TARGET_SSCI824)
  91. #    define OS_CLOCK       30000000

  92. #  elif  defined(TARGET_STM32F100RB)
  93. #    define OS_CLOCK       24000000

  94. #  elif defined(TARGET_LPC4088) || defined(TARGET_LPC4088_DM) || defined(TARGET_K64F) || defined(TARGET_K22F)
  95. #    define OS_CLOCK       120000000

  96. #  elif defined(TARGET_LPC4330)
  97. #    define OS_CLOCK       204000000

  98. #  elif defined(TARGET_LPC4337)
  99. #    define OS_CLOCK       204000000

  100. #  elif defined(TARGET_STM32F407) || defined(TARGET_F407VG)
  101. #    define OS_CLOCK       168000000

  102. #  elif defined(TARGET_STM32F401RE)
  103. #    define OS_CLOCK       84000000

  104. #  elif defined(TARGET_STM32F411RE)
  105. #     define OS_CLOCK      100000000

  106. #  elif defined(TARGET_STM32F410RB)
  107. #     define OS_CLOCK      100000000

  108. #elif defined(TARGET_STM32F103RB)
  109. #    define OS_CLOCK       72000000

  110. #elif defined(TARGET_STM32F429ZI)
  111. #    define OS_CLOCK       168000000

  112. #elif defined(TARGET_STM32F302R8)
  113. #    define OS_CLOCK       72000000

  114. #elif defined(TARGET_STM32L053R8) || defined(TARGET_STM32L053C8)
  115. #    define OS_CLOCK       32000000

  116. #elif defined(TARGET_STM32F401VC)
  117. #    define OS_CLOCK       84000000

  118. #  elif defined(TARGET_STM32F746NG)
  119. #     define OS_CLOCK      216000000

  120. #elif defined(TARGET_MAX32610) || defined(TARGET_MAX32600)
  121. #    define OS_CLOCK       24000000

  122. #elif defined(TARGET_NZ32_SC151)
  123. #    define OS_CLOCK       32000000

  124. #elif defined(TARGET_STM32L152RE)
  125. #    define OS_CLOCK       24000000

  126. #elif (defined(TARGET_STM32F446RE) || defined(TARGET_STM32F446VE))
  127. #    define OS_CLOCK       180000000

  128. #elif defined(TARGET_STM32F030R8)
  129. #    define OS_CLOCK       48000000

  130. #elif defined(TARGET_STM32F070RB)
  131. #    define OS_CLOCK       48000000

  132. #elif defined(TARGET_STM32L476VG) || defined(TARGET_STM32L476RG)
  133. #    define OS_CLOCK       80000000

  134. #elif defined(TARGET_STM32F469NI)
  135. #    define OS_CLOCK       168000000

  136. #elif defined(TARGET_STM32L152RC)
  137. #    define OS_CLOCK       24000000

  138. #  else
  139. #    error "no target defined"
  140. #  endif
  141. #endif




在这里贴出来,以免大家走弯路。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2404

主题

7001

帖子

68

粉丝
快速回复 在线客服 返回列表 返回顶部