arch.nut 89 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315
  1. --
  2. -- Copyright (C) 2004-2007 by egnite Software GmbH. All rights reserved.
  3. --
  4. -- Redistribution and use in source and binary forms, with or without
  5. -- modification, are permitted provided that the following conditions
  6. -- are met:
  7. --
  8. -- 1. Redistributions of source code must retain the above copyright
  9. -- notice, this list of conditions and the following disclaimer.
  10. -- 2. Redistributions in binary form must reproduce the above copyright
  11. -- notice, this list of conditions and the following disclaimer in the
  12. -- documentation and/or other materials provided with the distribution.
  13. -- 3. Neither the name of the copyright holders nor the names of
  14. -- contributors may be used to endorse or promote products derived
  15. -- from this software without specific prior written permission.
  16. --
  17. -- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  18. -- ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  19. -- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
  20. -- FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
  21. -- COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  22. -- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
  23. -- BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
  24. -- OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
  25. -- AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  26. -- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
  27. -- THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  28. -- SUCH DAMAGE.
  29. --
  30. -- For additional information see http://www.ethernut.de/
  31. --
  32. -- Operating system functions
  33. --
  34. -- $Log$
  35. -- Revision 1.38 2009/02/06 15:51:38 haraldkipp
  36. -- Added NutReset support for SAM9260.
  37. -- Removed stack size defaults.
  38. --
  39. -- Revision 1.37 2008/10/23 08:50:43 haraldkipp
  40. -- Prepared AT91 UART hardware handshake.
  41. --
  42. -- Revision 1.36 2008/10/05 17:01:15 haraldkipp
  43. -- Added Helix MP3 decoder and Hermite re-sampler. Do not miss to read
  44. -- the license texts.
  45. --
  46. -- Revision 1.35 2008/10/03 11:31:27 haraldkipp
  47. -- Added TWI support for the AT91SAM9260.
  48. --
  49. -- Revision 1.34 2008/09/23 07:24:34 haraldkipp
  50. -- Added support for remaining AT91SAM7 familiy members.
  51. -- Added support for AT91 SDRAM and reset controller.
  52. --
  53. -- Revision 1.33 2008/08/11 11:51:19 thiagocorrea
  54. -- Preliminary Atmega2560 compile options, but not yet supported.
  55. -- It builds, but doesn't seam to run properly at this time.
  56. --
  57. -- Revision 1.32 2008/08/06 12:51:08 haraldkipp
  58. -- Added support for Ethernut 5 (AT91SAM9XE reference design).
  59. --
  60. -- Revision 1.31 2008/04/18 13:24:57 haraldkipp
  61. -- Added Szemzo Andras' RS485 patch.
  62. --
  63. -- Revision 1.30 2008/02/15 17:05:53 haraldkipp
  64. -- AT91SAM7SE512 support added. Global MCU list simplifies exclusivity
  65. -- attribute. HW_EBI_AT91 added for MCUs with external bus interface.
  66. --
  67. -- Revision 1.29 2007/10/04 21:06:11 olereinhardt
  68. -- Support for SAM7S256 added
  69. --
  70. -- Revision 1.28 2007/09/06 19:41:30 olereinhardt
  71. -- Added HW_PDC_AT91 to AT91SAM7X256 platform
  72. --
  73. -- Revision 1.27 2007/04/12 09:20:00 haraldkipp
  74. -- ATmega2561 no longer bound to ICCAVR.
  75. --
  76. -- Revision 1.26 2007/02/15 16:24:34 haraldkipp
  77. -- Now the periodic interrupt timer may become the system clock.
  78. --
  79. -- Revision 1.25 2006/10/05 17:16:04 haraldkipp
  80. -- Added exclusivity attribute.
  81. --
  82. -- Revision 1.24 2006/09/29 12:40:36 haraldkipp
  83. -- PDC provision added for AT91 devices.
  84. --
  85. -- Revision 1.23 2006/09/05 12:29:59 haraldkipp
  86. -- SPI and MCI support added for SAM9260.
  87. --
  88. -- Revision 1.22 2006/08/31 19:04:08 haraldkipp
  89. -- Added support for the AT91SAM9260 and Atmel's AT91SAM9260 Evaluation Kit.
  90. --
  91. -- Revision 1.21 2006/07/26 11:19:06 haraldkipp
  92. -- Defining AT91_PLL_MAINCK will automatically determine SAM7X clock by
  93. -- reading PLL settings.
  94. -- Added MMC/SD-Card support for AT91SAM7X Evaluation Kit.
  95. --
  96. -- Revision 1.20 2006/07/05 08:01:56 haraldkipp
  97. -- SAM7 EMAC attribute added.
  98. --
  99. -- Revision 1.19 2006/06/28 17:22:34 haraldkipp
  100. -- Make it compile for AT91SAM7X256.
  101. --
  102. -- Revision 1.18 2006/02/23 15:40:59 haraldkipp
  103. -- GPIO provision added for all MCUs except Gameboy Advance.
  104. --
  105. -- Revision 1.17 2006/02/08 15:20:21 haraldkipp
  106. -- ATmega2561 Support
  107. --
  108. -- Revision 1.16 2006/01/23 19:50:48 haraldkipp
  109. -- Dummy NVMEM configuration for GBA added.
  110. --
  111. -- Revision 1.15 2006/01/23 17:28:30 haraldkipp
  112. -- HW_NVMEM is now provided by specific modules.
  113. --
  114. -- Revision 1.14 2006/01/05 16:45:04 haraldkipp
  115. -- ATmega2561 CPU added, but not yet supported.
  116. --
  117. -- Revision 1.13 2005/10/07 22:09:23 hwmaier
  118. -- Changed HWDEF= to HWDEF+= so more defs can be added to this macros from other LUA scripts.
  119. --
  120. -- Revision 1.12 2005/10/04 05:47:26 hwmaier
  121. -- Added CAN driver for AT90CAN128
  122. --
  123. -- Revision 1.11 2005/07/26 15:41:05 haraldkipp
  124. -- All target dependent code is has been moved to a new library named
  125. -- libnutarch. Each platform got its own script.
  126. --
  127. -- Revision 1.10 2005/02/19 22:48:12 hwmaier
  128. -- no message
  129. --
  130. -- Revision 1.9 2005/01/22 19:20:21 haraldkipp
  131. -- Fixes Ethernut 1.3G memory bug
  132. --
  133. -- Revision 1.8 2004/10/03 18:37:39 haraldkipp
  134. -- GBA support
  135. --
  136. -- Revision 1.7 2004/09/22 08:19:42 haraldkipp
  137. -- No ATmega103 with LAN91C111
  138. --
  139. -- Revision 1.6 2004/09/19 15:17:37 haraldkipp
  140. -- ICCAVR initialization added to build
  141. --
  142. -- Revision 1.5 2004/09/08 10:18:54 haraldkipp
  143. -- C startup on ARM platforms only
  144. --
  145. -- Revision 1.4 2004/09/07 19:07:45 haraldkipp
  146. -- MCU type in NutConf.mk and cstartup added.
  147. --
  148. -- Revision 1.3 2004/08/18 16:05:26 haraldkipp
  149. -- Use consistent directory structure
  150. --
  151. -- Revision 1.2 2004/08/18 13:46:08 haraldkipp
  152. -- Fine with avr-gcc
  153. --
  154. -- Revision 1.1 2004/08/03 15:09:30 haraldkipp
  155. -- Another change of everything
  156. --
  157. -- Revision 1.1 2004/06/07 16:32:45 haraldkipp
  158. -- First release
  159. --
  160. --
  161. nutarch =
  162. {
  163. {
  164. name = "nutarch_mcu",
  165. brief = "Target CPU",
  166. description = "Select one only.",
  167. options =
  168. {
  169. {
  170. macro = "MCU_ATMEGA103",
  171. brief = "Atmel ATmega 103",
  172. description = "8-bit RISC microcontroller with 128K bytes flash, 4K bytes RAM, "..
  173. "4K bytes EEPROM, 64K bytes data memory space, UART, 3 timers, "..
  174. "8-channel ADC and SPI.",
  175. requires = { "TOOL_CC_AVR" },
  176. provides = {
  177. "HW_TARGET",
  178. "HW_MCU_AVR",
  179. "HW_TIMER_AVR",
  180. "HW_UART_AVR",
  181. "HW_AVR_HAVE_UART0",
  182. "HW_AVR_HAVE_UART1",
  183. "HW_GPIO"
  184. },
  185. flavor = "boolean",
  186. exclusivity = mcu_names,
  187. file = "include/cfg/arch.h",
  188. makedefs = { "MCU=$(MCU_ATMEGA103)", "HWDEF+=-D__HARVARD_ARCH__" }
  189. },
  190. {
  191. macro = "MCU_ATMEGA128",
  192. brief = "Atmel ATmega 128",
  193. description = "8-bit RISC microcontroller with 128K bytes flash, 4K bytes RAM, "..
  194. "4K bytes EEPROM, 64K bytes data memory space, 2 USARTs, 4 timers, "..
  195. "8-channel ADC, SPI and TWI.",
  196. requires = { "TOOL_CC_AVR" },
  197. provides = {
  198. "HW_TARGET",
  199. "HW_MCU_AVR",
  200. "HW_MCU_AVR_ENHANCED",
  201. "HW_MCU_ATMEGA128",
  202. "HW_TIMER_AVR",
  203. "HW_UART_AVR",
  204. "HW_AVR_HAVE_UART0",
  205. "HW_AVR_HAVE_UART1",
  206. "HW_GPIO"
  207. },
  208. flavor = "boolean",
  209. exclusivity = mcu_names,
  210. file = "include/cfg/arch.h",
  211. makedefs = { "MCU=$(MCU_ATMEGA128)", "HWDEF+=-D__HARVARD_ARCH__" }
  212. },
  213. {
  214. macro = "MCU_AT90CAN128",
  215. brief = "Atmel AT90CAN128",
  216. description = "8-bit RISC microcontroller with 128K bytes flash, 4K bytes RAM, "..
  217. "4K bytes EEPROM, 64K bytes data memory space, 2 USARTs, 4 timers, "..
  218. "8-channel ADC, SPI, TWI and CAN controller.\n"..
  219. "\n"..
  220. "Please configure appropriate stack settings in category "..
  221. "Memory Management. "..
  222. "Due to a bug for silicon revisions C of the AT90CAN128 MCU, "..
  223. "the code stack must reside in internal RAM. Refer to "..
  224. "AT90CAN128 Datasheet Rev. 4250F–CAN–04/05 - Errata Rev C ",
  225. flavor = "boolean",
  226. exclusivity = mcu_names,
  227. file = "include/cfg/arch.h",
  228. requires = { "TOOL_CC_AVR" },
  229. provides = {
  230. "HW_TARGET",
  231. "HW_MCU_AVR",
  232. "HW_MCU_AVR_ENHANCED",
  233. "HW_TIMER_AVR",
  234. "HW_UART_AVR",
  235. "HW_AVR_HAVE_UART0",
  236. "HW_AVR_HAVE_UART1",
  237. "HW_CAN_AVR",
  238. "HW_GPIO"
  239. },
  240. makedefs = { "MCU=at90can128", "HWDEF+=-D__HARVARD_ARCH__" },
  241. options =
  242. {
  243. }
  244. },
  245. {
  246. macro = "MCU_AT90USB1287",
  247. brief = "Atmel AT90USB1287",
  248. description = "8-bit RISC microcontroller with 128K bytes flash, 8K bytes RAM, "..
  249. "4K bytes EEPROM, 64K bytes data memory space, 1 USARTs, 4 timers, "..
  250. "8-channel ADC, SPI, TWI and USB controller.\n"..
  251. "\n"..
  252. "Please configure appropriate stack settings in category "..
  253. "Memory Management. ",
  254. flavor = "boolean",
  255. exclusivity = mcu_names,
  256. file = "include/cfg/arch.h",
  257. requires = { "TOOL_CC_AVR" },
  258. provides = {
  259. "HW_TARGET",
  260. "HW_MCU_AVR",
  261. "HW_MCU_AVR_ENHANCED",
  262. "HW_TIMER_AVR",
  263. "HW_UART_AVR",
  264. "HW_AVR_HAVE_UART1",
  265. "HW_GPIO"
  266. },
  267. makedefs = { "MCU=at90usb1287", "HWDEF+=-D__HARVARD_ARCH__" },
  268. options =
  269. {
  270. }
  271. },
  272. {
  273. macro = "MCU_ATMEGA2560",
  274. brief = "Atmel ATmega 2560",
  275. description = "8-bit RISC microcontroller with 256K bytes flash, 8K bytes RAM, "..
  276. "4K bytes EEPROM, 64K bytes data memory space, 4 USARTs, 6 timers, "..
  277. "8-channel ADC, SPI and TWI.",
  278. requires = { "TOOL_CC_AVR" },
  279. provides = {
  280. "HW_TARGET",
  281. "HW_MCU_AVR",
  282. "HW_MCU_AVR_ENHANCED",
  283. "HW_MCU_ATMEGA2560",
  284. "HW_TIMER_AVR",
  285. "HW_UART_AVR",
  286. "HW_AVR_HAVE_UART0",
  287. "HW_AVR_HAVE_UART1",
  288. -- "HW_AVR_HAVE_UART2",
  289. -- "HW_AVR_HAVE_UART3",
  290. "HW_GPIO"
  291. },
  292. flavor = "boolean",
  293. exclusivity = mcu_names,
  294. file = "include/cfg/arch.h",
  295. makedefs =
  296. {
  297. "MCU = $(MCU_ATMEGA2560)",
  298. "HWDEF += -D__HARVARD_ARCH__",
  299. "HWDEF += -DATMega2560",
  300. "HWDEF += -D__AVR_3_BYTE_PC__"
  301. }
  302. },
  303. {
  304. macro = "MCU_ATMEGA2561",
  305. brief = "Atmel ATmega 2561",
  306. description = "8-bit RISC microcontroller with 256K bytes flash, 8K bytes RAM, "..
  307. "4K bytes EEPROM, 64K bytes data memory space, 2 USARTs, 6 timers, "..
  308. "8-channel ADC, SPI and TWI.",
  309. requires = { "TOOL_CC_AVR" },
  310. provides = {
  311. "HW_TARGET",
  312. "HW_MCU_AVR",
  313. "HW_MCU_AVR_ENHANCED",
  314. "HW_MCU_ATMEGA2561",
  315. "HW_TIMER_AVR",
  316. "HW_UART_AVR",
  317. "HW_AVR_HAVE_UART0",
  318. "HW_AVR_HAVE_UART1",
  319. "HW_GPIO"
  320. },
  321. flavor = "boolean",
  322. exclusivity = mcu_names,
  323. file = "include/cfg/arch.h",
  324. makedefs =
  325. {
  326. "MCU = $(MCU_ATMEGA2561)",
  327. "HWDEF += -D__HARVARD_ARCH__",
  328. "HWDEF += -DATMega2561",
  329. "HWDEF += -D__AVR_3_BYTE_PC__"
  330. }
  331. },
  332. {
  333. macro = "MCU_AT91SAM9260",
  334. brief = "Atmel AT91SAM9260",
  335. description = "ARM926EJ-S RISC microcontroller with Ethernet MAC, "..
  336. "one USB Device Port, and a USB Host controller. "..
  337. "It also integrates several standard peripherals, "..
  338. "such as the USART, SPI, TWI, Timer Counters, Synchronous "..
  339. "Serial Controller, ADC and MultiMedia Card Interface.\n\n",
  340. flavor = "boolean",
  341. exclusivity = mcu_names,
  342. file = "include/cfg/arch.h",
  343. requires = { "TOOL_CC_ARM" },
  344. provides = {
  345. "HW_TARGET",
  346. "HW_MCU_ARM",
  347. "HW_MCU_AT91",
  348. "HW_MCU_AT91SAM9260",
  349. "HW_TIMER_AT91",
  350. "HW_PLL_AT91",
  351. "HW_SDRAMC",
  352. "HW_UART_AT91",
  353. "HW_DBGU_AT91",
  354. "HW_UART0_RTSCTS",
  355. "HW_UART0_MODEM",
  356. "HW_UART1_RTSCTS",
  357. "HW_EMAC_AT91",
  358. "HW_SPI_AT91",
  359. "HW_TWI_AT91",
  360. "HW_RSTC_AT91",
  361. "HW_PDC_AT91",
  362. "HW_MCI_AT91",
  363. "HW_GPIO",
  364. "HW_PDC_AT91",
  365. "HW_EXT_CALYPSO"
  366. },
  367. makedefs = { "MCU=arm9" }
  368. },
  369. {
  370. macro = "MCU_AT91SAM9G45",
  371. brief = "Atmel AT91SAM9G45",
  372. description = "ARM926EJ-S RISC microcontroller with Ethernet MAC, "..
  373. "one USB Device Port, and a USB Host controller. "..
  374. "It also integrates several standard peripherals, "..
  375. "such as the USART, SPI, TWI, Timer Counters, Synchronous "..
  376. "Serial Controller, ADC and MultiMedia Card Interface.\n\n",
  377. flavor = "boolean",
  378. exclusivity = mcu_names,
  379. file = "include/cfg/arch.h",
  380. requires = { "TOOL_CC_ARM" },
  381. provides = {
  382. "HW_TARGET",
  383. "HW_MCU_ARM",
  384. "HW_MCU_AT91",
  385. "HW_MCU_AT91SAM9G45",
  386. "HW_TIMER_AT91",
  387. "HW_PLL_AT91",
  388. "HW_SDRAMC",
  389. "HW_UART_AT91",
  390. "HW_DBGU_AT91",
  391. "HW_UART0_RTSCTS",
  392. "HW_UART0_MODEM",
  393. "HW_UART1_RTSCTS",
  394. "HW_EMAC_AT91",
  395. "HW_SPI_AT91",
  396. "HW_TWI_AT91",
  397. "HW_RSTC_AT91",
  398. "HW_PDC_AT91",
  399. "HW_GPIO",
  400. "HW_PDC_AT91",
  401. "HW_PIT_AT91"
  402. },
  403. makedefs = { "MCU=arm9" }
  404. },
  405. {
  406. macro = "MCU_AT91SAM9XE512",
  407. brief = "Atmel AT91SAM9XE512",
  408. description = "ARM926EJ-S RISC microcontroller with Ethernet MAC, "..
  409. "one USB Device Port, and a USB Host controller. "..
  410. "It also integrates several standard peripherals, "..
  411. "such as the USART, SPI, TWI, Timer Counters, Synchronous "..
  412. "Serial Controller, ADC and MultiMedia Card Interface.\n\n"..
  413. "Experimental port.",
  414. flavor = "boolean",
  415. exclusivity = mcu_names,
  416. file = "include/cfg/arch.h",
  417. requires = { "TOOL_CC_ARM" },
  418. provides = {
  419. "HW_TARGET",
  420. "HW_MCU_ARM",
  421. "HW_MCU_AT91",
  422. "HW_MCU_AT91SAM9XE",
  423. "HW_TIMER_AT91",
  424. "HW_PLL_AT91",
  425. "HW_UART_AT91",
  426. "HW_DBGU_AT91",
  427. "HW_UART0_RTSCTS",
  428. "HW_UART0_MODEM",
  429. "HW_UART1_RTSCTS",
  430. "HW_EMAC_AT91",
  431. "HW_SPI_AT91",
  432. "HW_TWI_AT91",
  433. "HW_PDC_AT91",
  434. "HW_MCI_AT91",
  435. "HW_GPIO",
  436. "HW_PDC_AT91",
  437. "HW_PIT_AT91"
  438. },
  439. makedefs = { "MCU=arm9" }
  440. },
  441. {
  442. macro = "MCU_AT91SAM7X128",
  443. brief = "Atmel AT91SAM7X128",
  444. description = "ARM7TDMI 16/32-bit RISC microcontroller with 128K bytes flash, "..
  445. "32K bytes RAM, Ethernet MAC, USB, 2 USARTs and more. ",
  446. flavor = "boolean",
  447. exclusivity = mcu_names,
  448. file = "include/cfg/arch.h",
  449. requires = { "TOOL_CC_ARM" },
  450. provides = {
  451. "HW_TARGET",
  452. "HW_MCU_ARM",
  453. "HW_MCU_AT91",
  454. "HW_MCU_AT91SAM7X",
  455. "HW_TIMER_AT91",
  456. "HW_PLL_AT91",
  457. "HW_PIT_AT91",
  458. "HW_UART_AT91",
  459. "HW_DBGU_AT91",
  460. "HW_UART0_RTSCTS",
  461. "HW_UART1_RTSCTS",
  462. "HW_UART1_MODEM",
  463. "HW_EMAC_AT91",
  464. "HW_SPI_AT91",
  465. "HW_TWI_AT91",
  466. "HW_PDC_AT91",
  467. "HW_EFC_AT91",
  468. "HW_GPIO",
  469. "HW_PDC_AT91",
  470. "HW_WDOG_AT91"
  471. },
  472. makedefs = { "MCU=arm7tdmi" }
  473. },
  474. {
  475. macro = "MCU_AT91SAM7X256",
  476. brief = "Atmel AT91SAM7X256",
  477. description = "ARM7TDMI 16/32-bit RISC microcontroller with 256K bytes flash, "..
  478. "64K bytes RAM, Ethernet MAC, USB, 2 USARTs and more. ",
  479. flavor = "boolean",
  480. exclusivity = mcu_names,
  481. file = "include/cfg/arch.h",
  482. requires = { "TOOL_CC_ARM" },
  483. provides = {
  484. "HW_TARGET",
  485. "HW_MCU_ARM",
  486. "HW_MCU_AT91",
  487. "HW_MCU_AT91SAM7X",
  488. "HW_TIMER_AT91",
  489. "HW_PLL_AT91",
  490. "HW_PIT_AT91",
  491. "HW_UART_AT91",
  492. "HW_DBGU_AT91",
  493. "HW_UART0_RTSCTS",
  494. "HW_UART1_RTSCTS",
  495. "HW_UART1_MODEM",
  496. "HW_EMAC_AT91",
  497. "HW_SPI_AT91",
  498. "HW_TWI_AT91",
  499. "HW_PDC_AT91",
  500. "HW_EFC_AT91",
  501. "HW_GPIO",
  502. "HW_PDC_AT91",
  503. "HW_EXT_CALYPSO",
  504. "HW_WDOG_AT91"
  505. },
  506. makedefs = { "MCU=arm7tdmi" }
  507. },
  508. {
  509. macro = "MCU_AT91SAM7X512",
  510. brief = "Atmel AT91SAM7X512",
  511. description = "ARM7TDMI 16/32-bit RISC microcontroller with 512K bytes flash, "..
  512. "128K bytes RAM, Ethernet MAC, USB, 2 USARTs and more. ",
  513. flavor = "boolean",
  514. exclusivity = mcu_names,
  515. file = "include/cfg/arch.h",
  516. requires = { "TOOL_CC_ARM" },
  517. provides = {
  518. "HW_TARGET",
  519. "HW_MCU_ARM",
  520. "HW_MCU_AT91",
  521. "HW_MCU_AT91SAM7X",
  522. "HW_TIMER_AT91",
  523. "HW_PLL_AT91",
  524. "HW_PIT_AT91",
  525. "HW_UART_AT91",
  526. "HW_DBGU_AT91",
  527. "HW_UART0_RTSCTS",
  528. "HW_UART1_RTSCTS",
  529. "HW_UART1_MODEM",
  530. "HW_EMAC_AT91",
  531. "HW_SPI_AT91",
  532. "HW_TWI_AT91",
  533. "HW_PDC_AT91",
  534. "HW_EFC_AT91",
  535. "HW_GPIO",
  536. "HW_PDC_AT91",
  537. "HW_WDOG_AT91"
  538. },
  539. makedefs = { "MCU=arm7tdmi" }
  540. },
  541. {
  542. macro = "MCU_AT91SAM7S16",
  543. brief = "Atmel AT91SAM7S16",
  544. description = "ARM7TDMI 16/32-bit RISC microcontroller with 16K bytes flash, "..
  545. "4K bytes RAM, USB, 2 USARTs and more. ",
  546. flavor = "boolean",
  547. exclusivity = mcu_names,
  548. file = "include/cfg/arch.h",
  549. requires = { "TOOL_CC_ARM" },
  550. provides = {
  551. "HW_TARGET",
  552. "HW_MCU_ARM",
  553. "HW_MCU_AT91",
  554. "HW_MCU_AT91SAM7S",
  555. "HW_TIMER_AT91",
  556. "HW_PLL_AT91",
  557. "HW_PIT_AT91",
  558. "HW_UART_AT91",
  559. "HW_DBGU_AT91",
  560. "HW_SPI_AT91",
  561. "HW_TWI_AT91",
  562. "HW_PDC_AT91",
  563. "HW_EFC_AT91",
  564. "HW_GPIO",
  565. "HW_WDOG_AT91"
  566. },
  567. makedefs = { "MCU=arm7tdmi" }
  568. },
  569. {
  570. macro = "MCU_AT91SAM7S32",
  571. brief = "Atmel AT91SAM7S32",
  572. description = "ARM7TDMI 16/32-bit RISC microcontroller with 32K bytes flash, "..
  573. "8K bytes RAM, USB, 2 USARTs and more. ",
  574. flavor = "boolean",
  575. exclusivity = mcu_names,
  576. file = "include/cfg/arch.h",
  577. requires = { "TOOL_CC_ARM" },
  578. provides = {
  579. "HW_TARGET",
  580. "HW_MCU_ARM",
  581. "HW_MCU_AT91",
  582. "HW_MCU_AT91SAM7S",
  583. "HW_TIMER_AT91",
  584. "HW_PLL_AT91",
  585. "HW_PIT_AT91",
  586. "HW_UART_AT91",
  587. "HW_DBGU_AT91",
  588. "HW_UART0_RTSCTS",
  589. "HW_UART1_RTSCTS",
  590. "HW_UART1_MODEM",
  591. "HW_SPI_AT91",
  592. "HW_TWI_AT91",
  593. "HW_PDC_AT91",
  594. "HW_EFC_AT91",
  595. "HW_GPIO",
  596. "HW_WDOG_AT91"
  597. },
  598. makedefs = { "MCU=arm7tdmi" }
  599. },
  600. {
  601. macro = "MCU_AT91SAM7S64",
  602. brief = "Atmel AT91SAM7S64",
  603. description = "ARM7TDMI 16/32-bit RISC microcontroller with 64K bytes flash, "..
  604. "16K bytes RAM, USB, 2 USARTs and more. ",
  605. flavor = "boolean",
  606. exclusivity = mcu_names,
  607. file = "include/cfg/arch.h",
  608. requires = { "TOOL_CC_ARM" },
  609. provides = {
  610. "HW_TARGET",
  611. "HW_MCU_ARM",
  612. "HW_MCU_AT91",
  613. "HW_MCU_AT91SAM7S",
  614. "HW_TIMER_AT91",
  615. "HW_PLL_AT91",
  616. "HW_PIT_AT91",
  617. "HW_UART_AT91",
  618. "HW_DBGU_AT91",
  619. "HW_UART0_RTSCTS",
  620. "HW_UART1_RTSCTS",
  621. "HW_UART1_MODEM",
  622. "HW_SPI_AT91",
  623. "HW_TWI_AT91",
  624. "HW_PDC_AT91",
  625. "HW_EFC_AT91",
  626. "HW_GPIO",
  627. "HW_WDOG_AT91"
  628. },
  629. makedefs = { "MCU=arm7tdmi" }
  630. },
  631. {
  632. macro = "MCU_AT91SAM7S128",
  633. brief = "Atmel AT91SAM7S128",
  634. description = "ARM7TDMI 16/32-bit RISC microcontroller with 128K bytes flash, "..
  635. "32K bytes RAM, USB, 2 USARTs and more. ",
  636. flavor = "boolean",
  637. exclusivity = mcu_names,
  638. file = "include/cfg/arch.h",
  639. requires = { "TOOL_CC_ARM" },
  640. provides = {
  641. "HW_TARGET",
  642. "HW_MCU_ARM",
  643. "HW_MCU_AT91",
  644. "HW_MCU_AT91SAM7S",
  645. "HW_TIMER_AT91",
  646. "HW_PLL_AT91",
  647. "HW_PIT_AT91",
  648. "HW_UART_AT91",
  649. "HW_DBGU_AT91",
  650. "HW_UART0_RTSCTS",
  651. "HW_UART1_RTSCTS",
  652. "HW_UART1_MODEM",
  653. "HW_SPI_AT91",
  654. "HW_TWI_AT91",
  655. "HW_PDC_AT91",
  656. "HW_EFC_AT91",
  657. "HW_GPIO",
  658. "HW_WDOG_AT91"
  659. },
  660. makedefs = { "MCU=arm7tdmi" }
  661. },
  662. {
  663. macro = "MCU_AT91SAM7S256",
  664. brief = "Atmel AT91SAM7S256",
  665. description = "ARM7TDMI 16/32-bit RISC microcontroller with 256K bytes flash, "..
  666. "64K bytes RAM, USB, 2 USARTs and more. ",
  667. flavor = "boolean",
  668. exclusivity = mcu_names,
  669. file = "include/cfg/arch.h",
  670. requires = { "TOOL_CC_ARM" },
  671. provides = {
  672. "HW_TARGET",
  673. "HW_MCU_ARM",
  674. "HW_MCU_AT91",
  675. "HW_MCU_AT91SAM7S",
  676. "HW_TIMER_AT91",
  677. "HW_PLL_AT91",
  678. "HW_PIT_AT91",
  679. "HW_UART_AT91",
  680. "HW_DBGU_AT91",
  681. "HW_UART0_RTSCTS",
  682. "HW_UART1_RTSCTS",
  683. "HW_UART1_MODEM",
  684. "HW_SPI_AT91",
  685. "HW_TWI_AT91",
  686. "HW_PDC_AT91",
  687. "HW_EFC_AT91",
  688. "HW_GPIO",
  689. "HW_WDOG_AT91"
  690. },
  691. makedefs = { "MCU=arm7tdmi" }
  692. },
  693. {
  694. macro = "MCU_AT91SAM7S512",
  695. brief = "Atmel AT91SAM7S512",
  696. description = "ARM7TDMI 16/32-bit RISC microcontroller with 512K bytes flash, "..
  697. "64K bytes RAM, USB, 2 USARTs and more. ",
  698. flavor = "boolean",
  699. exclusivity = mcu_names,
  700. file = "include/cfg/arch.h",
  701. requires = { "TOOL_CC_ARM" },
  702. provides = {
  703. "HW_TARGET",
  704. "HW_MCU_ARM",
  705. "HW_MCU_AT91",
  706. "HW_MCU_AT91SAM7S",
  707. "HW_TIMER_AT91",
  708. "HW_PLL_AT91",
  709. "HW_PIT_AT91",
  710. "HW_UART_AT91",
  711. "HW_DBGU_AT91",
  712. "HW_UART0_RTSCTS",
  713. "HW_UART1_RTSCTS",
  714. "HW_UART1_MODEM",
  715. "HW_SPI_AT91",
  716. "HW_TWI_AT91",
  717. "HW_PDC_AT91",
  718. "HW_EFC_AT91",
  719. "HW_GPIO",
  720. "HW_WDOG_AT91"
  721. },
  722. makedefs = { "MCU=arm7tdmi" }
  723. },
  724. {
  725. macro = "MCU_AT91SAM7SE32",
  726. brief = "Atmel AT91SAM7SE32",
  727. description = "ARM7TDMI 16/32-bit RISC microcontroller with 32K bytes flash, "..
  728. "8K bytes RAM, external bus interface, USB, 2 USARTs and more. ",
  729. flavor = "boolean",
  730. exclusivity = mcu_names,
  731. file = "include/cfg/arch.h",
  732. requires = { "TOOL_CC_ARM" },
  733. provides = {
  734. "HW_TARGET",
  735. "HW_MCU_ARM",
  736. "HW_MCU_AT91",
  737. "HW_MCU_AT91SAM7SE",
  738. "HW_TIMER_AT91",
  739. "HW_PLL_AT91",
  740. "HW_SDRAMC",
  741. "HW_PIT_AT91",
  742. "HW_UART_AT91",
  743. "HW_DBGU_AT91",
  744. "HW_UART0_RTSCTS",
  745. "HW_UART1_RTSCTS",
  746. "HW_UART1_MODEM",
  747. "HW_SPI_AT91",
  748. "HW_TWI_AT91",
  749. "HW_SSC_AT91",
  750. "HW_RSTC_AT91",
  751. "HW_PDC_AT91",
  752. "HW_EFC_AT91",
  753. "HW_GPIO",
  754. "HW_EBI_AT91",
  755. "HW_WDOG_AT91"
  756. },
  757. makedefs = { "MCU=arm7tdmi" }
  758. },
  759. {
  760. macro = "MCU_AT91SAM7SE256",
  761. brief = "Atmel AT91SAM7SE256",
  762. description = "ARM7TDMI 16/32-bit RISC microcontroller with 256K bytes flash, "..
  763. "32K bytes RAM, external bus interface, USB, 2 USARTs and more. ",
  764. flavor = "boolean",
  765. exclusivity = mcu_names,
  766. file = "include/cfg/arch.h",
  767. requires = { "TOOL_CC_ARM" },
  768. provides = {
  769. "HW_TARGET",
  770. "HW_MCU_ARM",
  771. "HW_MCU_AT91",
  772. "HW_MCU_AT91SAM7SE",
  773. "HW_TIMER_AT91",
  774. "HW_PLL_AT91",
  775. "HW_SDRAMC",
  776. "HW_PIT_AT91",
  777. "HW_UART_AT91",
  778. "HW_DBGU_AT91",
  779. "HW_UART0_RTSCTS",
  780. "HW_UART1_RTSCTS",
  781. "HW_UART1_MODEM",
  782. "HW_SPI_AT91",
  783. "HW_TWI_AT91",
  784. "HW_SSC_AT91",
  785. "HW_RSTC_AT91",
  786. "HW_PDC_AT91",
  787. "HW_EFC_AT91",
  788. "HW_GPIO",
  789. "HW_EBI_AT91",
  790. "HW_WDOG_AT91"
  791. },
  792. makedefs = { "MCU=arm7tdmi" }
  793. },
  794. {
  795. macro = "MCU_AT91SAM7SE512",
  796. brief = "Atmel AT91SAM7SE512",
  797. description = "ARM7TDMI 16/32-bit RISC microcontroller with 512K bytes flash, "..
  798. "32K bytes RAM, external bus interface, USB, 2 USARTs and more. ",
  799. flavor = "boolean",
  800. exclusivity = mcu_names,
  801. file = "include/cfg/arch.h",
  802. requires = { "TOOL_CC_ARM" },
  803. provides = {
  804. "HW_TARGET",
  805. "HW_MCU_ARM",
  806. "HW_MCU_AT91",
  807. "HW_MCU_AT91SAM7SE",
  808. "HW_TIMER_AT91",
  809. "HW_PLL_AT91",
  810. "HW_SDRAMC",
  811. "HW_PIT_AT91",
  812. "HW_UART_AT91",
  813. "HW_DBGU_AT91",
  814. "HW_UART0_RTSCTS",
  815. "HW_UART1_RTSCTS",
  816. "HW_UART1_MODEM",
  817. "HW_SPI_AT91",
  818. "HW_TWI_AT91",
  819. "HW_SSC_AT91",
  820. "HW_RSTC_AT91",
  821. "HW_PDC_AT91",
  822. "HW_EFC_AT91",
  823. "HW_GPIO",
  824. "HW_EBI_AT91",
  825. "HW_WDOG_AT91"
  826. },
  827. makedefs = { "MCU=arm7tdmi" }
  828. },
  829. {
  830. macro = "MCU_AT91R40008",
  831. brief = "Atmel AT91R40008",
  832. description = "ARM7TDMI 16/32-bit RISC microcontroller with 256K bytes RAM, "..
  833. "64M bytes address space, 2 USARTs and 3 timers. ",
  834. flavor = "boolean",
  835. exclusivity = mcu_names,
  836. file = "include/cfg/arch.h",
  837. requires = { "TOOL_CC_ARM" },
  838. provides = {
  839. "HW_TARGET",
  840. "HW_MCU_ARM",
  841. "HW_MCU_AT91",
  842. "HW_MCU_AT91R40008",
  843. "HW_TIMER_AT91",
  844. "HW_UART_AT91",
  845. "HW_MCU_SWTWI",
  846. "HW_WDOG_AT91",
  847. "HW_GPIO",
  848. "HW_EBI_AT91"
  849. },
  850. makedefs = { "MCU=arm7tdmi" }
  851. },
  852. {
  853. macro = "MCU_GBA",
  854. brief = "Nintendo GBA",
  855. description = "ARM7TDMI 16/32-bit RISC microcontroller",
  856. flavor = "boolean",
  857. exclusivity = mcu_names,
  858. file = "include/cfg/arch.h",
  859. requires = { "TOOL_CC_ARM" },
  860. provides = {
  861. "HW_TARGET",
  862. "HW_MCU_ARM",
  863. "HW_MCU_GBA",
  864. "HW_TIMER_GBA",
  865. "HW_LCD_GBA",
  866. "DEV_NVMEM"
  867. },
  868. makedefs = { "MCU=arm7tdmi" }
  869. },
  870. --
  871. -- STM STM32F0X1 SERIES CONTROLLER
  872. --
  873. {
  874. macro = "MCU_STM32F030",
  875. brief = "STM STM32F030",
  876. description = "STM STM32F030",
  877. flavor = "boolean",
  878. exclusivity = mcu_names,
  879. file = "include/cfg/arch.h",
  880. requires = { "TOOL_CC_CM3" },
  881. provides = {
  882. "HW_TARGET",
  883. "HW_MCU_CM3",
  884. "HW_MCU_STM32",
  885. "HW_MCU_STM32F0XX",
  886. "HW_MCU_STM32F030"
  887. },
  888. makedefs = { "MCU=cortex-m0" },
  889. },
  890. {
  891. macro = "MCU_STM32F031",
  892. brief = "STM STM32F031",
  893. description = "STM STM32F031",
  894. flavor = "boolean",
  895. exclusivity = mcu_names,
  896. file = "include/cfg/arch.h",
  897. requires = { "TOOL_CC_CM3" },
  898. provides = {
  899. "HW_TARGET",
  900. "HW_MCU_CM3",
  901. "HW_MCU_STM32",
  902. "HW_MCU_STM32F0XX",
  903. "HW_MCU_STM32F031"
  904. },
  905. makedefs = { "MCU=cortex-m0"},
  906. },
  907. {
  908. macro = "MCU_STM32F042",
  909. brief = "STM STM32F042",
  910. description = "STM STM32F042",
  911. flavor = "boolean",
  912. exclusivity = mcu_names,
  913. file = "include/cfg/arch.h",
  914. requires = { "TOOL_CC_CM3" },
  915. provides = {
  916. "HW_TARGET",
  917. "HW_MCU_CM3",
  918. "HW_MCU_STM32",
  919. "HW_MCU_STM32F0XX",
  920. "HW_MCU_STM32F042"
  921. },
  922. makedefs = { "MCU=cortex-m0" },
  923. },
  924. {
  925. macro = "MCU_STM32F051",
  926. brief = "STM STM32F051",
  927. description = "STM STM32F051",
  928. flavor = "boolean",
  929. exclusivity = mcu_names,
  930. file = "include/cfg/arch.h",
  931. requires = { "TOOL_CC_CM3" },
  932. provides = {
  933. "HW_TARGET",
  934. "HW_MCU_CM3",
  935. "HW_MCU_STM32",
  936. "HW_MCU_STM32F0XX",
  937. "HW_MCU_STM32F051"
  938. },
  939. makedefs = { "MCU=cortex-m0" },
  940. },
  941. {
  942. macro = "MCU_STM32F072",
  943. brief = "STM STM32F072",
  944. description = "STM STM32F072",
  945. flavor = "boolean",
  946. exclusivity = mcu_names,
  947. file = "include/cfg/arch.h",
  948. requires = { "TOOL_CC_CM3" },
  949. provides = {
  950. "HW_TARGET",
  951. "HW_MCU_CM3",
  952. "HW_MCU_STM32",
  953. "HW_MCU_STM32F0XX",
  954. "HW_MCU_STM32F072"
  955. },
  956. makedefs = { "MCU=cortex-m0" },
  957. },
  958. --
  959. -- STM STM32F10X SERIES CONTROLLER
  960. --
  961. {
  962. macro = "MCU_STM32F100",
  963. brief = "STM STM32F100",
  964. description = "CortexM3 32-bit RISC microcontroller.\n\n"..
  965. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  966. flavor = "boolean",
  967. exclusivity = mcu_names,
  968. file = "include/cfg/arch.h",
  969. requires = { "TOOL_CC_CM3" },
  970. provides = {
  971. "HW_TARGET",
  972. "HW_MCU_CM3",
  973. "HW_MCU_STM32",
  974. "HW_MCU_STM32F10X",
  975. "HW_MCU_STM32F100",
  976. "MCU_STM32F100"
  977. },
  978. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" },
  979. },
  980. {
  981. macro = "MCU_STM32F101",
  982. brief = "STM STM32F101",
  983. description = "CortexM3 32-bit RISC microcontroller.\n\n"..
  984. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  985. flavor = "boolean",
  986. exclusivity = mcu_names,
  987. file = "include/cfg/arch.h",
  988. requires = { "TOOL_CC_CM3" },
  989. provides = {
  990. "HW_TARGET",
  991. "HW_MCU_CM3",
  992. "HW_MCU_STM32",
  993. "HW_MCU_STM32F10X",
  994. "HW_MCU_STM32F101",
  995. "MCU_STM32F101",
  996. "HW_GPIO"
  997. },
  998. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" },
  999. },
  1000. {
  1001. macro = "MCU_STM32F102",
  1002. brief = "STM STM32F102",
  1003. description = "CortexM3 32-bit RISC microcontroller.\n\n"..
  1004. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1005. flavor = "boolean",
  1006. exclusivity = mcu_names,
  1007. file = "include/cfg/arch.h",
  1008. requires = { "TOOL_CC_CM3" },
  1009. provides = {
  1010. "HW_TARGET",
  1011. "HW_MCU_CM3",
  1012. "HW_MCU_STM32",
  1013. "HW_MCU_STM32F10X",
  1014. "HW_MCU_STM32F102",
  1015. "MCU_STM32F102",
  1016. "HW_GPIO"
  1017. },
  1018. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" },
  1019. },
  1020. {
  1021. macro = "MCU_STM32F103",
  1022. brief = "STM STM32F103",
  1023. description = "CortexM3 32-bit RISC microcontroller.\n\n"..
  1024. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1025. flavor = "boolean",
  1026. exclusivity = mcu_names,
  1027. file = "include/cfg/arch.h",
  1028. requires = { "TOOL_CC_CM3" },
  1029. provides = {
  1030. "HW_TARGET",
  1031. "HW_MCU_CM3",
  1032. "HW_MCU_STM32",
  1033. "HW_MCU_STM32F10X",
  1034. "HW_MCU_STM32F103",
  1035. "MCU_STM32F103",
  1036. "HW_GPIO"
  1037. },
  1038. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" },
  1039. },
  1040. {
  1041. macro = "MCU_STM32F105",
  1042. brief = "STM STM32F105",
  1043. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1044. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1045. flavor = "boolean",
  1046. exclusivity = mcu_names,
  1047. file = "include/cfg/arch.h",
  1048. requires = { "TOOL_CC_CM3" },
  1049. provides = {
  1050. "HW_TARGET",
  1051. "HW_MCU_CM3",
  1052. "HW_MCU_STM32",
  1053. "HW_MCU_STM32F10X",
  1054. "HW_MCU_STM32F105",
  1055. "MCU_STM32F105",
  1056. "HW_GPIO"
  1057. },
  1058. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1059. },
  1060. {
  1061. macro = "MCU_STM32F107",
  1062. brief = "STM STM32F107",
  1063. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1064. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1065. flavor = "boolean",
  1066. exclusivity = mcu_names,
  1067. file = "include/cfg/arch.h",
  1068. requires = { "TOOL_CC_CM3" },
  1069. provides = {
  1070. "HW_TARGET",
  1071. "HW_MCU_CM3",
  1072. "HW_MCU_STM32",
  1073. "HW_MCU_STM32F10X",
  1074. "HW_MCU_STM32F107",
  1075. "MCU_STM32F107",
  1076. "HW_GPIO"
  1077. },
  1078. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1079. },
  1080. {
  1081. macro = "MCU_STM32L151x6",
  1082. brief = "STM STM32L151x6",
  1083. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1084. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1085. flavor = "boolean",
  1086. exclusivity = mcu_names,
  1087. file = "include/cfg/arch.h",
  1088. requires = { "TOOL_CC_CM3" },
  1089. provides = {
  1090. "HW_TARGET",
  1091. "HW_MCU_CM3",
  1092. "HW_MCU_STM32",
  1093. "HW_MCU_STM32L1XX",
  1094. "STM32L1XX_MD",
  1095. },
  1096. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1097. },
  1098. {
  1099. macro = "MCU_STM32L151x8",
  1100. brief = "STM STM32L151x8",
  1101. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1102. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1103. flavor = "boolean",
  1104. exclusivity = mcu_names,
  1105. file = "include/cfg/arch.h",
  1106. requires = { "TOOL_CC_CM3" },
  1107. provides = {
  1108. "HW_TARGET",
  1109. "HW_MCU_CM3",
  1110. "HW_MCU_STM32",
  1111. "HW_MCU_STM32L1XX",
  1112. "STM32L1XX_MD",
  1113. },
  1114. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1115. },
  1116. {
  1117. macro = "MCU_STM32L151xA",
  1118. brief = "STM STM32L151xA",
  1119. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1120. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1121. flavor = "boolean",
  1122. exclusivity = mcu_names,
  1123. file = "include/cfg/arch.h",
  1124. requires = { "TOOL_CC_CM3" },
  1125. provides = {
  1126. "HW_TARGET",
  1127. "HW_MCU_CM3",
  1128. "HW_MCU_STM32",
  1129. "HW_MCU_STM32L1XX",
  1130. "STM32L1XX_MD",
  1131. "HW_GPIO"
  1132. },
  1133. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1134. },
  1135. {
  1136. macro = "MCU_STM32L151xB",
  1137. brief = "STM STM32L151xB",
  1138. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1139. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1140. flavor = "boolean",
  1141. exclusivity = mcu_names,
  1142. file = "include/cfg/arch.h",
  1143. requires = { "TOOL_CC_CM3" },
  1144. provides = {
  1145. "HW_TARGET",
  1146. "HW_MCU_CM3",
  1147. "HW_MCU_STM32",
  1148. "HW_MCU_STM32L1XX",
  1149. "STM32L1XX_MD",
  1150. "HW_GPIO"
  1151. },
  1152. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1153. },
  1154. {
  1155. macro = "MCU_STM32L151CC",
  1156. brief = "STM STM32L151CC",
  1157. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1158. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1159. flavor = "boolean",
  1160. exclusivity = mcu_names,
  1161. file = "include/cfg/arch.h",
  1162. requires = { "TOOL_CC_CM3" },
  1163. provides = {
  1164. "HW_TARGET",
  1165. "HW_MCU_CM3",
  1166. "HW_MCU_STM32",
  1167. "HW_MCU_STM32L1XX",
  1168. "STM32L1XX_MDP",
  1169. },
  1170. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1171. },
  1172. {
  1173. macro = "MCU_STM32L151UC",
  1174. brief = "STM STM32L151UC",
  1175. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1176. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1177. flavor = "boolean",
  1178. exclusivity = mcu_names,
  1179. file = "include/cfg/arch.h",
  1180. requires = { "TOOL_CC_CM3" },
  1181. provides = {
  1182. "HW_TARGET",
  1183. "HW_MCU_CM3",
  1184. "HW_MCU_STM32",
  1185. "HW_MCU_STM32L1XX",
  1186. "STM32L1XX_MDP",
  1187. },
  1188. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1189. },
  1190. {
  1191. macro = "MCU_STM32L151RC",
  1192. brief = "STM STM32L151RC",
  1193. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1194. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1195. flavor = "boolean",
  1196. exclusivity = mcu_names,
  1197. file = "include/cfg/arch.h",
  1198. requires = { "TOOL_CC_CM3" },
  1199. provides = {
  1200. "HW_TARGET",
  1201. "HW_MCU_CM3",
  1202. "HW_MCU_STM32",
  1203. "HW_MCU_STM32L1XX",
  1204. "STM32L1XX_MDP",
  1205. },
  1206. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1207. },
  1208. {
  1209. macro = "MCU_STM32L151VC",
  1210. brief = "STM STM32L151VC",
  1211. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1212. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1213. flavor = "boolean",
  1214. exclusivity = mcu_names,
  1215. file = "include/cfg/arch.h",
  1216. requires = { "TOOL_CC_CM3" },
  1217. provides = {
  1218. "HW_TARGET",
  1219. "HW_MCU_CM3",
  1220. "HW_MCU_STM32",
  1221. "HW_MCU_STM32L1XX",
  1222. "STM32L1XX_MDP",
  1223. },
  1224. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1225. },
  1226. {
  1227. macro = "MCU_STM32L151RC-A",
  1228. brief = "STM STM32L151RC-A",
  1229. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1230. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1231. flavor = "boolean",
  1232. exclusivity = mcu_names,
  1233. file = "include/cfg/arch.h",
  1234. requires = { "TOOL_CC_CM3" },
  1235. provides = {
  1236. "HW_TARGET",
  1237. "HW_MCU_CM3",
  1238. "HW_MCU_STM32",
  1239. "HW_MCU_STM32L1XX",
  1240. "STM32L1XX_HD",
  1241. },
  1242. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1243. },
  1244. {
  1245. macro = "MCU_STM32L151VC-A",
  1246. brief = "STM STM32L151VC-A",
  1247. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1248. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1249. flavor = "boolean",
  1250. exclusivity = mcu_names,
  1251. file = "include/cfg/arch.h",
  1252. requires = { "TOOL_CC_CM3" },
  1253. provides = {
  1254. "HW_TARGET",
  1255. "HW_MCU_CM3",
  1256. "HW_MCU_STM32",
  1257. "HW_MCU_STM32L1XX",
  1258. "STM32L1XX_HD",
  1259. },
  1260. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1261. },
  1262. {
  1263. macro = "MCU_STM32L151xD",
  1264. brief = "STM STM32L151xD",
  1265. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1266. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1267. flavor = "boolean",
  1268. exclusivity = mcu_names,
  1269. file = "include/cfg/arch.h",
  1270. requires = { "TOOL_CC_CM3" },
  1271. provides = {
  1272. "HW_TARGET",
  1273. "HW_MCU_CM3",
  1274. "HW_MCU_STM32",
  1275. "HW_MCU_STM32L1XX",
  1276. "STM32L1XX_HD",
  1277. },
  1278. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1279. },
  1280. {
  1281. macro = "MCU_STM32L151xE",
  1282. brief = "STM STM32L151xE",
  1283. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1284. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1285. flavor = "boolean",
  1286. exclusivity = mcu_names,
  1287. file = "include/cfg/arch.h",
  1288. requires = { "TOOL_CC_CM3" },
  1289. provides = {
  1290. "HW_TARGET",
  1291. "HW_MCU_CM3",
  1292. "HW_MCU_STM32",
  1293. "HW_MCU_STM32L1XX",
  1294. "STM32L1XX_XL",
  1295. },
  1296. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1297. },
  1298. {
  1299. macro = "MCU_STM32L152x6",
  1300. brief = "STM STM32L152x6",
  1301. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1302. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1303. flavor = "boolean",
  1304. exclusivity = mcu_names,
  1305. file = "include/cfg/arch.h",
  1306. requires = { "TOOL_CC_CM3" },
  1307. provides = {
  1308. "HW_TARGET",
  1309. "HW_MCU_CM3",
  1310. "HW_MCU_STM32",
  1311. "HW_MCU_STM32L1XX",
  1312. "HW_MCU_STM32L152",
  1313. "STM32L1XX_MD",
  1314. },
  1315. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1316. },
  1317. {
  1318. macro = "MCU_STM32L152x8",
  1319. brief = "STM STM32L152x8",
  1320. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1321. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1322. flavor = "boolean",
  1323. exclusivity = mcu_names,
  1324. file = "include/cfg/arch.h",
  1325. requires = { "TOOL_CC_CM3" },
  1326. provides = {
  1327. "HW_TARGET",
  1328. "HW_MCU_CM3",
  1329. "HW_MCU_STM32",
  1330. "HW_MCU_STM32L1XX",
  1331. "HW_MCU_STM32L152",
  1332. "STM32L1XX_MD",
  1333. },
  1334. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1335. },
  1336. {
  1337. macro = "MCU_STM32L152xA",
  1338. brief = "STM STM32L152xA",
  1339. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1340. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1341. flavor = "boolean",
  1342. exclusivity = mcu_names,
  1343. file = "include/cfg/arch.h",
  1344. requires = { "TOOL_CC_CM3" },
  1345. provides = {
  1346. "HW_TARGET",
  1347. "HW_MCU_CM3",
  1348. "HW_MCU_STM32",
  1349. "HW_MCU_STM32L1XX",
  1350. "STM32L1XX_MD",
  1351. "HW_MCU_STM32L152",
  1352. "HW_GPIO"
  1353. },
  1354. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1355. },
  1356. {
  1357. macro = "MCU_STM32L152xB",
  1358. brief = "STM STM32L152xB",
  1359. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1360. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1361. flavor = "boolean",
  1362. exclusivity = mcu_names,
  1363. file = "include/cfg/arch.h",
  1364. requires = { "TOOL_CC_CM3" },
  1365. provides = {
  1366. "HW_TARGET",
  1367. "HW_MCU_CM3",
  1368. "HW_MCU_STM32",
  1369. "HW_MCU_STM32L1XX",
  1370. "STM32L1XX_MD",
  1371. "HW_MCU_STM32L152",
  1372. "HW_GPIO"
  1373. },
  1374. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1375. },
  1376. {
  1377. macro = "MCU_STM32L152CC",
  1378. brief = "STM STM32L152CC",
  1379. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1380. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1381. flavor = "boolean",
  1382. exclusivity = mcu_names,
  1383. file = "include/cfg/arch.h",
  1384. requires = { "TOOL_CC_CM3" },
  1385. provides = {
  1386. "HW_TARGET",
  1387. "HW_MCU_CM3",
  1388. "HW_MCU_STM32",
  1389. "HW_MCU_STM32L1XX",
  1390. "HW_MCU_STM32L152",
  1391. "STM32L1XX_MDP",
  1392. },
  1393. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1394. },
  1395. {
  1396. macro = "MCU_STM32L152UC",
  1397. brief = "STM STM32L152UC",
  1398. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1399. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1400. flavor = "boolean",
  1401. exclusivity = mcu_names,
  1402. file = "include/cfg/arch.h",
  1403. requires = { "TOOL_CC_CM3" },
  1404. provides = {
  1405. "HW_TARGET",
  1406. "HW_MCU_CM3",
  1407. "HW_MCU_STM32",
  1408. "HW_MCU_STM32L1XX",
  1409. "HW_MCU_STM32L152",
  1410. "STM32L1XX_MDP",
  1411. },
  1412. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1413. },
  1414. {
  1415. macro = "MCU_STM32L152RC",
  1416. brief = "STM STM32L152RC",
  1417. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1418. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1419. flavor = "boolean",
  1420. exclusivity = mcu_names,
  1421. file = "include/cfg/arch.h",
  1422. requires = { "TOOL_CC_CM3" },
  1423. provides = {
  1424. "HW_TARGET",
  1425. "HW_MCU_CM3",
  1426. "HW_MCU_STM32",
  1427. "HW_MCU_STM32L1XX",
  1428. "HW_MCU_STM32L152",
  1429. "STM32L1XX_MDP",
  1430. },
  1431. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1432. },
  1433. {
  1434. macro = "MCU_STM32L152VC",
  1435. brief = "STM STM32L152VC",
  1436. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1437. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1438. flavor = "boolean",
  1439. exclusivity = mcu_names,
  1440. file = "include/cfg/arch.h",
  1441. requires = { "TOOL_CC_CM3" },
  1442. provides = {
  1443. "HW_TARGET",
  1444. "HW_MCU_CM3",
  1445. "HW_MCU_STM32",
  1446. "HW_MCU_STM32L1XX",
  1447. "HW_MCU_STM32L152",
  1448. "STM32L1XX_MDP",
  1449. },
  1450. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1451. },
  1452. {
  1453. macro = "MCU_STM32L152RC-A",
  1454. brief = "STM STM32L152RC-A",
  1455. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1456. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1457. flavor = "boolean",
  1458. exclusivity = mcu_names,
  1459. file = "include/cfg/arch.h",
  1460. requires = { "TOOL_CC_CM3" },
  1461. provides = {
  1462. "HW_TARGET",
  1463. "HW_MCU_CM3",
  1464. "HW_MCU_STM32",
  1465. "HW_MCU_STM32L1XX",
  1466. "HW_MCU_STM32L152",
  1467. "STM32L1XX_HD",
  1468. },
  1469. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1470. },
  1471. {
  1472. macro = "MCU_STM32L152VC-A",
  1473. brief = "STM STM32L152VC-A",
  1474. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1475. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1476. flavor = "boolean",
  1477. exclusivity = mcu_names,
  1478. file = "include/cfg/arch.h",
  1479. requires = { "TOOL_CC_CM3" },
  1480. provides = {
  1481. "HW_TARGET",
  1482. "HW_MCU_CM3",
  1483. "HW_MCU_STM32",
  1484. "HW_MCU_STM32L1XX",
  1485. "HW_MCU_STM32L152",
  1486. "STM32L1XX_HD",
  1487. },
  1488. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1489. },
  1490. {
  1491. macro = "MCU_STM32L152xD",
  1492. brief = "STM STM32L152xD",
  1493. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1494. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1495. flavor = "boolean",
  1496. exclusivity = mcu_names,
  1497. file = "include/cfg/arch.h",
  1498. requires = { "TOOL_CC_CM3" },
  1499. provides = {
  1500. "HW_TARGET",
  1501. "HW_MCU_CM3",
  1502. "HW_MCU_STM32",
  1503. "HW_MCU_STM32L1XX",
  1504. "HW_MCU_STM32L152",
  1505. "STM32L1XX_HD",
  1506. },
  1507. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1508. },
  1509. {
  1510. macro = "MCU_STM32L152xE",
  1511. brief = "STM STM32L152xE",
  1512. description = "CortexM3 32-bit RISC microcontroller\n\n"..
  1513. "Select the correct sub-type in Architecture->CM3->STM32 Family.",
  1514. flavor = "boolean",
  1515. exclusivity = mcu_names,
  1516. file = "include/cfg/arch.h",
  1517. requires = { "TOOL_CC_CM3" },
  1518. provides = {
  1519. "HW_TARGET",
  1520. "HW_MCU_CM3",
  1521. "HW_MCU_STM32",
  1522. "HW_MCU_STM32L1XX",
  1523. "HW_MCU_STM32L152",
  1524. "STM32L1XX_XL",
  1525. },
  1526. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" }
  1527. },
  1528. {
  1529. macro = "MCU_STM32F401",
  1530. brief = "STM STM32F401",
  1531. description = "STM32F401.",
  1532. flavor = "boolean",
  1533. exclusivity = mcu_names,
  1534. file = "include/cfg/arch.h",
  1535. requires = { "TOOL_CC_CM3" },
  1536. provides = {
  1537. "HW_TARGET",
  1538. "HW_MCU_CM3",
  1539. "HW_MCU_STM32",
  1540. "HW_MCU_STM32F4XX",
  1541. "HW_MCU_STM32F401",
  1542. },
  1543. makedefs = { "MCU=cortex-m4" }
  1544. },
  1545. {
  1546. macro = "MCU_STM32F405",
  1547. brief = "STM STM32F405",
  1548. description = "STM32F4 with FSMC.",
  1549. flavor = "boolean",
  1550. exclusivity = mcu_names,
  1551. file = "include/cfg/arch.h",
  1552. requires = { "TOOL_CC_CM3" },
  1553. provides = {
  1554. "HW_TARGET",
  1555. "HW_MCU_CM3",
  1556. "HW_MCU_STM32",
  1557. "HW_MCU_STM32F4XX",
  1558. "HW_MCU_STM32F405",
  1559. },
  1560. makedefs = { "MCU=cortex-m4" }
  1561. },
  1562. {
  1563. macro = "MCU_STM32F407",
  1564. brief = "STM STM32F407",
  1565. description = "STM32F4 with Ethernet and FSMC.",
  1566. flavor = "boolean",
  1567. exclusivity = mcu_names,
  1568. file = "include/cfg/arch.h",
  1569. requires = { "TOOL_CC_CM3" },
  1570. provides = {
  1571. "HW_TARGET",
  1572. "HW_MCU_CM3",
  1573. "HW_MCU_STM32",
  1574. "HW_MCU_STM32F4XX",
  1575. "HW_MCU_STM32F407",
  1576. },
  1577. makedefs = { "MCU=cortex-m4" }
  1578. },
  1579. {
  1580. macro = "MCU_STM32F415",
  1581. brief = "STM STM32F415",
  1582. description = "STM32F4 with Crypto and FSMC.",
  1583. flavor = "boolean",
  1584. exclusivity = mcu_names,
  1585. file = "include/cfg/arch.h",
  1586. requires = { "TOOL_CC_CM3" },
  1587. provides = {
  1588. "HW_TARGET",
  1589. "HW_MCU_CM3",
  1590. "HW_MCU_STM32",
  1591. "HW_MCU_STM32F4XX",
  1592. "HW_MCU_STM32F415",
  1593. },
  1594. makedefs = { "MCU=cortex-m4" }
  1595. },
  1596. {
  1597. macro = "MCU_STM32F417",
  1598. brief = "STM STM32F417",
  1599. description = "STM32F4 with Crypto, Ethernet and FSMC.",
  1600. flavor = "boolean",
  1601. exclusivity = mcu_names,
  1602. file = "include/cfg/arch.h",
  1603. requires = { "TOOL_CC_CM3" },
  1604. provides = {
  1605. "HW_TARGET",
  1606. "HW_MCU_CM3",
  1607. "HW_MCU_STM32",
  1608. "HW_MCU_STM32F4XX",
  1609. "HW_MCU_STM32F417",
  1610. },
  1611. makedefs = { "MCU=cortex-m4" }
  1612. },
  1613. {
  1614. macro = "MCU_STM32F427",
  1615. brief = "STM STM32F427",
  1616. description = "STM32F4 with Ethernet and FMC.",
  1617. flavor = "boolean",
  1618. exclusivity = mcu_names,
  1619. file = "include/cfg/arch.h",
  1620. requires = { "TOOL_CC_CM3" },
  1621. provides = {
  1622. "HW_TARGET",
  1623. "HW_MCU_CM3",
  1624. "HW_MCU_STM32",
  1625. "HW_MCU_STM32F4XX",
  1626. "HW_MCU_STM32F427",
  1627. },
  1628. makedefs = { "MCU=cortex-m4" }
  1629. },
  1630. {
  1631. macro = "MCU_STM32F429",
  1632. brief = "STM STM32F429",
  1633. description = "STM32F4 with LCD, Ethernet and FMC.",
  1634. flavor = "boolean",
  1635. exclusivity = mcu_names,
  1636. file = "include/cfg/arch.h",
  1637. requires = { "TOOL_CC_CM3" },
  1638. provides = {
  1639. "HW_TARGET",
  1640. "HW_MCU_CM3",
  1641. "HW_MCU_STM32",
  1642. "HW_MCU_STM32F4XX",
  1643. "HW_MCU_STM32F429",
  1644. },
  1645. makedefs = { "MCU=cortex-m4" }
  1646. },
  1647. {
  1648. macro = "MCU_STM32F437",
  1649. brief = "STM STM32F437",
  1650. description = "STM32F4 with Crypto, Ethernet and FMC.",
  1651. flavor = "boolean",
  1652. exclusivity = mcu_names,
  1653. file = "include/cfg/arch.h",
  1654. requires = { "TOOL_CC_CM3" },
  1655. provides = {
  1656. "HW_TARGET",
  1657. "HW_MCU_CM3",
  1658. "HW_MCU_STM32",
  1659. "HW_MCU_STM32F4XX",
  1660. "HW_MCU_STM32F437",
  1661. },
  1662. makedefs = { "MCU=cortex-m4" }
  1663. },
  1664. {
  1665. macro = "MCU_STM32F439",
  1666. brief = "STM STM32F439",
  1667. description = "STM32F4 with Crypto, LCD, Ethernet and FMC.",
  1668. flavor = "boolean",
  1669. exclusivity = mcu_names,
  1670. file = "include/cfg/arch.h",
  1671. requires = { "TOOL_CC_CM3" },
  1672. provides = {
  1673. "HW_TARGET",
  1674. "HW_MCU_CM3",
  1675. "HW_MCU_STM32",
  1676. "HW_MCU_STM32F4XX",
  1677. "HW_MCU_STM32F439",
  1678. },
  1679. makedefs = { "MCU=cortex-m4" }
  1680. },
  1681. {
  1682. macro = "MCU_STM32F205",
  1683. brief = "STM STM32F205",
  1684. description = "STM32F205 with FSMC.",
  1685. flavor = "boolean",
  1686. exclusivity = mcu_names,
  1687. file = "include/cfg/arch.h",
  1688. requires = { "TOOL_CC_CM3" },
  1689. provides = {
  1690. "HW_TARGET",
  1691. "HW_MCU_CM3",
  1692. "HW_MCU_STM32",
  1693. "HW_MCU_STM32F2XX",
  1694. "HW_MCU_STM32F205",
  1695. },
  1696. makedefs = { "MCU=cortex-m3" }
  1697. },
  1698. {
  1699. macro = "MCU_STM32F207",
  1700. brief = "STM STM32F207",
  1701. description = "STM32F207 with Ethernet, Camera and FSMC.",
  1702. flavor = "boolean",
  1703. exclusivity = mcu_names,
  1704. file = "include/cfg/arch.h",
  1705. requires = { "TOOL_CC_CM3" },
  1706. provides = {
  1707. "HW_TARGET",
  1708. "HW_MCU_CM3",
  1709. "HW_MCU_STM32",
  1710. "HW_MCU_STM32F2XX",
  1711. "HW_MCU_STM32F207",
  1712. },
  1713. makedefs = { "MCU=cortex-m3" }
  1714. },
  1715. {
  1716. macro = "MCU_STM32F215",
  1717. brief = "STM STM32F215",
  1718. description = "STM32F215 with Crypto and FSMC.",
  1719. flavor = "boolean",
  1720. exclusivity = mcu_names,
  1721. file = "include/cfg/arch.h",
  1722. requires = { "TOOL_CC_CM3" },
  1723. provides = {
  1724. "HW_TARGET",
  1725. "HW_MCU_CM3",
  1726. "HW_MCU_STM32",
  1727. "HW_MCU_STM32F2XX",
  1728. "HW_MCU_STM32F215",
  1729. },
  1730. makedefs = { "MCU=cortex-m3" }
  1731. },
  1732. {
  1733. macro = "MCU_STM32F217",
  1734. brief = "STM STM32F217",
  1735. description = "STM32F217 with Crypto, Ethernet, Camera and FSMC.",
  1736. flavor = "boolean",
  1737. exclusivity = mcu_names,
  1738. file = "include/cfg/arch.h",
  1739. requires = { "TOOL_CC_CM3" },
  1740. provides = {
  1741. "HW_TARGET",
  1742. "HW_MCU_CM3",
  1743. "HW_MCU_STM32",
  1744. "HW_MCU_STM32F2XX",
  1745. "HW_MCU_STM32F217",
  1746. },
  1747. makedefs = { "MCU=cortex-m3" }
  1748. },
  1749. {
  1750. macro = "MCU_STM32F302",
  1751. brief = "STM STM32F302",
  1752. description = "STM32F302 with CAN, USB, 2 ADC, 1 DAC, 4 COMP, 2 OP and Capsense.",
  1753. flavor = "boolean",
  1754. exclusivity = mcu_names,
  1755. requires = { "TOOL_CC_CM3" },
  1756. provides = {
  1757. "HW_TARGET",
  1758. "HW_MCU_CM3",
  1759. "HW_MCU_STM32",
  1760. "HW_MCU_STM32F3XX",
  1761. "HW_MCU_STM32F30X",
  1762. "STM32F30X",
  1763. "HW_USB_STM32",
  1764. "HW_CAPSENSE_STM32",
  1765. },
  1766. makedefs = { "MCU=cortex-m4" }
  1767. },
  1768. {
  1769. macro = "MCU_STM32F303",
  1770. brief = "STM STM32F303",
  1771. description = "STM32F303 with CCM, CAN, USB, 4 ADC, 2 DAC, 7 COMP, 4 OP and Capsense.",
  1772. flavor = "boolean",
  1773. exclusivity = mcu_names,
  1774. requires = { "TOOL_CC_CM3" },
  1775. provides = {
  1776. "HW_TARGET",
  1777. "HW_MCU_CM3",
  1778. "HW_MCU_STM32",
  1779. "HW_MCU_STM32F3XX",
  1780. "HW_MCU_STM32F30X",
  1781. "STM32F30X",
  1782. "HW_USB_STM32",
  1783. "HW_CAPSENSE_STM32",
  1784. "HW_ADC3_STM32",
  1785. "HW_ADC4_STM32",
  1786. "HW_DAC2_STM32",
  1787. "HW_OP3_4_STM32",
  1788. },
  1789. makedefs = { "MCU=cortex-m4" }
  1790. },
  1791. {
  1792. macro = "MCU_STM32F313",
  1793. brief = "STM STM32F313",
  1794. description = "STM32F313 with CCM, CAN, 4 ADC, 2 DAC, 7 COMP and 4 OP.",
  1795. flavor = "boolean",
  1796. exclusivity = mcu_names,
  1797. requires = { "TOOL_CC_CM3" },
  1798. provides = {
  1799. "HW_TARGET",
  1800. "HW_MCU_CM3",
  1801. "HW_MCU_STM32",
  1802. "HW_MCU_STM32F3XX",
  1803. "HW_MCU_STM32F30X",
  1804. "STM32F30X",
  1805. "HW_ADC3_STM32",
  1806. "HW_ADC4_STM32",
  1807. "HW_DAC2_STM32",
  1808. "HW_OP3_4_STM32",
  1809. },
  1810. makedefs = { "MCU=cortex-m4" }
  1811. },
  1812. {
  1813. macro = "MCU_STM32F373",
  1814. brief = "STM STM32F373",
  1815. description = "STM32F373 with USB, CAN, 3 SDADC, 1 ADC, 3 DAC, 2 COMP and Capsense.",
  1816. flavor = "boolean",
  1817. exclusivity = mcu_names,
  1818. requires = { "TOOL_CC_CM3" },
  1819. provides = {
  1820. "HW_TARGET",
  1821. "HW_MCU_CM3",
  1822. "HW_MCU_STM32",
  1823. "HW_MCU_STM32F3XX",
  1824. "HW_MCU_STM32F37X",
  1825. "STM32F37X",
  1826. "HW_USB_STM32",
  1827. "HW_CAPSENSE_STM32",
  1828. },
  1829. makedefs = { "MCU=cortex-m4" }
  1830. },
  1831. {
  1832. macro = "MCU_STM32F383",
  1833. brief = "STM STM32F383",
  1834. description = "STM32F383 with CAN, 3 SDADC, 1 ADC, 3 DAC, and 2 COMP.",
  1835. flavor = "boolean",
  1836. exclusivity = mcu_names,
  1837. requires = { "TOOL_CC_CM3" },
  1838. provides = {
  1839. "HW_TARGET",
  1840. "HW_MCU_CM3",
  1841. "HW_MCU_STM32",
  1842. "HW_MCU_STM32F3XX",
  1843. "HW_MCU_STM32F37X",
  1844. "STM32F37X",
  1845. },
  1846. makedefs = { "MCU=cortex-m4" }
  1847. },
  1848. --
  1849. -- TI LM3S SERIES CONTROLLER
  1850. --
  1851. {
  1852. macro = "MCU_LM3S9B96",
  1853. brief = "Luminary LM3S9B96",
  1854. description = "CortexM3 32-bit RISC microcontroller.\n\n"..
  1855. "Select the correct sub-type in Architecture->CM3->LM3 Family.",
  1856. flavor = "boolean",
  1857. exclusivity = mcu_names,
  1858. file = "include/cfg/arch.h",
  1859. requires = { "TOOL_CC_CM3" },
  1860. provides = {
  1861. "HW_TARGET",
  1862. "HW_MCU_CM3",
  1863. "HW_MCU_LM3",
  1864. "HW_MCU_LM3S9B96",
  1865. "MCU_LM3S9B96",
  1866. "HW_GPIO"
  1867. },
  1868. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" },
  1869. },
  1870. --
  1871. -- NXP LPC17xx CONTROLLER
  1872. --
  1873. {
  1874. macro = "MCU_LPC175x",
  1875. brief = "NXP LCP175x series",
  1876. description = "CortexM3 32-bit RISC microcontroller.\n\n"..
  1877. "Select the correct sub-type in Architecture->CM3->LPC175x Family.",
  1878. flavor = "boolean",
  1879. exclusivity = mcu_names,
  1880. file = "include/cfg/arch.h",
  1881. requires = { "TOOL_CC_CM3" },
  1882. provides = {
  1883. "HW_TARGET",
  1884. "HW_MCU_CM3",
  1885. "HW_MCU_LPC17xx",
  1886. "HW_MCU_LPC175x",
  1887. "HW_PLL_LPC17xx",
  1888. "HW_RTC_LPC17xx",
  1889. "HW_FLASH_LPC17xx",
  1890. "HW_GPIO_LPC176x",
  1891. "HW_CRC32_LPC177x",
  1892. "DEV_IRQ_LPC17xx",
  1893. "HW_WDT_LPC17xx",
  1894. -- "HW_GPDMA_LPC17xx",
  1895. "HW_EMAC_LPC17xx",
  1896. "HW_I2C_LPC17xx",
  1897. "HW_SPI_LPC17xx",
  1898. },
  1899. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" },
  1900. },
  1901. {
  1902. macro = "MCU_LPC176x",
  1903. brief = "NXP LCP176x series",
  1904. description = "CortexM3 32-bit RISC microcontroller.\n\n"..
  1905. "Select the correct sub-type in Architecture->CM3->LPC176x Family.",
  1906. flavor = "boolean",
  1907. exclusivity = mcu_names,
  1908. file = "include/cfg/arch.h",
  1909. requires = { "TOOL_CC_CM3" },
  1910. provides = {
  1911. "HW_TARGET",
  1912. "HW_MCU_CM3",
  1913. "HW_MCU_LPC17xx",
  1914. "HW_MCU_LPC176x",
  1915. "HW_PLL_LPC17xx",
  1916. "HW_RTC_LPC17xx",
  1917. "HW_FLASH_LPC17xx",
  1918. "HW_GPIO_LPC176x",
  1919. "HW_CRC32_LPC177x",
  1920. "DEV_IRQ_LPC17xx",
  1921. "HW_WDT_LPC17xx",
  1922. -- "HW_GPDMA_LPC17xx",
  1923. "HW_EMAC_LPC17xx",
  1924. "HW_I2C_LPC17xx",
  1925. "HW_SPI_LPC17xx",
  1926. "HW_SSP_LPC17xx",
  1927. },
  1928. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" },
  1929. },
  1930. {
  1931. macro = "MCU_LPC177x_8x",
  1932. brief = "NXP LCP177x_8x series",
  1933. description = "CortexM3 32-bit RISC microcontroller.\n\n"..
  1934. "Select the correct sub-type in Architecture->CM3->LPC177x_8x Family.",
  1935. flavor = "boolean",
  1936. exclusivity = mcu_names,
  1937. file = "include/cfg/arch.h",
  1938. requires = { "TOOL_CC_CM3" },
  1939. provides = {
  1940. "HW_TARGET",
  1941. "HW_MCU_CM3",
  1942. "HW_MCU_LPC17xx",
  1943. "HW_MCU_LPC177x_8x",
  1944. "HW_MCU_LPC177x_8x_LPC407x_8x",
  1945. "HW_PLL_LPC17xx",
  1946. "HW_RTC_LPC17xx",
  1947. "HW_EMC_LPC177x_8x",
  1948. "HW_FLASH_LPC17xx",
  1949. "HW_EEPROM_LPC177x_8x",
  1950. "HW_GPIO_LPC177x_8x",
  1951. "HW_CRC32_LPC17xx",
  1952. "DEV_IRQ_LPC17xx",
  1953. "HW_WDT_LPC17xx",
  1954. "HW_GPDMA_LPC17xx",
  1955. "HW_MCI_LPC177x_8x",
  1956. "HW_EMAC_LPC17xx",
  1957. "HW_I2C_LPC17xx",
  1958. "HW_SSP_LPC17xx",
  1959. },
  1960. makedefs = { "MCU=cortex-m3", "MFIX=-mfix-cortex-m3-ldrd" },
  1961. },
  1962. {
  1963. macro = "MCU_LPC407x_8x",
  1964. brief = "NXP LCP407x_8x series",
  1965. description = "CortexM4 32-bit RISC microcontroller with HW FPU.\n\n"..
  1966. "Select the correct sub-type in Architecture->CM4->LPC407x_8x Family.",
  1967. flavor = "boolean",
  1968. exclusivity = mcu_names,
  1969. file = "include/cfg/arch.h",
  1970. requires = { "TOOL_CC_CM3" },
  1971. provides = {
  1972. "HW_TARGET",
  1973. "HW_MCU_CM3",
  1974. "HW_MCU_LPC17xx",
  1975. "HW_MCU_LPC407x_8x",
  1976. "HW_MCU_LPC177x_8x_LPC407x_8x",
  1977. "HW_PLL_LPC17xx",
  1978. "HW_RTC_LPC17xx",
  1979. "HW_EMC_LPC177x_8x",
  1980. "HW_FLASH_LPC17xx",
  1981. "HW_EEPROM_LPC177x_8x",
  1982. "HW_GPIO_LPC177x_8x",
  1983. "HW_CRC32_LPC17xx",
  1984. "DEV_IRQ_LPC17xx",
  1985. "HW_WDT_LPC17xx",
  1986. "HW_GPDMA_LPC17xx",
  1987. "HW_MCI_LPC177x_8x",
  1988. "HW_EMAC_LPC17xx",
  1989. "HW_I2C_LPC17xx",
  1990. "HW_SSP_LPC17xx",
  1991. },
  1992. makedefs = { "MCU=cortex-m4" },
  1993. },
  1994. --
  1995. -- UNIX EMULATION FOR NUT/OS
  1996. --
  1997. {
  1998. macro = "MCU_LINUX_EMU",
  1999. brief = "Linux Emulator",
  2000. flavor = "boolean",
  2001. exclusivity = mcu_names,
  2002. file = "include/cfg/arch.h",
  2003. requires = { "TOOL_CC_LINUX" },
  2004. provides = { "HW_TARGET", "DEV_NVMEM", "HW_EMU_LINUX" }
  2005. },
  2006. {
  2007. macro = "MCU_H8_3068",
  2008. brief = "Renesas H8/3068",
  2009. flavor = "boolean",
  2010. exclusivity = mcu_names,
  2011. file = "include/cfg/arch.h",
  2012. requires = { "TOOL_CC_H8300" },
  2013. provides = {
  2014. "HW_TARGET",
  2015. "HW_MCU_H8300",
  2016. "H83068_TIMER",
  2017. "H83068_UART"
  2018. }
  2019. },
  2020. {
  2021. macro = "MCU_S3C4510B",
  2022. brief = "Samsung S3C4510B",
  2023. description = "ARM7TDMI 16/32-bit RISC microcontroller with Ethernet MAC,"..
  2024. "HDLC protocol, 64M bytes address space, I2C, 2 UARTs and "..
  2025. "2 timers.",
  2026. flavor = "boolean",
  2027. exclusivity = mcu_names,
  2028. file = "include/cfg/arch.h",
  2029. requires = { "TOOL_CC_ARM" },
  2030. provides = {
  2031. "HW_TARGET",
  2032. "HW_MCU_ARM",
  2033. "HW_MCU_S3C45",
  2034. "HW_TIMER_S3C45",
  2035. "HW_UART_S3C45"
  2036. }
  2037. },
  2038. --
  2039. -- AVR32
  2040. --
  2041. {
  2042. macro = "MCU_AVR32UC3A0512",
  2043. brief = "Atmel AT32UC3A0512",
  2044. description = "32-bit AVR UC3 RISC microcontroller with 512K flash, 64K SRAM,\n"..
  2045. "10/100 Ethernet MAC, Full-Speed + OTG USB,"..
  2046. "I2C, 4 UARTs and many other peripherals.",
  2047. flavor = "boolean",
  2048. exclusivity = mcu_names,
  2049. file = "include/cfg/arch.h",
  2050. requires = { "TOOL_CC_AVR32" },
  2051. provides = {
  2052. "HW_TARGET",
  2053. "HW_MCU_AVR32",
  2054. "HW_MCU_AVR32UC3",
  2055. "HW_SDRAMC",
  2056. "HW_TIMER_AVR32",
  2057. "HW_UART_AVR32",
  2058. "HW_UART2_AVR32",
  2059. "HW_SPI_AVR32_0",
  2060. "HW_SPI_AVR32_1",
  2061. "HW_EFC_AVR32",
  2062. "HW_WDOG_AVR32",
  2063. "HW_PLL_AVR32",
  2064. "HW_RTC_AVR32",
  2065. "HW_GPIO",
  2066. "HW_MACB_AVR32",
  2067. "HW_EBI_AVR32"
  2068. },
  2069. makedefs = { "MCU=uc3a0512" }
  2070. },
  2071. {
  2072. macro = "MCU_AVR32UC3A0512ES",
  2073. brief = "Atmel AT32UC3A0512-ES",
  2074. description = "*** Engineering Sample, do not use this CPU for new designs ***\n\n"..
  2075. "32-bit AVR UC3 RISC microcontroller with 512K flash, 64K SRAM,\n"..
  2076. "10/100 Ethernet MAC, Full-Speed + OTG USB,"..
  2077. "I2C, 4 UARTs and many other peripherals.",
  2078. flavor = "boolean",
  2079. exclusivity = mcu_names,
  2080. file = "include/cfg/arch.h",
  2081. requires = { "TOOL_CC_AVR32" },
  2082. provides = {
  2083. "HW_TARGET",
  2084. "HW_MCU_AVR32",
  2085. "HW_MCU_AVR32UC3",
  2086. "HW_SDRAMC",
  2087. "HW_TIMER_AVR32",
  2088. "HW_UART_AVR32",
  2089. "HW_UART2_AVR32",
  2090. "HW_SPI_AVR32_0",
  2091. "HW_SPI_AVR32_1",
  2092. "HW_EFC_AVR32",
  2093. "HW_WDOG_AVR32",
  2094. "HW_PLL_AVR32",
  2095. "HW_RTC_AVR32",
  2096. "HW_GPIO",
  2097. "HW_MACB_AVR32",
  2098. "HW_EBI_AVR32"
  2099. },
  2100. makedefs = { "MCU=uc3a0512es" }
  2101. },
  2102. {
  2103. macro = "MCU_AVR32UC3A3256",
  2104. brief = "Atmel AT32UC3A3256",
  2105. description = "32-bit AVR UC3 RISC microcontroller with 256k Flash, 64k SRAM,\n"..
  2106. "High-Speed + OTG USB device and many other peripherals.",
  2107. flavor = "boolean",
  2108. exclusivity = mcu_names,
  2109. file = "include/cfg/arch.h",
  2110. requires = { "TOOL_CC_AVR32" },
  2111. provides = {
  2112. "HW_TARGET",
  2113. "HW_MCU_AVR32",
  2114. "HW_MCU_AVR32UC3",
  2115. "HW_SDRAMC",
  2116. "HW_TIMER_AVR32",
  2117. "HW_UART_AVR32",
  2118. "HW_SPI_AVR32_0",
  2119. "HW_SPI_AVR32_1",
  2120. "HW_EFC_AVR32",
  2121. "HW_WDOG_AVR32",
  2122. "HW_PLL_AVR32",
  2123. "HW_RTC_AVR32",
  2124. "HW_GPIO",
  2125. "HW_EBI_AVR32"
  2126. },
  2127. makedefs = { "MCU=uc3a3256" }
  2128. },
  2129. {
  2130. macro = "MCU_AVR32UC3B0256",
  2131. brief = "Atmel AT32UC3B0256",
  2132. description = "32-bit AVR UC3 RISC microcontroller with 256k Flash, 32k SRAM,\n"..
  2133. "Full-Speed + Mini-Host USB device and many other peripherals.",
  2134. flavor = "boolean",
  2135. exclusivity = mcu_names,
  2136. file = "include/cfg/arch.h",
  2137. requires = { "TOOL_CC_AVR32" },
  2138. provides = {
  2139. "HW_TARGET",
  2140. "HW_MCU_AVR32",
  2141. "HW_MCU_AVR32UC3",
  2142. "HW_TIMER_AVR32",
  2143. "HW_UART_AVR32",
  2144. "HW_SPI_AVR32_0",
  2145. "HW_EFC_AVR32",
  2146. "HW_WDOG_AVR32",
  2147. "HW_PLL_AVR32",
  2148. "HW_RTC_AVR32",
  2149. "HW_GPIO"
  2150. },
  2151. makedefs = { "MCU=uc3b0256" }
  2152. },
  2153. {
  2154. macro = "MCU_AVR32UC3B164",
  2155. brief = "Atmel AT32UC3B164",
  2156. description = "32-bit AVR UC3 RISC microcontroller with 64k Flash, 16k SRAM,\n"..
  2157. "Full-Speed + Mini-Host USB device and many other peripherals.",
  2158. flavor = "boolean",
  2159. exclusivity = mcu_names,
  2160. file = "include/cfg/arch.h",
  2161. requires = { "TOOL_CC_AVR32" },
  2162. provides = {
  2163. "HW_TARGET",
  2164. "HW_MCU_AVR32",
  2165. "HW_MCU_AVR32UC3",
  2166. "HW_TIMER_AVR32",
  2167. "HW_UART_AVR32",
  2168. "HW_UART2_AVR32",
  2169. "HW_SPI_AVR32_0",
  2170. "HW_EFC_AVR32",
  2171. "HW_WDOG_AVR32",
  2172. "HW_PLL_AVR32",
  2173. "HW_RTC_AVR32",
  2174. "HW_GPIO"
  2175. },
  2176. makedefs = { "MCU=uc3b164" }
  2177. },
  2178. {
  2179. macro = "MCU_AVR32UC3L064",
  2180. brief = "Atmel AT32UC3L064",
  2181. description = "32-bit AVR UC3 RISC microcontroller with 64k Flash, 16k SRAM,\n"..
  2182. "Full-Speed + Mini-Host USB device and many other peripherals.",
  2183. flavor = "boolean",
  2184. exclusivity = mcu_names,
  2185. file = "include/cfg/arch.h",
  2186. requires = { "TOOL_CC_AVR32" },
  2187. provides = {
  2188. "HW_TARGET",
  2189. "HW_MCU_AVR32",
  2190. "HW_MCU_AVR32UC3",
  2191. "HW_TIMER_AVR32",
  2192. "HW_UART_AVR32",
  2193. "HW_UART2_AVR32",
  2194. "HW_SPI_AVR32_0",
  2195. -- "HW_EFC_AVR32",
  2196. "HW_WDOG_AVR32",
  2197. -- "HW_PLL_AVR32",
  2198. "HW_DFLL_AVR32",
  2199. "HW_GPIO"
  2200. },
  2201. makedefs = { "MCU=uc3l064" }
  2202. },
  2203. {
  2204. macro = "MCU_MCF51CN128",
  2205. brief = "Freescale MCF51CN128",
  2206. description = "32-bit RISC microcontroller, V1 Coldfire Core, 128K flash, 24K SRAM"..
  2207. "10/100 Ethernet MAC, MII, 3xSCI(UART), 2xIIC, 2xSPI, ADC, RTC, 2xModulo Timer, 2xTimer/PWM."..
  2208. "Mini FlexBUS, Keyboard Interrupts, 1xExternal Interrupt, Rapid GPIO",
  2209. flavor = "boolean",
  2210. exclusivity = mcu_names,
  2211. file = "include/cfg/arch.h",
  2212. requires = { "TOOL_CC_M68K" },
  2213. provides = {
  2214. "HW_TARGET",
  2215. "HW_MCU_M68K",
  2216. "HW_MCU_COLDFIRE",
  2217. "HW_MCU_MCF51CN",
  2218. "HW_MCU_MCF51CN128",
  2219. },
  2220. makedefs = { "MCU=51cn" }
  2221. },
  2222. {
  2223. macro = "MCU_MCF52259",
  2224. brief = "Freescale MCF52259",
  2225. description = "32-bit RISC microcontroller, V2 Coldfire Core, 10/100 Ethernet MAC"..
  2226. "512K flash, 64K SRAM, 3xUART, 2xI2C, ADC, QSPI, DMA, FlexCAN,"..
  2227. "Mini FlexBUS, USB, RTC, Random Number Generator, Cryptographic Accelerator.",
  2228. flavor = "boolean",
  2229. exclusivity = mcu_names,
  2230. file = "include/cfg/arch.h",
  2231. requires = { "TOOL_CC_M68K" },
  2232. provides = {
  2233. "HW_TARGET",
  2234. "HW_MCU_M68K",
  2235. "HW_MCU_COLDFIRE",
  2236. "HW_MCU_MCF5225X",
  2237. "HW_MCU_MCF52259",
  2238. },
  2239. makedefs = { "MCU=52259" }
  2240. },
  2241. --
  2242. -- Imaginary Zero CPU
  2243. --
  2244. {
  2245. macro = "MCU_ZERO",
  2246. brief = "Zero Dummy CPU",
  2247. description = "Imaginary ARM9 CPU, useful as a porting template.",
  2248. flavor = "boolean",
  2249. exclusivity = mcu_names,
  2250. file = "include/cfg/arch.h",
  2251. requires = { "TOOL_CC_ARM" },
  2252. provides = {
  2253. "HW_TARGET",
  2254. "HW_MCU_ARM",
  2255. "HW_TIMER_ZERO",
  2256. "HW_UART_ZERO"
  2257. },
  2258. makedefs = { "MCU=arm9" }
  2259. }
  2260. }
  2261. },
  2262. --
  2263. -- Architecture Dependent Implementations
  2264. --
  2265. {
  2266. name = "nutarch_arm",
  2267. brief = "ARM",
  2268. requires = { "HW_MCU_ARM" },
  2269. provides = { "ARM_SEMIHOSTING" };
  2270. script = "arch/arm.nut"
  2271. },
  2272. {
  2273. name = "nutarch_cm3",
  2274. brief = "CM3",
  2275. requires = { "HW_MCU_CM3" },
  2276. provides = { "ARM_SEMIHOSTING" };
  2277. script = "arch/cm3.nut"
  2278. },
  2279. {
  2280. name = "nutarch_avr",
  2281. brief = "AVR",
  2282. requires = { "HW_MCU_AVR" },
  2283. script = "arch/avr.nut"
  2284. },
  2285. {
  2286. name = "nutarch_avr32",
  2287. brief = "AVR32",
  2288. requires = { "HW_MCU_AVR32" },
  2289. script = "arch/avr32.nut"
  2290. },
  2291. {
  2292. name = "nutarch_h8300h",
  2293. brief = "H8/300H",
  2294. requires = { "HW_MCU_H8300" },
  2295. script = "arch/h8300h.nut"
  2296. },
  2297. {
  2298. name = "nutarch_m68k",
  2299. brief = "M68K",
  2300. requires = { "HW_MCU_M68K" },
  2301. script = "arch/m68k.nut"
  2302. },
  2303. {
  2304. name = "nutarch_unix",
  2305. brief = "Linux Emulator",
  2306. requires = { "HW_EMU_LINUX" },
  2307. script = "arch/unix.nut"
  2308. },
  2309. }