CMakeLists.txt 59 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356
  1. if( FREERTOS_PORT STREQUAL "GCC_RISC_V_GENERIC" )
  2. include( GCC/RISC-V/chip_extensions.cmake )
  3. endif()
  4. if( FREERTOS_PORT STREQUAL "IAR_RISC_V_GENERIC" )
  5. include( IAR/RISC-V/chip_extensions.cmake )
  6. endif()
  7. # FreeRTOS internal cmake file. Do not use it in user top-level project
  8. if (FREERTOS_PORT STREQUAL "A_CUSTOM_PORT")
  9. message(STATUS "Using a custom FREERTOS_PORT.")
  10. return()
  11. endif()
  12. # FreeRTOS internal cmake file. Do not use it in user top-level project
  13. add_library(freertos_kernel_port OBJECT
  14. # TEMPLATE Port
  15. $<$<STREQUAL:${FREERTOS_PORT},TEMPLATE>:
  16. template/port.c>
  17. # 16-Bit DOS ports for BCC
  18. $<$<STREQUAL:${FREERTOS_PORT},BCC_16BIT_DOS_FLSH186>:
  19. BCC/16BitDOS/common/portcomn.c
  20. BCC/16BitDOS/Flsh186/port.c>
  21. $<$<STREQUAL:${FREERTOS_PORT},BCC_16BIT_DOS_PC>:
  22. BCC/16BitDOS/common/portcomn.c
  23. BCC/16BitDOS/PC/port.c>
  24. # ARMv7-M port for Texas Instruments Code Composer Studio
  25. $<$<STREQUAL:${FREERTOS_PORT},CCS_ARM_CM3>:
  26. CCS/ARM_CM3/port.c
  27. CCS/ARM_CM3/portasm.asm>
  28. # ARMv7E-M port for Texas Instruments Code Composer Studio
  29. $<$<STREQUAL:${FREERTOS_PORT},CCS_ARM_CM4F>:
  30. CCS/ARM_CM4F/port.c
  31. CCS/ARM_CM4F/portasm.asm>
  32. # ARMv7-R port for Texas Instruments Code Composer Studio
  33. $<$<STREQUAL:${FREERTOS_PORT},CCS_ARM_CR4>:
  34. CCS/ARM_Cortex-R4/port.c
  35. CCS/ARM_Cortex-R4/portASM.asm>
  36. # Texas Instruments MSP430 port for Texas Instruments Code Composer Studio
  37. $<$<STREQUAL:${FREERTOS_PORT},CCS_MSP430X>:
  38. CCS/MSP430X/port.c
  39. CCS/MSP430X/portext.asm>
  40. # NXP (formerly Motorola, Freescale) Cold Fire and 68HCS12 ports for Code Warrior
  41. $<$<STREQUAL:${FREERTOS_PORT},CODEWARRIOR_COLDFIRE_V1>:
  42. CodeWarrior/ColdFire_V1/port.c
  43. CodeWarrior/ColdFire_V1/portasm.S>
  44. $<$<STREQUAL:${FREERTOS_PORT},CODEWARRIOR_COLDFIRE_V2>:
  45. CodeWarrior/ColdFire_V2/port.c
  46. CodeWarrior/ColdFire_V2/portasm.S>
  47. $<$<STREQUAL:${FREERTOS_PORT},CODEWARRIOR_HCS12>:
  48. CodeWarrior/HCS12/port.c>
  49. # ARMv7-A port for GCC
  50. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CA9>:
  51. GCC/ARM_CA9/port.c
  52. GCC/ARM_CA9/portASM.S>
  53. # ARMv8-A ports for GCC
  54. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_AARCH64>:
  55. GCC/ARM_AARCH64/port.c
  56. GCC/ARM_AARCH64/portASM.S>
  57. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_AARCH64_SRE>:
  58. GCC/ARM_AARCH64_SRE/port.c
  59. GCC/ARM_AARCH64_SRE/portASM.S>
  60. # ARMv6-M port for GCC
  61. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM0>:
  62. GCC/ARM_CM0/port.c
  63. GCC/ARM_CM0/portasm.c
  64. GCC/ARM_CM0/mpu_wrappers_v2_asm.c>
  65. # ARMv6-M / Cortex-M0 Raspberry PI RP2040 port for GCC
  66. $<$<STREQUAL:${FREERTOS_PORT},GCC_RP2040>:
  67. ThirdParty/GCC/RP2040/port.c>
  68. # ARMv7-M ports for GCC
  69. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM3>:
  70. GCC/ARM_CM3/port.c>
  71. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM3_MPU>:
  72. GCC/ARM_CM3_MPU/port.c
  73. GCC/ARM_CM3_MPU/mpu_wrappers_v2_asm.c>
  74. # ARMv7E-M ports for GCC
  75. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM4_MPU>:
  76. GCC/ARM_CM4_MPU/port.c
  77. GCC/ARM_CM4_MPU/mpu_wrappers_v2_asm.c>
  78. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM4F>:
  79. GCC/ARM_CM4F/port.c>
  80. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM7>:
  81. GCC/ARM_CM7/r0p1/port.c>
  82. # ARMv8-M ports for GCC
  83. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM23_NONSECURE>:
  84. GCC/ARM_CM23/non_secure/port.c
  85. GCC/ARM_CM23/non_secure/portasm.c
  86. GCC/ARM_CM23/non_secure/mpu_wrappers_v2_asm.c>
  87. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM23_SECURE>:
  88. GCC/ARM_CM23/secure/secure_context_port.c
  89. GCC/ARM_CM23/secure/secure_context.c
  90. GCC/ARM_CM23/secure/secure_heap.c
  91. GCC/ARM_CM23/secure/secure_init.c>
  92. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM23_NTZ_NONSECURE>:
  93. GCC/ARM_CM23_NTZ/non_secure/port.c
  94. GCC/ARM_CM23_NTZ/non_secure/portasm.c
  95. GCC/ARM_CM23_NTZ/non_secure/mpu_wrappers_v2_asm.c>
  96. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM33_NONSECURE>:
  97. GCC/ARM_CM33/non_secure/port.c
  98. GCC/ARM_CM33/non_secure/portasm.c
  99. GCC/ARM_CM33/non_secure/mpu_wrappers_v2_asm.c>
  100. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM33_SECURE>:
  101. GCC/ARM_CM33/secure/secure_context_port.c
  102. GCC/ARM_CM33/secure/secure_context.c
  103. GCC/ARM_CM33/secure/secure_heap.c
  104. GCC/ARM_CM33/secure/secure_init.c>
  105. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM33_NTZ_NONSECURE>:
  106. GCC/ARM_CM33_NTZ/non_secure/port.c
  107. GCC/ARM_CM33_NTZ/non_secure/portasm.c
  108. GCC/ARM_CM33_NTZ/non_secure/mpu_wrappers_v2_asm.c>
  109. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM33_TFM>:
  110. GCC/ARM_CM33_NTZ/non_secure/port.c
  111. GCC/ARM_CM33_NTZ/non_secure/portasm.c
  112. GCC/ARM_CM33_NTZ/non_secure/mpu_wrappers_v2_asm.c
  113. ThirdParty/GCC/ARM_TFM/os_wrapper_freertos.c>
  114. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM35P_NONSECURE>:
  115. GCC/ARM_CM35P/non_secure/port.c
  116. GCC/ARM_CM35P/non_secure/portasm.c
  117. GCC/ARM_CM35P/non_secure/mpu_wrappers_v2_asm.c>
  118. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM35P_SECURE>:
  119. GCC/ARM_CM35P/secure/secure_context_port.c
  120. GCC/ARM_CM35P/secure/secure_context.c
  121. GCC/ARM_CM35P/secure/secure_heap.c
  122. GCC/ARM_CM35P/secure/secure_init.c>
  123. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM35P_NTZ_NONSECURE>:
  124. GCC/ARM_CM35P_NTZ/non_secure/port.c
  125. GCC/ARM_CM35P_NTZ/non_secure/portasm.c
  126. GCC/ARM_CM35P_NTZ/non_secure/mpu_wrappers_v2_asm.c>
  127. # ARMv8.1-M ports for GCC
  128. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_NONSECURE>:
  129. GCC/ARM_CM55/non_secure/port.c
  130. GCC/ARM_CM55/non_secure/portasm.c
  131. GCC/ARM_CM55/non_secure/mpu_wrappers_v2_asm.c>
  132. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_SECURE>:
  133. GCC/ARM_CM55/secure/secure_context_port.c
  134. GCC/ARM_CM55/secure/secure_context.c
  135. GCC/ARM_CM55/secure/secure_heap.c
  136. GCC/ARM_CM55/secure/secure_init.c>
  137. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_NTZ_NONSECURE>:
  138. GCC/ARM_CM55_NTZ/non_secure/port.c
  139. GCC/ARM_CM55_NTZ/non_secure/portasm.c
  140. GCC/ARM_CM55_NTZ/non_secure/mpu_wrappers_v2_asm.c>
  141. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_TFM>:
  142. GCC/ARM_CM55_NTZ/non_secure/port.c
  143. GCC/ARM_CM55_NTZ/non_secure/portasm.c
  144. GCC/ARM_CM55_NTZ/non_secure/mpu_wrappers_v2_asm.c
  145. ThirdParty/GCC/ARM_TFM/os_wrapper_freertos.c>
  146. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM52_NONSECURE>:
  147. GCC/ARM_CM52/non_secure/port.c
  148. GCC/ARM_CM52/non_secure/portasm.c
  149. GCC/ARM_CM52/non_secure/mpu_wrappers_v2_asm.c>
  150. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM52_SECURE>:
  151. GCC/ARM_CM52/secure/secure_context_port.c
  152. GCC/ARM_CM52/secure/secure_context.c
  153. GCC/ARM_CM52/secure/secure_heap.c
  154. GCC/ARM_CM52/secure/secure_init.c>
  155. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM52_NTZ_NONSECURE>:
  156. GCC/ARM_CM52_NTZ/non_secure/port.c
  157. GCC/ARM_CM52_NTZ/non_secure/portasm.c
  158. GCC/ARM_CM52_NTZ/non_secure/mpu_wrappers_v2_asm.c>
  159. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM52_TFM>:
  160. GCC/ARM_CM52_NTZ/non_secure/port.c
  161. GCC/ARM_CM52_NTZ/non_secure/portasm.c
  162. GCC/ARM_CM52_NTZ/non_secure/mpu_wrappers_v2_asm.c
  163. ThirdParty/GCC/ARM_TFM/os_wrapper_freertos.c>
  164. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_NONSECURE>:
  165. GCC/ARM_CM85/non_secure/port.c
  166. GCC/ARM_CM85/non_secure/portasm.c
  167. GCC/ARM_CM85/non_secure/mpu_wrappers_v2_asm.c>
  168. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_SECURE>:
  169. GCC/ARM_CM85/secure/secure_context_port.c
  170. GCC/ARM_CM85/secure/secure_context.c
  171. GCC/ARM_CM85/secure/secure_heap.c
  172. GCC/ARM_CM85/secure/secure_init.c>
  173. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_NTZ_NONSECURE>:
  174. GCC/ARM_CM85_NTZ/non_secure/port.c
  175. GCC/ARM_CM85_NTZ/non_secure/portasm.c
  176. GCC/ARM_CM85_NTZ/non_secure/mpu_wrappers_v2_asm.c>
  177. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_TFM>:
  178. GCC/ARM_CM85_NTZ/non_secure/port.c
  179. GCC/ARM_CM85_NTZ/non_secure/portasm.c
  180. GCC/ARM_CM85_NTZ/non_secure/mpu_wrappers_v2_asm.c
  181. ThirdParty/GCC/ARM_TFM/os_wrapper_freertos.c>
  182. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_STAR_MC3_NONSECURE>:
  183. GCC/ARM_STAR_MC3/non_secure/port.c
  184. GCC/ARM_STAR_MC3/non_secure/portasm.c
  185. GCC/ARM_STAR_MC3/non_secure/mpu_wrappers_v2_asm.c>
  186. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_STAR_MC3_SECURE>:
  187. GCC/ARM_STAR_MC3/secure/secure_context_port.c
  188. GCC/ARM_STAR_MC3/secure/secure_context.c
  189. GCC/ARM_STAR_MC3/secure/secure_heap.c
  190. GCC/ARM_STAR_MC3/secure/secure_init.c>
  191. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_STAR_MC3_NTZ_NONSECURE>:
  192. GCC/ARM_STAR_MC3_NTZ/non_secure/port.c
  193. GCC/ARM_STAR_MC3_NTZ/non_secure/portasm.c
  194. GCC/ARM_STAR_MC3_NTZ/non_secure/mpu_wrappers_v2_asm.c>
  195. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_STAR_MC3_TFM>:
  196. GCC/ARM_STAR_MC3_NTZ/non_secure/port.c
  197. GCC/ARM_STAR_MC3_NTZ/non_secure/portasm.c
  198. GCC/ARM_STAR_MC3_NTZ/non_secure/mpu_wrappers_v2_asm.c
  199. ThirdParty/GCC/ARM_TFM/os_wrapper_freertos.c>
  200. # ARMv7-R ports for GCC
  201. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CR5>:
  202. GCC/ARM_CR5/port.c
  203. GCC/ARM_CR5/portASM.S>
  204. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CRX_MPU>:
  205. GCC/ARM_CRx_MPU/port.c
  206. GCC/ARM_CRx_MPU/portASM.S
  207. GCC/ARM_CRx_MPU/mpu_wrappers_v2_asm.S>
  208. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CRX_NOGIC>:
  209. GCC/ARM_CRx_No_GIC/port.c
  210. GCC/ARM_CRx_No_GIC/portASM.S>
  211. # ARMv8-R ports for GCC
  212. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CR82>:
  213. GCC/ARM_CR82/port.c
  214. GCC/ARM_CR82/portASM.S
  215. GCC/ARM_CR82/mpu_wrappers_v2_asm.c>
  216. # ARMv4T ARM7TDMI ports for GCC
  217. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM7_AT91FR40008>:
  218. GCC/ARM7_AT91FR40008/port.c
  219. GCC/ARM7_AT91FR40008/portISR.c>
  220. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM7_AT91SAM7S>:
  221. GCC/ARM7_AT91SAM7S/lib_AT91SAM7X256.c
  222. GCC/ARM7_AT91SAM7S/port.c
  223. GCC/ARM7_AT91SAM7S/portISR.c>
  224. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM7_LPC2000>:
  225. GCC/ARM7_LPC2000/port.c
  226. GCC/ARM7_LPC2000/portISR.c>
  227. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM7_LPC23XX>:
  228. GCC/ARM7_LPC23xx/port.c
  229. GCC/ARM7_LPC23xx/portISR.c>
  230. $<$<STREQUAL:${FREERTOS_PORT},GCC_STR75X>:
  231. GCC/STR75x/port.c
  232. GCC/STR75x/portISR.c>
  233. # Microchip (formerly Ateml) AVR8 ports for GCC
  234. $<$<STREQUAL:${FREERTOS_PORT},GCC_ATMEGA323>:
  235. GCC/ATMega323/port.c>
  236. $<$<STREQUAL:${FREERTOS_PORT},GCC_ATMEGA>:
  237. ThirdParty/GCC/ATmega/port.c>
  238. $<$<STREQUAL:${FREERTOS_PORT},GCC_AVRDX>:
  239. ThirdParty/Partner-Supported-Ports/GCC/AVR_AVRDx/port.c>
  240. $<$<STREQUAL:${FREERTOS_PORT},GCC_AVR_MEGA0>:
  241. ThirdParty/Partner-Supported-Ports/GCC/AVR_Mega0/port.c>
  242. # Microchip (formerly Ateml) AVR32 port for GCC
  243. $<$<STREQUAL:${FREERTOS_PORT},GCC_AVR32_UC3>:
  244. GCC/AVR32_UC3/exception.S
  245. GCC/AVR32_UC3/port.c>
  246. # NXP (formerly Motorola, Freescale) Cold Fire and 68HCS12 ports for GCC
  247. $<$<STREQUAL:${FREERTOS_PORT},GCC_COLDFIRE_V2>:
  248. GCC/ColdFire_V2/port.c
  249. GCC/ColdFire_V2/portasm.S>
  250. $<$<STREQUAL:${FREERTOS_PORT},GCC_HCS12>:
  251. GCC/HCS12/port.c>
  252. # Cortus APS3 soft core port for GCC
  253. $<$<STREQUAL:${FREERTOS_PORT},GCC_CORTUS_APS3>:
  254. GCC/CORTUS_APS3/port.c>
  255. # Renesas (formerly Hitach) H8S port for GCC
  256. $<$<STREQUAL:${FREERTOS_PORT},GCC_H8S2329>:
  257. GCC/H8S2329/port.c>
  258. # x86 / IA32 flat memory model port for GCC
  259. $<$<STREQUAL:${FREERTOS_PORT},GCC_IA32_FLAT>:
  260. GCC/IA32_flat/port.c
  261. GCC/IA32_flat/portASM.S>
  262. # Xilinx MicroBlaze soft core ports for GCC
  263. $<$<STREQUAL:${FREERTOS_PORT},GCC_MICROBLAZE>:
  264. GCC/MicroBlaze/port.c
  265. GCC/MicroBlaze/portasm.s>
  266. $<$<STREQUAL:${FREERTOS_PORT},GCC_MICROBLAZE_V8>:
  267. GCC/MicroBlazeV8/port.c
  268. GCC/MicroBlazeV8/port_exceptions.c
  269. GCC/MicroBlazeV8/portasm.S>
  270. $<$<STREQUAL:${FREERTOS_PORT},GCC_MICROBLAZE_V9>:
  271. GCC/MicroBlazeV9/port.c
  272. GCC/MicroBlazeV9/port_exceptions.c
  273. GCC/MicroBlazeV9/portasm.S>
  274. # Xilinx PCC4XX soft core ports for GCC
  275. $<$<STREQUAL:${FREERTOS_PORT},GCC_PPC405_XILINX>:
  276. GCC/PPC405_Xilinx/port.c
  277. GCC/PPC405_Xilinx/portasm.S>
  278. $<$<STREQUAL:${FREERTOS_PORT},GCC_PPC440_XILINX>:
  279. GCC/PPC440_Xilinx/port.c
  280. GCC/PPC440_Xilinx/portasm.S>
  281. # Texas Instruments MSP430 port for GCC
  282. $<$<STREQUAL:${FREERTOS_PORT},GCC_MSP430F449>:
  283. GCC/MSP430F449/port.c>
  284. # Intel (formerly Altera) NIOS II soft core port for GCC
  285. $<$<STREQUAL:${FREERTOS_PORT},GCC_NIOSII>:
  286. GCC/NiosII/port.c
  287. GCC/NiosII/port_asm.S>
  288. # RISC-V architecture ports for GCC
  289. $<$<STREQUAL:${FREERTOS_PORT},GCC_RISC_V>:
  290. GCC/RISC-V/port.c
  291. GCC/RISC-V/portASM.S>
  292. $<$<STREQUAL:${FREERTOS_PORT},GCC_RISC_V_PULPINO_VEGA_RV32M1RM>:
  293. GCC/RISC-V/port.c
  294. GCC/RISC-V/portASM.S>
  295. $<$<STREQUAL:${FREERTOS_PORT},GCC_RISC_V_GENERIC>:
  296. GCC/RISC-V/port.c
  297. GCC/RISC-V/portASM.S>
  298. # Renesas RL78 port for GCC
  299. $<$<STREQUAL:${FREERTOS_PORT},GCC_RL78>:
  300. GCC/RL78/port.c
  301. GCC/RL78/portasm.S>
  302. # Renesas RX architecture ports for GCC
  303. $<$<STREQUAL:${FREERTOS_PORT},GCC_RX100>:
  304. GCC/RX100/port.c>
  305. $<$<STREQUAL:${FREERTOS_PORT},GCC_RX200>:
  306. GCC/RX200/port.c>
  307. $<$<STREQUAL:${FREERTOS_PORT},GCC_RX600>:
  308. GCC/RX600/port.c>
  309. $<$<STREQUAL:${FREERTOS_PORT},GCC_RX600_V2>:
  310. GCC/RX600v2/port.c>
  311. $<$<STREQUAL:${FREERTOS_PORT},GCC_RX700_V3_DPFPU>:
  312. GCC/RX700v3_DPFPU/port.c>
  313. # Infineon TriCore 1782 port for GCC
  314. $<$<STREQUAL:${FREERTOS_PORT},GCC_TRICORE_1782>:
  315. GCC/TriCore_1782/port.c
  316. GCC/TriCore_1782/porttrap.c>
  317. # Synopsys ARC architecture ports for GCC
  318. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARC_EM_HS>:
  319. ThirdParty/GCC/ARC_EM_HS/arc_freertos_exceptions.c
  320. ThirdParty/GCC/ARC_EM_HS/arc_support.s
  321. ThirdParty/GCC/ARC_EM_HS/freertos_tls.c
  322. ThirdParty/GCC/ARC_EM_HS/port.c>
  323. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARC_V1>:
  324. ThirdParty/GCC/ARC_v1/arc_freertos_exceptions.c
  325. ThirdParty/GCC/ARC_v1/arc_support.s
  326. ThirdParty/GCC/ARC_v1/port.c>
  327. # Posix Simulator port for GCC
  328. $<$<STREQUAL:${FREERTOS_PORT},GCC_POSIX>:
  329. ThirdParty/GCC/Posix/port.c
  330. ThirdParty/GCC/Posix/utils/wait_for_event.c>
  331. # Xtensa LX / Espressif ESP32 port for GCC
  332. $<$<STREQUAL:${FREERTOS_PORT},GCC_XTENSA_ESP32>:
  333. ThirdParty/GCC/Xtensa_ESP32/FreeRTOS-openocd.c
  334. ThirdParty/GCC/Xtensa_ESP32/port.c
  335. ThirdParty/GCC/Xtensa_ESP32/portasm.S
  336. ThirdParty/GCC/Xtensa_ESP32/xtensa_context.S
  337. ThirdParty/GCC/Xtensa_ESP32/xtensa_init.c
  338. ThirdParty/GCC/Xtensa_ESP32/xtensa_intr_asm.S
  339. ThirdParty/GCC/Xtensa_ESP32/xtensa_intr.c
  340. ThirdParty/GCC/Xtensa_ESP32/xtensa_loadstore_handler.S
  341. ThirdParty/GCC/Xtensa_ESP32/xtensa_overlay_os_hook.c
  342. ThirdParty/GCC/Xtensa_ESP32/xtensa_vector_defaults.S
  343. ThirdParty/GCC/Xtensa_ESP32/xtensa_vectors.S>
  344. # Renesas (formerly NEC) 78K port for IAR EW78K
  345. $<$<STREQUAL:${FREERTOS_PORT},IAR_78K0K>:
  346. IAR/78K0R/port.c
  347. IAR/78K0R/portasm.s26>
  348. # ARMv7-A ports for IAR EWARM
  349. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CA5_NOGIC>:
  350. IAR/ARM_CA5_No_GIC/port.c
  351. IAR/ARM_CA5_No_GIC/portASM.s>
  352. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CA9>:
  353. IAR/ARM_CA9/port.c
  354. IAR/ARM_CA9/portASM.s>
  355. # ARMv6-M port for IAR EWARM
  356. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM0>:
  357. IAR/ARM_CM0/port.c
  358. IAR/ARM_CM0/portasm.s>
  359. # ARMv7-M port for IAR EWARM
  360. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM3>:
  361. IAR/ARM_CM3/port.c
  362. IAR/ARM_CM3/portasm.s>
  363. # ARMv7E-M ports for IAR EWARM
  364. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM4F>:
  365. IAR/ARM_CM4F/port.c
  366. IAR/ARM_CM4F/portasm.s>
  367. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM4F_MPU>:
  368. IAR/ARM_CM4F_MPU/port.c
  369. IAR/ARM_CM4F_MPU/portasm.s
  370. IAR/ARM_CM4F_MPU/mpu_wrappers_v2_asm.S>
  371. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM7>:
  372. IAR/ARM_CM7/r0p1/port.c
  373. IAR/ARM_CM7/r0p1/portasm.s>
  374. # ARMv8-M Ports for IAR EWARM
  375. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM23_NONSECURE>:
  376. IAR/ARM_CM23/non_secure/port.c
  377. IAR/ARM_CM23/non_secure/portasm.s
  378. IAR/ARM_CM23/non_secure/mpu_wrappers_v2_asm.S>
  379. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM23_SECURE>:
  380. IAR/ARM_CM23/secure/secure_context_port_asm.s
  381. IAR/ARM_CM23/secure/secure_context.c
  382. IAR/ARM_CM23/secure/secure_heap.c
  383. IAR/ARM_CM23/secure/secure_init.c>
  384. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM23_NTZ_NONSECURE>:
  385. IAR/ARM_CM23_NTZ/non_secure/port.c
  386. IAR/ARM_CM23_NTZ/non_secure/portasm.s
  387. IAR/ARM_CM23_NTZ/non_secure/mpu_wrappers_v2_asm.S>
  388. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM33_NONSECURE>:
  389. IAR/ARM_CM33/non_secure/port.c
  390. IAR/ARM_CM33/non_secure/portasm.s
  391. IAR/ARM_CM33/non_secure/mpu_wrappers_v2_asm.S>
  392. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM33_SECURE>:
  393. IAR/ARM_CM33/secure/secure_context_port_asm.s
  394. IAR/ARM_CM33/secure/secure_context.c
  395. IAR/ARM_CM33/secure/secure_heap.c
  396. IAR/ARM_CM33/secure/secure_init.c>
  397. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM33_NTZ_NONSECURE>:
  398. IAR/ARM_CM33_NTZ/non_secure/port.c
  399. IAR/ARM_CM33_NTZ/non_secure/portasm.s
  400. IAR/ARM_CM33_NTZ/non_secure/mpu_wrappers_v2_asm.S>
  401. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM33_TFM>:
  402. IAR/ARM_CM33_NTZ/non_secure/port.c
  403. IAR/ARM_CM33_NTZ/non_secure/portasm.s
  404. IAR/ARM_CM33_NTZ/non_secure/mpu_wrappers_v2_asm.S
  405. ThirdParty/GCC/ARM_TFM/os_wrapper_freertos.c>
  406. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM35P_NONSECURE>:
  407. IAR/ARM_CM35P/non_secure/port.c
  408. IAR/ARM_CM35P/non_secure/portasm.s
  409. IAR/ARM_CM35P/non_secure/mpu_wrappers_v2_asm.S>
  410. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM35P_SECURE>:
  411. IAR/ARM_CM35P/secure/secure_context_port_asm.s
  412. IAR/ARM_CM35P/secure/secure_context.c
  413. IAR/ARM_CM35P/secure/secure_heap.c
  414. IAR/ARM_CM35P/secure/secure_init.c>
  415. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM35P_NTZ_NONSECURE>:
  416. IAR/ARM_CM35P_NTZ/non_secure/port.c
  417. IAR/ARM_CM35P_NTZ/non_secure/portasm.s
  418. IAR/ARM_CM35P_NTZ/non_secure/mpu_wrappers_v2_asm.S>
  419. # ARMv8.1-M ports for IAR EWARM
  420. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM55_NONSECURE>:
  421. IAR/ARM_CM55/non_secure/port.c
  422. IAR/ARM_CM55/non_secure/portasm.s
  423. IAR/ARM_CM55/non_secure/mpu_wrappers_v2_asm.S>
  424. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM55_SECURE>:
  425. IAR/ARM_CM55/secure/secure_context_port_asm.s
  426. IAR/ARM_CM55/secure/secure_context.c
  427. IAR/ARM_CM55/secure/secure_heap.c
  428. IAR/ARM_CM55/secure/secure_init.c>
  429. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM55_NTZ_NONSECURE>:
  430. IAR/ARM_CM55_NTZ/non_secure/port.c
  431. IAR/ARM_CM55_NTZ/non_secure/portasm.s
  432. IAR/ARM_CM55_NTZ/non_secure/mpu_wrappers_v2_asm.S>
  433. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM55_TFM>:
  434. IAR/ARM_CM55_NTZ/non_secure/port.c
  435. IAR/ARM_CM55_NTZ/non_secure/portasm.s
  436. IAR/ARM_CM55_NTZ/non_secure/mpu_wrappers_v2_asm.S
  437. ThirdParty/GCC/ARM_TFM/os_wrapper_freertos.c>
  438. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM52_NONSECURE>:
  439. IAR/ARM_CM52/non_secure/port.c
  440. IAR/ARM_CM52/non_secure/portasm.s
  441. IAR/ARM_CM52/non_secure/mpu_wrappers_v2_asm.S>
  442. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM52_SECURE>:
  443. IAR/ARM_CM52/secure/secure_context_port_asm.s
  444. IAR/ARM_CM52/secure/secure_context.c
  445. IAR/ARM_CM52/secure/secure_heap.c
  446. IAR/ARM_CM52/secure/secure_init.c>
  447. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM52_NTZ_NONSECURE>:
  448. IAR/ARM_CM52_NTZ/non_secure/port.c
  449. IAR/ARM_CM52_NTZ/non_secure/portasm.s
  450. IAR/ARM_CM52_NTZ/non_secure/mpu_wrappers_v2_asm.S>
  451. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM52_TFM>:
  452. IAR/ARM_CM52_NTZ/non_secure/port.c
  453. IAR/ARM_CM52_NTZ/non_secure/portasm.s
  454. IAR/ARM_CM52_NTZ/non_secure/mpu_wrappers_v2_asm.S
  455. ThirdParty/GCC/ARM_TFM/os_wrapper_freertos.c>
  456. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM85_NONSECURE>:
  457. IAR/ARM_CM85/non_secure/port.c
  458. IAR/ARM_CM85/non_secure/portasm.s
  459. IAR/ARM_CM85/non_secure/mpu_wrappers_v2_asm.S>
  460. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM85_SECURE>:
  461. IAR/ARM_CM85/secure/secure_context_port_asm.s
  462. IAR/ARM_CM85/secure/secure_context.c
  463. IAR/ARM_CM85/secure/secure_heap.c
  464. IAR/ARM_CM85/secure/secure_init.c>
  465. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM85_NTZ_NONSECURE>:
  466. IAR/ARM_CM85_NTZ/non_secure/port.c
  467. IAR/ARM_CM85_NTZ/non_secure/portasm.s
  468. IAR/ARM_CM85_NTZ/non_secure/mpu_wrappers_v2_asm.S>
  469. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM85_TFM>:
  470. IAR/ARM_CM85_NTZ/non_secure/port.c
  471. IAR/ARM_CM85_NTZ/non_secure/portasm.s
  472. IAR/ARM_CM85_NTZ/non_secure/mpu_wrappers_v2_asm.S
  473. ThirdParty/GCC/ARM_TFM/os_wrapper_freertos.c>
  474. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_STAR_MC3_NONSECURE>:
  475. IAR/ARM_STAR_MC3/non_secure/port.c
  476. IAR/ARM_STAR_MC3/non_secure/portasm.s
  477. IAR/ARM_STAR_MC3/non_secure/mpu_wrappers_v2_asm.S>
  478. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_STAR_MC3_SECURE>:
  479. IAR/ARM_STAR_MC3/secure/secure_context_port_asm.s
  480. IAR/ARM_STAR_MC3/secure/secure_context.c
  481. IAR/ARM_STAR_MC3/secure/secure_heap.c
  482. IAR/ARM_STAR_MC3/secure/secure_init.c>
  483. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_STAR_MC3_NTZ_NONSECURE>:
  484. IAR/ARM_STAR_MC3_NTZ/non_secure/port.c
  485. IAR/ARM_STAR_MC3_NTZ/non_secure/portasm.s
  486. IAR/ARM_STAR_MC3_NTZ/non_secure/mpu_wrappers_v2_asm.S>
  487. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_STAR_MC3_TFM>:
  488. IAR/ARM_STAR_MC3_NTZ/non_secure/port.c
  489. IAR/ARM_STAR_MC3_NTZ/non_secure/portasm.s
  490. IAR/ARM_STAR_MC3_NTZ/non_secure/mpu_wrappers_v2_asm.S
  491. ThirdParty/GCC/ARM_TFM/os_wrapper_freertos.c>
  492. # ARMv7-R Ports for IAR EWARM
  493. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CRX_NOGIC>:
  494. IAR/ARM_CRx_No_GIC/port.c
  495. IAR/ARM_CRx_No_GIC/portASM.s>
  496. # Microchip (formerly Atmel) AVR8 ports for IAR EWAVR
  497. $<$<STREQUAL:${FREERTOS_PORT},IAR_ATMEGA323>:
  498. IAR/ATMega323/port.c
  499. IAR/ATMega323/portmacro.s90>
  500. $<$<STREQUAL:${FREERTOS_PORT},IAR_AVR_AVRDX>:
  501. IAR/AVR_AVRDx/port.c
  502. IAR/AVR_AVRDx/portmacro.s90>
  503. $<$<STREQUAL:${FREERTOS_PORT},IAR_AVR_MEGA0>:
  504. IAR/AVR_Mega0/port.c
  505. IAR/AVR_Mega0/portmacro.s90>
  506. # Microchip (formerly Atmel) AVR32 port for IAR Embedded Workbench for AVR32
  507. $<$<STREQUAL:${FREERTOS_PORT},IAR_AVR32_UC3>:
  508. IAR/AVR32_UC3/exception.s82
  509. IAR/AVR32_UC3/port.c
  510. IAR/AVR32_UC3/read.c
  511. IAR/AVR32_UC3/write.c>
  512. # Texas Instruments MSP430 ports for IAR Embedded Workbench for MSP430
  513. $<$<STREQUAL:${FREERTOS_PORT},IAR_MSP430>:
  514. IAR/MSP430/port.c
  515. IAR/MSP430/portext.s43>
  516. $<$<STREQUAL:${FREERTOS_PORT},IAR_MSP430X>:
  517. IAR/MSP430X/port.c
  518. IAR/MSP430X/portext.s43>
  519. # RISC-V architecture port for IAR Embedded Workbench for RISC-V
  520. $<$<STREQUAL:${FREERTOS_PORT},IAR_RISC_V>:
  521. IAR/RISC-V/port.c
  522. IAR/RISC-V/portASM.s>
  523. $<$<STREQUAL:${FREERTOS_PORT},IAR_RISC_V_GENERIC>:
  524. IAR/RISC-V/port.c
  525. IAR/RISC-V/portASM.s>
  526. # Renesas RL78 port for IAR EWRL78
  527. $<$<STREQUAL:${FREERTOS_PORT},IAR_RL78>:
  528. IAR/RL78/port.c
  529. IAR/RL78/portasm.s87>
  530. # Renesas RX architecture ports for IAR EWRX
  531. $<$<STREQUAL:${FREERTOS_PORT},IAR_RX100>:
  532. IAR/RX100/port.c
  533. IAR/RX100/port_asm.s>
  534. $<$<STREQUAL:${FREERTOS_PORT},IAR_RX600>:
  535. IAR/RX600/port.c
  536. IAR/RX600/port_asm.s>
  537. $<$<STREQUAL:${FREERTOS_PORT},IAR_RX700_V3_DPFPU>:
  538. IAR/RX700v3_DPFPU/port.c>
  539. $<$<STREQUAL:${FREERTOS_PORT},IAR_RX_V2>:
  540. IAR/RXv2/port.c
  541. IAR/RXv2/port_asm.s>
  542. # Renesas (formerly NEC) V850ES port for IAR EWV850
  543. $<$<STREQUAL:${FREERTOS_PORT},IAR_V850ES_FX3>:
  544. IAR/V850ES/port.c
  545. IAR/V850ES/portasm_Fx3.s85>
  546. $<$<STREQUAL:${FREERTOS_PORT},IAR_V850ES_HX3>:
  547. IAR/V850ES/port.c
  548. IAR/V850ES/portasm_Hx2.s85>
  549. # ARMv4T ARM7TDMI ports for IAR Embedded Workbench for ARM
  550. $<$<STREQUAL:${FREERTOS_PORT},IAR_STR71X>:
  551. IAR/STR71x/port.c
  552. IAR/STR71x/portasm.s79>
  553. $<$<STREQUAL:${FREERTOS_PORT},IAR_STR75X>:
  554. IAR/STR75x/port.c
  555. IAR/STR75x/portasm.s79>
  556. $<$<STREQUAL:${FREERTOS_PORT},IAR_LPC2000>:
  557. IAR/LPC2000/port.c
  558. IAR/LPC2000/portasm.s79>
  559. $<$<STREQUAL:${FREERTOS_PORT},IAR_ATMEL_SAM7S64>:
  560. IAR/AtmelSAM7S64/port.c
  561. IAR/AtmelSAM7S64/portasm.s79>
  562. # ARMv5TE ARM926 ports for IAR Embedded Workbench for ARM
  563. $<$<STREQUAL:${FREERTOS_PORT},IAR_STR91X>:
  564. IAR/STR91x/port.c
  565. IAR/STR91x/portasm.s79>
  566. $<$<STREQUAL:${FREERTOS_PORT},IAR_ATMEL_SAM9XE>:
  567. IAR/AtmelSAM9XE/port.c
  568. IAR/AtmelSAM9XE/portasm.s79>
  569. # ARM Cortex-M4F port for the MikroElektronika MikroC compiler
  570. $<$<STREQUAL:${FREERTOS_PORT},MIKROC_ARM_CM4F>:
  571. MikroC/ARM_CM4F/port.c>
  572. # Microchip PIC18 8-bit MCU port for MPLAB XC8
  573. $<$<STREQUAL:${FREERTOS_PORT},MPLAB_PIC18F>:
  574. MPLAB/PIC18F/port.c>
  575. # Microchip PIC24 16-bit MCU port for MPLAB XC16
  576. $<$<STREQUAL:${FREERTOS_PORT},MPLAB_PIC24>:
  577. MPLAB/PIC24_dsPIC/port.c
  578. MPLAB/PIC24_dsPIC/portasm_PIC24.S> # TODO: What to do with portasm_dsPIC.S ?
  579. # Microchip MIPS 32-Bit MCU ports for MPLAB XC32
  580. $<$<STREQUAL:${FREERTOS_PORT},MPLAB_PIC32MEC14XX>:
  581. MPLAB/PIC32MEC14xx/port.c
  582. MPLAB/PIC32MEC14xx/port_asm.S>
  583. $<$<STREQUAL:${FREERTOS_PORT},MPLAB_PIC32MX>:
  584. MPLAB/PIC32MX/port.c
  585. MPLAB/PIC32MX/port_asm.S>
  586. $<$<STREQUAL:${FREERTOS_PORT},MPLAB_PIC32MZ>:
  587. MPLAB/PIC32MZ/port.c
  588. MPLAB/PIC32MZ/port_asm.S>
  589. # Windows Simulator for Microsoft Visual C Compiler and MinGW GCC
  590. $<$<STREQUAL:${FREERTOS_PORT},MSVC_MINGW>:
  591. MSVC-MingW/port.c>
  592. # 16 bit DOS ports for Open Watcom
  593. $<$<STREQUAL:${FREERTOS_PORT},OWATCOM_16BIT_DOS_FLSH186>:
  594. oWatcom/16BitDOS/common/portcomn.c
  595. oWatcom/16BitDOS/Flsh186/port.c>
  596. $<$<STREQUAL:${FREERTOS_PORT},OWATCOM_16BIT_DOS_PC>:
  597. oWatcom/16BitDOS/common/portcomn.c
  598. oWatcom/16BitDOS/PC/port.c>
  599. $<$<STREQUAL:${FREERTOS_PORT},PARADIGM_TERN_EE_LARGE>:
  600. Paradigm/Tern_EE/large_untested/port.c>
  601. $<$<STREQUAL:${FREERTOS_PORT},PARADIGM_TERN_EE_SMALL>:
  602. Paradigm/Tern_EE/small/port.c>
  603. # Renesas RX mcu ports for Renesas CC-RX
  604. $<$<STREQUAL:${FREERTOS_PORT},RENESAS_RX100>:
  605. Renesas/RX100/port.c
  606. Renesas/RX100/port_asm.src>
  607. $<$<STREQUAL:${FREERTOS_PORT},RENESAS_RX200>:
  608. Renesas/RX200/port.c
  609. Renesas/RX200/port_asm.src>
  610. $<$<STREQUAL:${FREERTOS_PORT},RENESAS_RX600>:
  611. Renesas/RX600/port.c
  612. Renesas/RX600/port_asm.src>
  613. $<$<STREQUAL:${FREERTOS_PORT},RENESAS_RX600_V2>:
  614. Renesas/RX600v2/port.c
  615. Renesas/RX600v2/port_asm.src>
  616. $<$<STREQUAL:${FREERTOS_PORT},RENESAS_RX700_V3_DPFPU>:
  617. Renesas/RX700v3_DPFPU/port.c
  618. Renesas/RX700v3_DPFPU/port_asm.src>
  619. # Renesas (formerly Hitach) SHA2 SuperH port for the Renesas SH C Compiler
  620. $<$<STREQUAL:${FREERTOS_PORT},RENESAS_SH2A_FPU>:
  621. Renesas/SH2A_FPU/port.c
  622. Renesas/SH2A_FPU/portasm.src>
  623. # Texas Instruments MSP430 port for Rowley CrossWorks
  624. $<$<STREQUAL:${FREERTOS_PORT},ROWLEY_MSP430F449>:
  625. Rowley/MSP430F449/port.c
  626. Rowley/MSP430F449/portext.asm>
  627. # ARMv7-A Cortex-A9 port for ARM RVDS / armcc
  628. $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM_CA9>:
  629. RVDS/ARM_CA9/port.c
  630. RVDS/ARM_CA9/portASM.s>
  631. # ARMv6-M port for ARM RVDS / armcc
  632. $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM_CM0>:
  633. RVDS/ARM_CM0/port.c>
  634. # ARMv7-M port for ARM RVDS / armcc
  635. $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM_CM3>:
  636. RVDS/ARM_CM3/port.c>
  637. # ARMv7E-M ports for ARM RVDS / armcc
  638. $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM_CM4_MPU>:
  639. RVDS/ARM_CM4_MPU/port.c
  640. RVDS/ARM_CM4_MPU/mpu_wrappers_v2_asm.c>
  641. $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM_CM4F>:
  642. RVDS/ARM_CM4F/port.c>
  643. $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM_CM7>:
  644. RVDS/ARM_CM7/r0p1/port.c>
  645. # ARMv4T / ARM7TDMI LPC21XX port for ARM RVDS / armcc
  646. $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM7_LPC21XX>:
  647. RVDS/ARM7_LPC21xx/port.c
  648. RVDS/ARM7_LPC21xx/portASM.s>
  649. # Cygnal c8051 port for SDCC (Small Device C Compiler)
  650. $<$<STREQUAL:${FREERTOS_PORT},SDCC_CYGNAL>:
  651. SDCC/Cygnal/port.c>
  652. # Infineon (formerly Fujitsu, Spansion, Cypress) MB9x ports for Softune C Compiler
  653. $<$<STREQUAL:${FREERTOS_PORT},SOFTUNE_MB91460>:
  654. Softune/MB91460/__STD_LIB_sbrk.c
  655. Softune/MB91460/port.c>
  656. $<$<STREQUAL:${FREERTOS_PORT},SOFTUNE_MB96340>:
  657. Softune/MB96340/__STD_LIB_sbrk.c
  658. Softune/MB96340/port.c>
  659. # ARMv7E-M (Cortex-M4F) port for TASKING VX-toolset for ARM
  660. $<$<STREQUAL:${FREERTOS_PORT},TASKING_ARM_CM4F>:
  661. Tasking/ARM_CM4F/port.c
  662. Tasking/ARM_CM4F/port_asm.asm>
  663. # Port for C-SKY T-HEAD CK802
  664. $<$<STREQUAL:${FREERTOS_PORT},CDK_THEAD_CK802>:
  665. ThirdParty/CDK/T-HEAD_CK802/port.c
  666. ThirdParty/CDK/T-HEAD_CK802/portasm.S>
  667. # Tensilica Xtensa port for XCC
  668. $<$<STREQUAL:${FREERTOS_PORT},XCC_XTENSA>:
  669. ThirdParty/XCC/Xtensa/port.c
  670. ThirdParty/XCC/Xtensa/portasm.S
  671. ThirdParty/XCC/Xtensa/portclib.c
  672. ThirdParty/XCC/Xtensa/xtensa_context.S
  673. ThirdParty/XCC/Xtensa/xtensa_init.c
  674. ThirdParty/XCC/Xtensa/xtensa_intr_asm.S
  675. ThirdParty/XCC/Xtensa/xtensa_intr.c
  676. ThirdParty/XCC/Xtensa/xtensa_overlay_os_hook.c
  677. ThirdParty/XCC/Xtensa/xtensa_vectors.S>
  678. # Microchip PIC18 port for WIZ-C
  679. $<$<STREQUAL:${FREERTOS_PORT},WIZC_PIC18>:
  680. WizC/PIC18/port.c
  681. WizC/PIC18/Drivers/Tick/isrTick.c
  682. WizC/PIC18/Drivers/Tick/Tick.c>
  683. )
  684. if( FREERTOS_PORT MATCHES "GCC_ARM_CM(3|4)_MPU" OR
  685. FREERTOS_PORT STREQUAL "IAR_ARM_CM4F_MPU" OR
  686. FREERTOS_PORT STREQUAL "RVDS_ARM_CM4_MPU" OR
  687. FREERTOS_PORT STREQUAL "GCC_ARM_CRX_MPU" OR
  688. FREERTOS_PORT MATCHES "GCC_ARM_(CM23|CM33|CM52|CM55|CM85|STAR_MC3)_NTZ_NONSECURE" OR
  689. FREERTOS_PORT MATCHES "GCC_ARM_(CM23|CM33|CM52|CM55|CM85|STAR_MC3)_NONSECURE" OR
  690. FREERTOS_PORT MATCHES "GCC_ARM_(CM33|CM52|CM55|CM85|STAR_MC3)_TFM" OR
  691. FREERTOS_PORT MATCHES "GCC_ARM_CR82" OR
  692. FREERTOS_PORT MATCHES "IAR_ARM_(CM23|CM33|CM52|CM55|CM85|STAR_MC3)_NTZ_NONSECURE" OR
  693. FREERTOS_PORT MATCHES "IAR_ARM_(CM23|CM33|CM52|CM55|CM85|STAR_MC3)_NONSECURE" OR
  694. FREERTOS_PORT MATCHES "IAR_ARM_(CM33|CM52|CM55|CM85|STAR_MC3)_TFM"
  695. )
  696. target_sources(freertos_kernel_port PRIVATE
  697. Common/mpu_wrappers.c
  698. Common/mpu_wrappers_v2.c
  699. )
  700. endif()
  701. if (DEFINED FREERTOS_ARM_V_8_1_M_PACBTI_CONFIG )
  702. if(${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
  703. message(FATAL_ERROR "ARMv8.1-M PACBTI support in the kernel is not yet enabled for GNU toolchain due to known issues.")
  704. endif()
  705. if(FREERTOS_PORT MATCHES ".*ARM_(CM52|CM85|STAR_MC3)")
  706. if(FREERTOS_ARM_V_8_1_M_PACBTI_CONFIG STREQUAL "ARM_V_8_1_M_PACBTI_CONFIG_STANDARD")
  707. target_compile_options(freertos_kernel_port PUBLIC $<$<STREQUAL:${CMAKE_C_COMPILER_ID},ARMClang>:-mbranch-protection=standard>)
  708. target_compile_options(freertos_kernel_port PUBLIC $<$<STREQUAL:${CMAKE_C_COMPILER_ID},IAR>:$<$<COMPILE_LANGUAGE:C,CXX>:--branch_protection=bti+pac-ret>>)
  709. target_compile_definitions(freertos_config
  710. INTERFACE
  711. configENABLE_PAC=1
  712. configENABLE_BTI=1
  713. )
  714. elseif(FREERTOS_ARM_V_8_1_M_PACBTI_CONFIG STREQUAL "ARM_V_8_1_M_PACBTI_CONFIG_PACRET_LEAF_BTI")
  715. if(${CMAKE_C_COMPILER_ID} STREQUAL "ARMClang")
  716. target_compile_options(freertos_kernel_port
  717. PUBLIC
  718. -mbranch-protection=bti+pac-ret+leaf
  719. )
  720. target_compile_definitions(freertos_config
  721. INTERFACE
  722. configENABLE_PAC=1
  723. configENABLE_BTI=1
  724. )
  725. elseif(${CMAKE_C_COMPILER_ID} STREQUAL "IAR")
  726. message(FATAL_ERROR "ARM_V_8_1_M_PACBTI_CONFIG_PACRET_LEAF_BTI PACBTI option is not supported on IAR Compiler.")
  727. endif()
  728. elseif(FREERTOS_ARM_V_8_1_M_PACBTI_CONFIG STREQUAL "ARM_V_8_1_M_PACBTI_CONFIG_PACRET")
  729. target_compile_options(freertos_kernel_port PUBLIC $<$<STREQUAL:${CMAKE_C_COMPILER_ID},ARMClang>:-mbranch-protection=pac-ret>)
  730. target_compile_options(freertos_kernel_port PUBLIC $<$<STREQUAL:${CMAKE_C_COMPILER_ID},IAR>:$<$<COMPILE_LANGUAGE:C,CXX>:--branch_protection=pac-ret>>)
  731. target_compile_definitions(freertos_config
  732. INTERFACE
  733. configENABLE_PAC=1
  734. )
  735. elseif(FREERTOS_ARM_V_8_1_M_PACBTI_CONFIG STREQUAL "ARM_V_8_1_M_PACBTI_CONFIG_PACRET_LEAF")
  736. if(${CMAKE_C_COMPILER_ID} STREQUAL "ARMClang")
  737. target_compile_options(freertos_kernel_port
  738. PUBLIC
  739. -mbranch-protection=pac-ret+leaf
  740. )
  741. target_compile_definitions(freertos_config
  742. INTERFACE
  743. configENABLE_PAC=1
  744. )
  745. elseif(${CMAKE_C_COMPILER_ID} STREQUAL "IAR")
  746. message(FATAL_ERROR "ARM_V_8_1_M_PACBTI_CONFIG_PACRET_LEAF PACBTI option is not supported on IAR Compiler.")
  747. endif()
  748. elseif(FREERTOS_ARM_V_8_1_M_PACBTI_CONFIG STREQUAL "ARM_V_8_1_M_PACBTI_CONFIG_BTI")
  749. target_compile_options(freertos_kernel_port PUBLIC $<$<STREQUAL:${CMAKE_C_COMPILER_ID},ARMClang>:-mbranch-protection=bti>)
  750. target_compile_options(freertos_kernel_port PUBLIC $<$<STREQUAL:${CMAKE_C_COMPILER_ID},IAR>:$<$<COMPILE_LANGUAGE:C,CXX>:--branch_protection=bti>>)
  751. target_compile_definitions(freertos_config
  752. INTERFACE
  753. configENABLE_BTI=1
  754. )
  755. elseif(FREERTOS_ARM_V_8_1_M_PACBTI_CONFIG STREQUAL "ARM_V_8_1_M_PACBTI_CONFIG_NONE")
  756. if(${CMAKE_C_COMPILER_ID} STREQUAL "ARMClang")
  757. target_compile_options(freertos_kernel_port
  758. PUBLIC
  759. -mbranch-protection=none
  760. )
  761. endif()
  762. target_compile_definitions(freertos_config
  763. INTERFACE
  764. configENABLE_PAC=0
  765. configENABLE_BTI=0
  766. )
  767. else()
  768. message(FATAL_ERROR "Invalid FREERTOS_ARM_V_8_1_M_PACBTI_CONFIG configuration, the supported configurations are
  769. ARM_V_8_1_M_PACBTI_CONFIG_STANDARD,
  770. ARM_V_8_1_M_PACBTI_CONFIG_PACRET_LEAF_BTI,
  771. ARM_V_8_1_M_PACBTI_CONFIG_PACRET,
  772. ARM_V_8_1_M_PACBTI_CONFIG_PACRET_LEAF,
  773. ARM_V_8_1_M_PACBTI_CONFIG_BTI,
  774. ARM_V_8_1_M_PACBTI_CONFIG_NONE
  775. ")
  776. endif()
  777. if(NOT FREERTOS_ARM_V_8_1_M_PACBTI_CONFIG STREQUAL "ARM_V_8_1_M_PACBTI_CONFIG_NONE")
  778. # The reason why `--library_security=pacbti-m` link option is defined for both `freertos_kernel_port`, and
  779. # `freertos_kernel` targets even though `freertos_kernel_port` gets linked to `freertos_kernel` is that the
  780. # `freertos_kernel_port` is an object library where its linker options don't propagate to the targets that
  781. # link against it.
  782. target_link_options(freertos_kernel_port
  783. PUBLIC
  784. --library_security=pacbti-m
  785. )
  786. target_link_options(freertos_kernel
  787. PUBLIC
  788. --library_security=pacbti-m
  789. )
  790. endif()
  791. else()
  792. message(FATAL_ERROR "FREERTOS_ARM_V_8_1_M_PACBTI_CONFIG option is currently only supported on ARM Cortex-M85|M52 and Arm China STAR-MC3 FreeRTOS ports.")
  793. endif()
  794. endif()
  795. add_library(freertos_kernel_port_headers INTERFACE)
  796. target_include_directories(freertos_kernel_port_headers INTERFACE
  797. # TEMPLATE Port
  798. $<$<STREQUAL:${FREERTOS_PORT},TEMPLATE>:${CMAKE_CURRENT_LIST_DIR}/template>
  799. # 16-Bit DOS ports for BCC
  800. $<$<STREQUAL:${FREERTOS_PORT},BCC_16BIT_DOS_FLSH186>:
  801. ${CMAKE_CURRENT_LIST_DIR}/BCC/16BitDOS/common
  802. ${CMAKE_CURRENT_LIST_DIR}/BCC/16BitDOS/Flsh186>
  803. $<$<STREQUAL:${FREERTOS_PORT},BCC_16BIT_DOS_PC>:
  804. ${CMAKE_CURRENT_LIST_DIR}/BCC/16BitDOS/common
  805. ${CMAKE_CURRENT_LIST_DIR}/BCC/16BitDOS/PC>
  806. # ARMv7-M port for Texas Instruments Code Composer Studio
  807. $<$<STREQUAL:${FREERTOS_PORT},CCS_ARM_CM3>:${CMAKE_CURRENT_LIST_DIR}/CCS/ARM_CM3>
  808. # ARMv7E-M port for Texas Instruments Code Composer Studio
  809. $<$<STREQUAL:${FREERTOS_PORT},CCS_ARM_CM4F>:${CMAKE_CURRENT_LIST_DIR}/CCS/ARM_CM4F>
  810. # ARMv7-R port for Texas Instruments Code Composer Studio
  811. $<$<STREQUAL:${FREERTOS_PORT},CCS_ARM_CR4>:${CMAKE_CURRENT_LIST_DIR}/CCS/ARM_Cortex-R4>
  812. # Texas Instruments MSP430 port for Texas Instruments Code Composer Studio
  813. $<$<STREQUAL:${FREERTOS_PORT},CCS_MSP430X>:${CMAKE_CURRENT_LIST_DIR}/CCS/MSP430X>
  814. # NXP (formerly Motorola, Freescale) Cold Fire and 68HCS12 ports for Code Warrior
  815. $<$<STREQUAL:${FREERTOS_PORT},CODEWARRIOR_COLDFIRE_V1>:${CMAKE_CURRENT_LIST_DIR}/CodeWarrior/ColdFire_V1>
  816. $<$<STREQUAL:${FREERTOS_PORT},CODEWARRIOR_COLDFIRE_V2>:${CMAKE_CURRENT_LIST_DIR}/CodeWarrior/ColdFire_V2>
  817. $<$<STREQUAL:${FREERTOS_PORT},CODEWARRIOR_HCS12>:${CMAKE_CURRENT_LIST_DIR}/CodeWarrior/HCS12>
  818. # ARMv7-A port for GCC
  819. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CA9>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CA9>
  820. # ARMv8-A ports for GCC
  821. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_AARCH64>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_AARCH64>
  822. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_AARCH64_SRE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_AARCH64_SRE>
  823. # ARMv6-M port for GCC
  824. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM0>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM0>
  825. # ARMv6-M / Cortex-M0 Raspberry PI RP2040 port for GCC
  826. $<$<STREQUAL:${FREERTOS_PORT},GCC_RP2040>:${CMAKE_CURRENT_LIST_DIR}/ThirdParty/GCC/RP2040/include>
  827. # ARMv7-M ports for GCC
  828. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM3>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM3>
  829. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM3_MPU>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM3_MPU>
  830. # ARMv7E-M ports for GCC
  831. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM4_MPU>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM4_MPU>
  832. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM4F>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM4F>
  833. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM7>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM7/r0p1>
  834. # ARMv8-M ports for GCC
  835. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM23_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM23/non_secure>
  836. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM23_SECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM23/secure>
  837. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM23_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM23_NTZ/non_secure>
  838. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM33_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM33/non_secure>
  839. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM33_SECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM33/secure>
  840. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM33_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM33_NTZ/non_secure>
  841. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM33_TFM>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM33_NTZ/non_secure>
  842. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM35P_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM35P/non_secure>
  843. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM35P_SECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM35P/secure>
  844. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM35P_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM35P_NTZ/non_secure>
  845. # ARMv8.1-M ports for GCC
  846. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM55/non_secure>
  847. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_SECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM55/secure>
  848. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM55_NTZ/non_secure>
  849. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_TFM>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM55_NTZ/non_secure>
  850. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM52_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM52/non_secure>
  851. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM52_SECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM52/secure>
  852. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM52_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM52_NTZ/non_secure>
  853. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM52_TFM>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM52_NTZ/non_secure>
  854. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM85/non_secure>
  855. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_SECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM85/secure>
  856. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM85_NTZ/non_secure>
  857. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_TFM>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM85_NTZ/non_secure>
  858. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_STAR_MC3_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_STAR_MC3/non_secure>
  859. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_STAR_MC3_SECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_STAR_MC3/secure>
  860. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_STAR_MC3_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_STAR_MC3_NTZ/non_secure>
  861. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_STAR_MC3_TFM>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_STAR_MC3_NTZ/non_secure>
  862. # ARMv7-R ports for GCC
  863. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CR5>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CR5>
  864. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CRX_MPU>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CRx_MPU>
  865. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CRX_NOGIC>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CRx_No_GIC>
  866. # ARMv8-R ports for GCC
  867. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CR82>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CR82>
  868. # ARMv4T ARM7TDMI ports for GCC
  869. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM7_AT91FR40008>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM7_AT91FR40008>
  870. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM7_AT91SAM7S>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM7_AT91SAM7S>
  871. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM7_LPC2000>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM7_LPC2000>
  872. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM7_LPC23XX>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM7_LPC23xx>
  873. $<$<STREQUAL:${FREERTOS_PORT},GCC_STR75X>:${CMAKE_CURRENT_LIST_DIR}/GCC/STR75x>
  874. # Microchip (formerly Ateml) AVR8 ports for GCC
  875. $<$<STREQUAL:${FREERTOS_PORT},GCC_ATMEGA323>:${CMAKE_CURRENT_LIST_DIR}/GCC/ATMega323>
  876. $<$<STREQUAL:${FREERTOS_PORT},GCC_ATMEGA>:${CMAKE_CURRENT_LIST_DIR}/ThirdParty/GCC/ATmega>
  877. $<$<STREQUAL:${FREERTOS_PORT},GCC_AVRDX>:${CMAKE_CURRENT_LIST_DIR}/ThirdParty/Partner-Supported-Ports/GCC/AVR_AVRDx>
  878. $<$<STREQUAL:${FREERTOS_PORT},GCC_AVR_MEGA0>:${CMAKE_CURRENT_LIST_DIR}/ThirdParty/Partner-Supported-Ports/GCC/AVR_Mega0>
  879. # Microchip (formerly Ateml) AVR32 port for GCC
  880. $<$<STREQUAL:${FREERTOS_PORT},GCC_AVR32_UC3>:${CMAKE_CURRENT_LIST_DIR}/GCC/AVR32_UC3>
  881. # NXP (formerly Motorola, Freescale) Cold Fire and 68HCS12 ports for GCC
  882. $<$<STREQUAL:${FREERTOS_PORT},GCC_COLDFIRE_V2>:${CMAKE_CURRENT_LIST_DIR}/GCC/ColdFire_V2>
  883. $<$<STREQUAL:${FREERTOS_PORT},GCC_HCS12>:${CMAKE_CURRENT_LIST_DIR}/GCC/HCS12>
  884. # Cortus APS3 soft core port for GCC
  885. $<$<STREQUAL:${FREERTOS_PORT},GCC_CORTUS_APS3>:${CMAKE_CURRENT_LIST_DIR}/GCC/CORTUS_APS3>
  886. # Renesas (formerly Hitach) H8S port for GCC
  887. $<$<STREQUAL:${FREERTOS_PORT},GCC_H8S2329>:${CMAKE_CURRENT_LIST_DIR}/GCC/H8S2329>
  888. # x86 / IA32 flat memory model port for GCC
  889. $<$<STREQUAL:${FREERTOS_PORT},GCC_IA32_FLAT>:${CMAKE_CURRENT_LIST_DIR}/GCC/IA32_flat>
  890. # Intel (formerly Altera) NIOS II soft core port for GCC
  891. $<$<STREQUAL:${FREERTOS_PORT},GCC_NIOSII>:${CMAKE_CURRENT_LIST_DIR}/GCC/NiosII>
  892. # Texas Instruments MSP430 port for GCC
  893. $<$<STREQUAL:${FREERTOS_PORT},GCC_MSP430F449>:${CMAKE_CURRENT_LIST_DIR}/GCC/MSP430F449>
  894. # Xilinx MicroBlaze soft core ports for GCC
  895. $<$<STREQUAL:${FREERTOS_PORT},GCC_MICROBLAZE>:${CMAKE_CURRENT_LIST_DIR}/GCC/MicroBlaze>
  896. $<$<STREQUAL:${FREERTOS_PORT},GCC_MICROBLAZE_V8>:${CMAKE_CURRENT_LIST_DIR}/GCC/MicroBlazeV8>
  897. $<$<STREQUAL:${FREERTOS_PORT},GCC_MICROBLAZE_V9>:${CMAKE_CURRENT_LIST_DIR}/GCC/MicroBlazeV9>
  898. # Xilinx PCC4XX soft core ports for GCC
  899. $<$<STREQUAL:${FREERTOS_PORT},GCC_PPC405_XILINX>:${CMAKE_CURRENT_LIST_DIR}/GCC/PPC405_Xilinx>
  900. $<$<STREQUAL:${FREERTOS_PORT},GCC_PPC440_XILINX>:${CMAKE_CURRENT_LIST_DIR}/GCC/PPC440_Xilinx>
  901. # RISC-V architecture ports for GCC
  902. $<$<STREQUAL:${FREERTOS_PORT},GCC_RISC_V>:
  903. ${CMAKE_CURRENT_LIST_DIR}/GCC/RISC-V
  904. ${CMAKE_CURRENT_LIST_DIR}/GCC/RISC-V/chip_specific_extensions/RISCV_MTIME_CLINT_no_extensions>
  905. $<$<STREQUAL:${FREERTOS_PORT},GCC_RISC_V_PULPINO_VEGA_RV32M1RM>:
  906. ${CMAKE_CURRENT_LIST_DIR}/GCC/RISC-V
  907. ${CMAKE_CURRENT_LIST_DIR}/GCC/RISC-V/chip_specific_extensions/Pulpino_Vega_RV32M1RM>
  908. $<$<STREQUAL:${FREERTOS_PORT},GCC_RISC_V_GENERIC>:
  909. ${CMAKE_CURRENT_LIST_DIR}/GCC/RISC-V
  910. ${CMAKE_CURRENT_LIST_DIR}/GCC/RISC-V/chip_specific_extensions/${FREERTOS_RISCV_EXTENSION}>
  911. # Renesas RL78 port for GCC
  912. $<$<STREQUAL:${FREERTOS_PORT},GCC_RL78>:${CMAKE_CURRENT_LIST_DIR}/GCC/RL78>
  913. # Renesas RX architecture ports for GCC
  914. $<$<STREQUAL:${FREERTOS_PORT},GCC_RX100>:${CMAKE_CURRENT_LIST_DIR}/GCC/RX100>
  915. $<$<STREQUAL:${FREERTOS_PORT},GCC_RX200>:${CMAKE_CURRENT_LIST_DIR}/GCC/RX200>
  916. $<$<STREQUAL:${FREERTOS_PORT},GCC_RX600>:${CMAKE_CURRENT_LIST_DIR}/GCC/RX600>
  917. $<$<STREQUAL:${FREERTOS_PORT},GCC_RX600_V2>:${CMAKE_CURRENT_LIST_DIR}/GCC/RX600v2>
  918. $<$<STREQUAL:${FREERTOS_PORT},GCC_RX700_V3_DPFPU>:${CMAKE_CURRENT_LIST_DIR}/GCC/RX700v3_DPFPU>
  919. # Infineon TriCore 1782 port for GCC
  920. $<$<STREQUAL:${FREERTOS_PORT},GCC_TRICORE_1782>:${CMAKE_CURRENT_LIST_DIR}/GCC/TriCore_1782>
  921. # Synopsys ARC architecture ports for GCC
  922. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARC_EM_HS>:${CMAKE_CURRENT_LIST_DIR}/ThirdParty/GCC/ARC_EM_HS>
  923. $<$<STREQUAL:${FREERTOS_PORT},GCC_ARC_V1>:${CMAKE_CURRENT_LIST_DIR}/ThirdParty/GCC/ARC_v1>
  924. # Posix Simulator port for GCC
  925. $<$<STREQUAL:${FREERTOS_PORT},GCC_POSIX>:
  926. ${CMAKE_CURRENT_LIST_DIR}/ThirdParty/GCC/Posix
  927. ${CMAKE_CURRENT_LIST_DIR}/ThirdParty/GCC/Posix/utils>
  928. # Xtensa LX / Espressif ESP32 port for GCC
  929. $<$<STREQUAL:${FREERTOS_PORT},GCC_XTENSA_ESP32>:
  930. ${CMAKE_CURRENT_LIST_DIR}/ThirdParty/GCC/Xtensa_ESP32
  931. ${CMAKE_CURRENT_LIST_DIR}/ThirdParty/GCC/Xtensa_ESP32/include>
  932. # Renesas (formerly NEC) 78K port for IAR EW78K
  933. $<$<STREQUAL:${FREERTOS_PORT},IAR_78K0K>:${CMAKE_CURRENT_LIST_DIR}/IAR/78K0R>
  934. # ARMv7-A ports for IAR EWARM
  935. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CA5_NOGIC>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CA5_No_GIC>
  936. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CA9>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CA9>
  937. # ARMv6-M port for IAR EWARM
  938. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM0>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM0>
  939. # ARMv7-M port for IAR EWARM
  940. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM3>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM3>
  941. # ARMv7E-M ports for IAR EWARM
  942. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM4F>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM4F>
  943. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM4F_MPU>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM4F_MPU>
  944. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM7>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM7/r0p1>
  945. # ARMv8-M Ports for IAR EWARM
  946. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM23_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM23/non_secure>
  947. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM23_SECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM23/secure>
  948. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM23_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM23_NTZ/non_secure>
  949. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM33_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM33/non_secure>
  950. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM33_SECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM33/secure>
  951. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM33_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM33_NTZ/non_secure>
  952. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM33_TFM>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM33_NTZ/non_secure>
  953. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM35P_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM35P/non_secure>
  954. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM35P_SECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM35P/secure>
  955. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM35P_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM35P_NTZ/non_secure>
  956. # ARMv8.1-M ports for IAR EWARM
  957. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM55_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM55/non_secure>
  958. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM55_SECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM55/secure>
  959. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM55_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM55_NTZ/non_secure>
  960. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM55_TFM>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM55_NTZ/non_secure>
  961. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM52_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM52/non_secure>
  962. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM52_SECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM52/secure>
  963. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM52_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM52_NTZ/non_secure>
  964. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM52_TFM>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM52_NTZ/non_secure>
  965. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM85_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM85/non_secure>
  966. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM85_SECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM85/secure>
  967. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM85_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM85_NTZ/non_secure>
  968. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM85_TFM>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM85_NTZ/non_secure>
  969. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_STAR_MC3_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_STAR_MC3/non_secure>
  970. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_STAR_MC3_SECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_STAR_MC3/secure>
  971. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_STAR_MC3_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_STAR_MC3_NTZ/non_secure>
  972. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_STAR_MC3_TFM>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_STAR_MC3_NTZ/non_secure>
  973. # ARMv7-R Ports for IAR EWARM
  974. $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CRX_NOGIC>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CRx_No_GIC>
  975. # ARMv4T ARM7TDMI ports for IAR Embedded Workbench for ARM
  976. $<$<STREQUAL:${FREERTOS_PORT},IAR_STR71X>:${CMAKE_CURRENT_LIST_DIR}/IAR/STR71x>
  977. $<$<STREQUAL:${FREERTOS_PORT},IAR_STR75X>:${CMAKE_CURRENT_LIST_DIR}/IAR/STR75x>
  978. $<$<STREQUAL:${FREERTOS_PORT},IAR_LPC2000>:${CMAKE_CURRENT_LIST_DIR}/IAR/LPC2000>
  979. $<$<STREQUAL:${FREERTOS_PORT},IAR_ATMEL_SAM7S64>:${CMAKE_CURRENT_LIST_DIR}/IAR/AtmelSAM7S64>
  980. # ARMv5TE ARM926 ports for IAR Embedded Workbench for ARM
  981. $<$<STREQUAL:${FREERTOS_PORT},IAR_STR91X>:${CMAKE_CURRENT_LIST_DIR}/IAR/STR91x>
  982. $<$<STREQUAL:${FREERTOS_PORT},IAR_ATMEL_SAM9XE>:${CMAKE_CURRENT_LIST_DIR}/IAR/AtmelSAM9XE>
  983. # Microchip (formerly Atmel) AVR8 ports for IAR EWAVR
  984. $<$<STREQUAL:${FREERTOS_PORT},IAR_ATMEGA323>:${CMAKE_CURRENT_LIST_DIR}/IAR/ATMega323>
  985. $<$<STREQUAL:${FREERTOS_PORT},IAR_AVR_AVRDX>:${CMAKE_CURRENT_LIST_DIR}/IAR/AVR_AVRDx>
  986. $<$<STREQUAL:${FREERTOS_PORT},IAR_AVR_MEGA0>:${CMAKE_CURRENT_LIST_DIR}/IAR/AVR_Mega0>
  987. # Microchip (formerly Atmel) AVR32 port for IAR Embedded Workbench for AVR32
  988. $<$<STREQUAL:${FREERTOS_PORT},IAR_AVR32_UC3>:${CMAKE_CURRENT_LIST_DIR}/IAR/AVR32_UC3>
  989. # Texas Instruments MSP430 ports for IAR Embedded Workbench for MSP430
  990. $<$<STREQUAL:${FREERTOS_PORT},IAR_MSP430>:${CMAKE_CURRENT_LIST_DIR}/IAR/MSP430>
  991. $<$<STREQUAL:${FREERTOS_PORT},IAR_MSP430X>:${CMAKE_CURRENT_LIST_DIR}/IAR/MSP430X>
  992. # RISC-V architecture port for IAR Embedded Workbench for RISC-V
  993. $<$<STREQUAL:${FREERTOS_PORT},IAR_RISC_V>:
  994. ${CMAKE_CURRENT_LIST_DIR}/IAR/RISC-V
  995. ${CMAKE_CURRENT_LIST_DIR}/IAR/RISC-V/chip_specific_extensions/RV32I_CLINT_no_extensions>
  996. $<$<STREQUAL:${FREERTOS_PORT},IAR_RISC_V_GENERIC>:
  997. ${CMAKE_CURRENT_LIST_DIR}/IAR/RISC-V
  998. ${CMAKE_CURRENT_LIST_DIR}/IAR/RISC-V/chip_specific_extensions/${FREERTOS_RISCV_EXTENSION}>
  999. # Renesas RL78 port for IAR EWRL78
  1000. $<$<STREQUAL:${FREERTOS_PORT},IAR_RL78>:${CMAKE_CURRENT_LIST_DIR}/IAR/RL78>
  1001. # Renesas RX architecture ports for IAR EWRX
  1002. $<$<STREQUAL:${FREERTOS_PORT},IAR_RX100>:${CMAKE_CURRENT_LIST_DIR}/IAR/RX100>
  1003. $<$<STREQUAL:${FREERTOS_PORT},IAR_RX600>:${CMAKE_CURRENT_LIST_DIR}/IAR/RX600>
  1004. $<$<STREQUAL:${FREERTOS_PORT},IAR_RX700_V3_DPFPU>:${CMAKE_CURRENT_LIST_DIR}/IAR/RX700v3_DPFPU>
  1005. $<$<STREQUAL:${FREERTOS_PORT},IAR_RX_V2>:${CMAKE_CURRENT_LIST_DIR}/IAR/RXv2>
  1006. # Renesas (formerly NEC) V850ES port for IAR EWV850
  1007. $<$<STREQUAL:${FREERTOS_PORT},IAR_V850ES_FX3>:${CMAKE_CURRENT_LIST_DIR}/IAR/V850ES>
  1008. $<$<STREQUAL:${FREERTOS_PORT},IAR_V850ES_HX3>:${CMAKE_CURRENT_LIST_DIR}/IAR/V850ES>
  1009. # ARM Cortex-M4F port for the MikroElektronika MikroC compiler
  1010. $<$<STREQUAL:${FREERTOS_PORT},MIKROC_ARM_CM4F>:${CMAKE_CURRENT_LIST_DIR}/MikroC/ARM_CM4F>
  1011. # Microchip PIC18 8-bit MCU port for MPLAB XC8
  1012. $<$<STREQUAL:${FREERTOS_PORT},MPLAB_PIC18F>:${CMAKE_CURRENT_LIST_DIR}/MPLAB/PIC18F>
  1013. # Microchip PIC24 16-bit MCU port for MPLAB XC16
  1014. $<$<STREQUAL:${FREERTOS_PORT},MPLAB_PIC24>:${CMAKE_CURRENT_LIST_DIR}/MPLAB/PIC24_dsPIC>
  1015. # Microchip MIPS 32-Bit MCU ports for MPLAB XC32
  1016. $<$<STREQUAL:${FREERTOS_PORT},MPLAB_PIC32MEC14XX>:${CMAKE_CURRENT_LIST_DIR}/MPLAB/PIC32MEC14xx>
  1017. $<$<STREQUAL:${FREERTOS_PORT},MPLAB_PIC32MX>:${CMAKE_CURRENT_LIST_DIR}/MPLAB/PIC32MX>
  1018. $<$<STREQUAL:${FREERTOS_PORT},MPLAB_PIC32MZ>:${CMAKE_CURRENT_LIST_DIR}/MPLAB/PIC32MZ>
  1019. # Windows Simulator for Microsoft Visual C Compiler and MinGW GCC
  1020. $<$<STREQUAL:${FREERTOS_PORT},MSVC_MINGW>:${CMAKE_CURRENT_LIST_DIR}/MSVC-MingW>
  1021. # 16 bit DOS ports for Open Watcom
  1022. $<$<STREQUAL:${FREERTOS_PORT},OWATCOM_16BIT_DOS_FLSH186>:
  1023. ${CMAKE_CURRENT_LIST_DIR}/oWatcom/16BitDOS/common
  1024. ${CMAKE_CURRENT_LIST_DIR}/oWatcom/16BitDOS/Flsh186>
  1025. $<$<STREQUAL:${FREERTOS_PORT},OWATCOM_16BIT_DOS_PC>:
  1026. ${CMAKE_CURRENT_LIST_DIR}/oWatcom/16BitDOS/common
  1027. ${CMAKE_CURRENT_LIST_DIR}/oWatcom/16BitDOS/PC>
  1028. $<$<STREQUAL:${FREERTOS_PORT},PARADIGM_TERN_EE_LARGE>:${CMAKE_CURRENT_LIST_DIR}/Paradigm/Tern_EE/large_untested>
  1029. $<$<STREQUAL:${FREERTOS_PORT},PARADIGM_TERN_EE_SMALL>:${CMAKE_CURRENT_LIST_DIR}/Paradigm/Tern_EE/small>
  1030. # Renesas RX mcu ports for Renesas CC-RX
  1031. $<$<STREQUAL:${FREERTOS_PORT},RENESAS_RX100>:${CMAKE_CURRENT_LIST_DIR}/Renesas/RX100>
  1032. $<$<STREQUAL:${FREERTOS_PORT},RENESAS_RX200>:${CMAKE_CURRENT_LIST_DIR}/Renesas/RX200>
  1033. $<$<STREQUAL:${FREERTOS_PORT},RENESAS_RX600>:${CMAKE_CURRENT_LIST_DIR}/Renesas/RX600>
  1034. $<$<STREQUAL:${FREERTOS_PORT},RENESAS_RX600_V2>:${CMAKE_CURRENT_LIST_DIR}/Renesas/RX600v2>
  1035. $<$<STREQUAL:${FREERTOS_PORT},RENESAS_RX700_V3_DPFPU>:${CMAKE_CURRENT_LIST_DIR}/Renesas/RX700v3_DPFPU>
  1036. # Renesas (formerly Hitach) SHA2 SuperH port for the Renesas SH C Compiler
  1037. $<$<STREQUAL:${FREERTOS_PORT},RENESAS_SH2A_FPU>:${CMAKE_CURRENT_LIST_DIR}/Renesas/SH2A_FPU>
  1038. # Texas Instruments MSP430 port for Rowley CrossWorks
  1039. $<$<STREQUAL:${FREERTOS_PORT},ROWLEY_MSP430F449>:${CMAKE_CURRENT_LIST_DIR}/Rowley/MSP430F449>
  1040. # ARMv7-A Cortex-A9 port for ARM RVDS / armcc
  1041. $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM_CA9>:${CMAKE_CURRENT_LIST_DIR}/RVDS/ARM_CA9>
  1042. # ARMv6-M port for ARM RVDS / armcc
  1043. $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM_CM0>:${CMAKE_CURRENT_LIST_DIR}/RVDS/ARM_CM0>
  1044. # ARMv7-M port for ARM RVDS / armcc
  1045. $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM_CM3>:${CMAKE_CURRENT_LIST_DIR}/RVDS/ARM_CM3>
  1046. # ARMv7E-M ports for ARM RVDS / armcc
  1047. $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM_CM4_MPU>:${CMAKE_CURRENT_LIST_DIR}/RVDS/ARM_CM4_MPU>
  1048. $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM_CM4F>:${CMAKE_CURRENT_LIST_DIR}/RVDS/ARM_CM4F>
  1049. $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM_CM7>:${CMAKE_CURRENT_LIST_DIR}/RVDS/ARM_CM7/r0p1>
  1050. # ARMv4T / ARM7TDMI LPC21XX port for ARM RVDS / armcc
  1051. $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM7_LPC21XX>:${CMAKE_CURRENT_LIST_DIR}/RVDS/ARM7_LPC21xx>
  1052. # Cygnal c8051 port for SDCC (Small Device C Compiler)
  1053. $<$<STREQUAL:${FREERTOS_PORT},SDCC_CYGNAL>:${CMAKE_CURRENT_LIST_DIR}/SDCC/Cygnal>
  1054. # Infineon (formerly Fujitsu, Spansion, Cypress) MB9x ports for Softune C Compiler
  1055. $<$<STREQUAL:${FREERTOS_PORT},SOFTUNE_MB91460>:${CMAKE_CURRENT_LIST_DIR}/Softune/MB91460>
  1056. $<$<STREQUAL:${FREERTOS_PORT},SOFTUNE_MB96340>:${CMAKE_CURRENT_LIST_DIR}/Softune/MB96340>
  1057. # ARMv7E-M (Cortex-M4F) port for TASKING VX-toolset for ARM
  1058. $<$<STREQUAL:${FREERTOS_PORT},TASKING_ARM_CM4F>:${CMAKE_CURRENT_LIST_DIR}/Tasking/ARM_CM4F>
  1059. # Port for C-SKY T-HEAD CK802
  1060. $<$<STREQUAL:${FREERTOS_PORT},CDK_THEAD_CK802>:${CMAKE_CURRENT_LIST_DIR}/ThirdParty/CDK/T-HEAD_CK802>
  1061. # Tensilica Xtensa port for XCC
  1062. $<$<STREQUAL:${FREERTOS_PORT},XCC_XTENSA>:${CMAKE_CURRENT_LIST_DIR}/ThirdParty/XCC/Xtensa>
  1063. # Microchip PIC18 port for WIZ-C
  1064. $<$<STREQUAL:${FREERTOS_PORT},WIZC_PIC18>:${CMAKE_CURRENT_LIST_DIR}/WizC/PIC18>
  1065. )
  1066. target_link_libraries(freertos_kernel_port_headers
  1067. INTERFACE
  1068. $<$<STREQUAL:${FREERTOS_PORT},GCC_RP2040>:hardware_sync>
  1069. )
  1070. if(FREERTOS_PORT STREQUAL GCC_POSIX)
  1071. find_package(Threads REQUIRED)
  1072. endif()
  1073. target_link_libraries(freertos_kernel_port
  1074. PUBLIC
  1075. $<$<STREQUAL:${FREERTOS_PORT},GCC_RP2040>:pico_base_headers>
  1076. $<$<STREQUAL:${FREERTOS_PORT},GCC_XTENSA_ESP32>:idf::esp32>
  1077. freertos_kernel_port_headers
  1078. PRIVATE
  1079. freertos_kernel_include
  1080. $<$<STREQUAL:${FREERTOS_PORT},GCC_POSIX>:Threads::Threads>
  1081. "$<$<STREQUAL:${FREERTOS_PORT},GCC_RP2040>:hardware_clocks;hardware_exception;pico_multicore>"
  1082. $<$<STREQUAL:${FREERTOS_PORT},MSVC_MINGW>:winmm> # Windows library which implements timers
  1083. )