rom.h 112 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252
  1. //*****************************************************************************
  2. //
  3. // rom.h - Macros to facilitate calling functions in the ROM.
  4. //
  5. // Copyright (c) 2007-2009 Luminary Micro, Inc. All rights reserved.
  6. // Software License Agreement
  7. //
  8. // Luminary Micro, Inc. (LMI) is supplying this software for use solely and
  9. // exclusively on LMI's microcontroller products.
  10. //
  11. // The software is owned by LMI and/or its suppliers, and is protected under
  12. // applicable copyright laws. All rights are reserved. You may not combine
  13. // this software with "viral" open-source software in order to form a larger
  14. // program. Any use in violation of the foregoing restrictions may subject
  15. // the user to criminal sanctions under applicable laws, as well as to civil
  16. // liability for the breach of the terms and conditions of this license.
  17. //
  18. // THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
  19. // OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
  20. // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
  21. // LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
  22. // CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
  23. //
  24. // This is part of revision 4694 of the Stellaris Peripheral Driver Library.
  25. //
  26. //*****************************************************************************
  27. #ifndef __ROM_H__
  28. #define __ROM_H__
  29. //*****************************************************************************
  30. //
  31. // Pointers to the main API tables.
  32. //
  33. //*****************************************************************************
  34. #define ROM_APITABLE ((unsigned long *)0x01000010)
  35. #define ROM_VERSION (ROM_APITABLE[0])
  36. #define ROM_UARTTABLE ((unsigned long *)(ROM_APITABLE[1]))
  37. #define ROM_SSITABLE ((unsigned long *)(ROM_APITABLE[2]))
  38. #define ROM_I2CTABLE ((unsigned long *)(ROM_APITABLE[3]))
  39. #define ROM_GPIOTABLE ((unsigned long *)(ROM_APITABLE[4]))
  40. #define ROM_ADCTABLE ((unsigned long *)(ROM_APITABLE[5]))
  41. #define ROM_COMPARATORTABLE ((unsigned long *)(ROM_APITABLE[6]))
  42. #define ROM_FLASHTABLE ((unsigned long *)(ROM_APITABLE[7]))
  43. #define ROM_PWMTABLE ((unsigned long *)(ROM_APITABLE[8]))
  44. #define ROM_QEITABLE ((unsigned long *)(ROM_APITABLE[9]))
  45. #define ROM_SYSTICKTABLE ((unsigned long *)(ROM_APITABLE[10]))
  46. #define ROM_TIMERTABLE ((unsigned long *)(ROM_APITABLE[11]))
  47. #define ROM_WATCHDOGTABLE ((unsigned long *)(ROM_APITABLE[12]))
  48. #define ROM_SYSCTLTABLE ((unsigned long *)(ROM_APITABLE[13]))
  49. #define ROM_INTERRUPTTABLE ((unsigned long *)(ROM_APITABLE[14]))
  50. #define ROM_ETHERNETTABLE ((unsigned long *)(ROM_APITABLE[15]))
  51. #define ROM_USBTABLE ((unsigned long *)(ROM_APITABLE[16]))
  52. #define ROM_UDMATABLE ((unsigned long *)(ROM_APITABLE[17]))
  53. #define ROM_CANTABLE ((unsigned long *)(ROM_APITABLE[18]))
  54. #define ROM_HIBERNATETABLE ((unsigned long *)(ROM_APITABLE[19]))
  55. #define ROM_MPUTABLE ((unsigned long *)(ROM_APITABLE[20]))
  56. #define ROM_SOFTWARETABLE ((unsigned long *)(ROM_APITABLE[21]))
  57. //*****************************************************************************
  58. //
  59. // Macros for calling ROM functions in the ADC API.
  60. //
  61. //*****************************************************************************
  62. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  63. defined(TARGET_IS_TEMPEST_RB1)
  64. #define ROM_ADCSequenceDataGet \
  65. ((long (*)(unsigned long ulBase, \
  66. unsigned long ulSequenceNum, \
  67. unsigned long *pulBuffer))ROM_ADCTABLE[0])
  68. #endif
  69. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  70. defined(TARGET_IS_TEMPEST_RB1)
  71. #define ROM_ADCIntDisable \
  72. ((void (*)(unsigned long ulBase, \
  73. unsigned long ulSequenceNum))ROM_ADCTABLE[1])
  74. #endif
  75. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  76. defined(TARGET_IS_TEMPEST_RB1)
  77. #define ROM_ADCIntEnable \
  78. ((void (*)(unsigned long ulBase, \
  79. unsigned long ulSequenceNum))ROM_ADCTABLE[2])
  80. #endif
  81. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  82. defined(TARGET_IS_TEMPEST_RB1)
  83. #define ROM_ADCIntStatus \
  84. ((unsigned long (*)(unsigned long ulBase, \
  85. unsigned long ulSequenceNum, \
  86. tBoolean bMasked))ROM_ADCTABLE[3])
  87. #endif
  88. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  89. defined(TARGET_IS_TEMPEST_RB1)
  90. #define ROM_ADCIntClear \
  91. ((void (*)(unsigned long ulBase, \
  92. unsigned long ulSequenceNum))ROM_ADCTABLE[4])
  93. #endif
  94. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  95. defined(TARGET_IS_TEMPEST_RB1)
  96. #define ROM_ADCSequenceEnable \
  97. ((void (*)(unsigned long ulBase, \
  98. unsigned long ulSequenceNum))ROM_ADCTABLE[5])
  99. #endif
  100. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  101. defined(TARGET_IS_TEMPEST_RB1)
  102. #define ROM_ADCSequenceDisable \
  103. ((void (*)(unsigned long ulBase, \
  104. unsigned long ulSequenceNum))ROM_ADCTABLE[6])
  105. #endif
  106. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  107. defined(TARGET_IS_TEMPEST_RB1)
  108. #define ROM_ADCSequenceConfigure \
  109. ((void (*)(unsigned long ulBase, \
  110. unsigned long ulSequenceNum, \
  111. unsigned long ulTrigger, \
  112. unsigned long ulPriority))ROM_ADCTABLE[7])
  113. #endif
  114. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  115. defined(TARGET_IS_TEMPEST_RB1)
  116. #define ROM_ADCSequenceStepConfigure \
  117. ((void (*)(unsigned long ulBase, \
  118. unsigned long ulSequenceNum, \
  119. unsigned long ulStep, \
  120. unsigned long ulConfig))ROM_ADCTABLE[8])
  121. #endif
  122. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  123. defined(TARGET_IS_TEMPEST_RB1)
  124. #define ROM_ADCSequenceOverflow \
  125. ((long (*)(unsigned long ulBase, \
  126. unsigned long ulSequenceNum))ROM_ADCTABLE[9])
  127. #endif
  128. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  129. defined(TARGET_IS_TEMPEST_RB1)
  130. #define ROM_ADCSequenceOverflowClear \
  131. ((void (*)(unsigned long ulBase, \
  132. unsigned long ulSequenceNum))ROM_ADCTABLE[10])
  133. #endif
  134. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  135. defined(TARGET_IS_TEMPEST_RB1)
  136. #define ROM_ADCSequenceUnderflow \
  137. ((long (*)(unsigned long ulBase, \
  138. unsigned long ulSequenceNum))ROM_ADCTABLE[11])
  139. #endif
  140. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  141. defined(TARGET_IS_TEMPEST_RB1)
  142. #define ROM_ADCSequenceUnderflowClear \
  143. ((void (*)(unsigned long ulBase, \
  144. unsigned long ulSequenceNum))ROM_ADCTABLE[12])
  145. #endif
  146. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  147. defined(TARGET_IS_TEMPEST_RB1)
  148. #define ROM_ADCProcessorTrigger \
  149. ((void (*)(unsigned long ulBase, \
  150. unsigned long ulSequenceNum))ROM_ADCTABLE[13])
  151. #endif
  152. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  153. defined(TARGET_IS_TEMPEST_RB1)
  154. #define ROM_ADCHardwareOversampleConfigure \
  155. ((void (*)(unsigned long ulBase, \
  156. unsigned long ulFactor))ROM_ADCTABLE[14])
  157. #endif
  158. //*****************************************************************************
  159. //
  160. // Macros for calling ROM functions in the CAN API.
  161. //
  162. //*****************************************************************************
  163. #if defined(TARGET_IS_TEMPEST_RB1)
  164. #define ROM_CANIntClear \
  165. ((void (*)(unsigned long ulBase, \
  166. unsigned long ulIntClr))ROM_CANTABLE[0])
  167. #endif
  168. #if defined(TARGET_IS_TEMPEST_RB1)
  169. #define ROM_CANInit \
  170. ((void (*)(unsigned long ulBase))ROM_CANTABLE[1])
  171. #endif
  172. #if defined(TARGET_IS_TEMPEST_RB1)
  173. #define ROM_CANEnable \
  174. ((void (*)(unsigned long ulBase))ROM_CANTABLE[2])
  175. #endif
  176. #if defined(TARGET_IS_TEMPEST_RB1)
  177. #define ROM_CANDisable \
  178. ((void (*)(unsigned long ulBase))ROM_CANTABLE[3])
  179. #endif
  180. #if defined(TARGET_IS_TEMPEST_RB1)
  181. #define ROM_CANBitTimingSet \
  182. ((void (*)(unsigned long ulBase, \
  183. tCANBitClkParms *pClkParms))ROM_CANTABLE[4])
  184. #endif
  185. #if defined(TARGET_IS_TEMPEST_RB1)
  186. #define ROM_CANBitTimingGet \
  187. ((void (*)(unsigned long ulBase, \
  188. tCANBitClkParms *pClkParms))ROM_CANTABLE[5])
  189. #endif
  190. #if defined(TARGET_IS_TEMPEST_RB1)
  191. #define ROM_CANMessageSet \
  192. ((void (*)(unsigned long ulBase, \
  193. unsigned long ulObjID, \
  194. tCANMsgObject *pMsgObject, \
  195. tMsgObjType eMsgType))ROM_CANTABLE[6])
  196. #endif
  197. #if defined(TARGET_IS_TEMPEST_RB1)
  198. #define ROM_CANMessageGet \
  199. ((void (*)(unsigned long ulBase, \
  200. unsigned long ulObjID, \
  201. tCANMsgObject *pMsgObject, \
  202. tBoolean bClrPendingInt))ROM_CANTABLE[7])
  203. #endif
  204. #if defined(TARGET_IS_TEMPEST_RB1)
  205. #define ROM_CANStatusGet \
  206. ((unsigned long (*)(unsigned long ulBase, \
  207. tCANStsReg eStatusReg))ROM_CANTABLE[8])
  208. #endif
  209. #if defined(TARGET_IS_TEMPEST_RB1)
  210. #define ROM_CANMessageClear \
  211. ((void (*)(unsigned long ulBase, \
  212. unsigned long ulObjID))ROM_CANTABLE[9])
  213. #endif
  214. #if defined(TARGET_IS_TEMPEST_RB1)
  215. #define ROM_CANIntEnable \
  216. ((void (*)(unsigned long ulBase, \
  217. unsigned long ulIntFlags))ROM_CANTABLE[10])
  218. #endif
  219. #if defined(TARGET_IS_TEMPEST_RB1)
  220. #define ROM_CANIntDisable \
  221. ((void (*)(unsigned long ulBase, \
  222. unsigned long ulIntFlags))ROM_CANTABLE[11])
  223. #endif
  224. #if defined(TARGET_IS_TEMPEST_RB1)
  225. #define ROM_CANIntStatus \
  226. ((unsigned long (*)(unsigned long ulBase, \
  227. tCANIntStsReg eIntStsReg))ROM_CANTABLE[12])
  228. #endif
  229. #if defined(TARGET_IS_TEMPEST_RB1)
  230. #define ROM_CANRetryGet \
  231. ((tBoolean (*)(unsigned long ulBase))ROM_CANTABLE[13])
  232. #endif
  233. #if defined(TARGET_IS_TEMPEST_RB1)
  234. #define ROM_CANRetrySet \
  235. ((void (*)(unsigned long ulBase, \
  236. tBoolean bAutoRetry))ROM_CANTABLE[14])
  237. #endif
  238. #if defined(TARGET_IS_TEMPEST_RB1)
  239. #define ROM_CANErrCntrGet \
  240. ((tBoolean (*)(unsigned long ulBase, \
  241. unsigned long *pulRxCount, \
  242. unsigned long *pulTxCount))ROM_CANTABLE[15])
  243. #endif
  244. //*****************************************************************************
  245. //
  246. // Macros for calling ROM functions in the Comparator API.
  247. //
  248. //*****************************************************************************
  249. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  250. defined(TARGET_IS_TEMPEST_RB1)
  251. #define ROM_ComparatorIntClear \
  252. ((void (*)(unsigned long ulBase, \
  253. unsigned long ulComp))ROM_COMPARATORTABLE[0])
  254. #endif
  255. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  256. defined(TARGET_IS_TEMPEST_RB1)
  257. #define ROM_ComparatorConfigure \
  258. ((void (*)(unsigned long ulBase, \
  259. unsigned long ulComp, \
  260. unsigned long ulConfig))ROM_COMPARATORTABLE[1])
  261. #endif
  262. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  263. defined(TARGET_IS_TEMPEST_RB1)
  264. #define ROM_ComparatorRefSet \
  265. ((void (*)(unsigned long ulBase, \
  266. unsigned long ulRef))ROM_COMPARATORTABLE[2])
  267. #endif
  268. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  269. defined(TARGET_IS_TEMPEST_RB1)
  270. #define ROM_ComparatorValueGet \
  271. ((tBoolean (*)(unsigned long ulBase, \
  272. unsigned long ulComp))ROM_COMPARATORTABLE[3])
  273. #endif
  274. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  275. defined(TARGET_IS_TEMPEST_RB1)
  276. #define ROM_ComparatorIntEnable \
  277. ((void (*)(unsigned long ulBase, \
  278. unsigned long ulComp))ROM_COMPARATORTABLE[4])
  279. #endif
  280. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  281. defined(TARGET_IS_TEMPEST_RB1)
  282. #define ROM_ComparatorIntDisable \
  283. ((void (*)(unsigned long ulBase, \
  284. unsigned long ulComp))ROM_COMPARATORTABLE[5])
  285. #endif
  286. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  287. defined(TARGET_IS_TEMPEST_RB1)
  288. #define ROM_ComparatorIntStatus \
  289. ((tBoolean (*)(unsigned long ulBase, \
  290. unsigned long ulComp, \
  291. tBoolean bMasked))ROM_COMPARATORTABLE[6])
  292. #endif
  293. //*****************************************************************************
  294. //
  295. // Macros for calling ROM functions in the Ethernet API.
  296. //
  297. //*****************************************************************************
  298. #if defined(TARGET_IS_TEMPEST_RB1)
  299. #define ROM_EthernetIntClear \
  300. ((void (*)(unsigned long ulBase, \
  301. unsigned long ulIntFlags))ROM_ETHERNETTABLE[0])
  302. #endif
  303. #if defined(TARGET_IS_TEMPEST_RB1)
  304. #define ROM_EthernetInitExpClk \
  305. ((void (*)(unsigned long ulBase, \
  306. unsigned long ulEthClk))ROM_ETHERNETTABLE[1])
  307. #endif
  308. #if defined(TARGET_IS_TEMPEST_RB1)
  309. #define ROM_EthernetConfigSet \
  310. ((void (*)(unsigned long ulBase, \
  311. unsigned long ulConfig))ROM_ETHERNETTABLE[2])
  312. #endif
  313. #if defined(TARGET_IS_TEMPEST_RB1)
  314. #define ROM_EthernetConfigGet \
  315. ((unsigned long (*)(unsigned long ulBase))ROM_ETHERNETTABLE[3])
  316. #endif
  317. #if defined(TARGET_IS_TEMPEST_RB1)
  318. #define ROM_EthernetMACAddrSet \
  319. ((void (*)(unsigned long ulBase, \
  320. unsigned char *pucMACAddr))ROM_ETHERNETTABLE[4])
  321. #endif
  322. #if defined(TARGET_IS_TEMPEST_RB1)
  323. #define ROM_EthernetMACAddrGet \
  324. ((void (*)(unsigned long ulBase, \
  325. unsigned char *pucMACAddr))ROM_ETHERNETTABLE[5])
  326. #endif
  327. #if defined(TARGET_IS_TEMPEST_RB1)
  328. #define ROM_EthernetEnable \
  329. ((void (*)(unsigned long ulBase))ROM_ETHERNETTABLE[6])
  330. #endif
  331. #if defined(TARGET_IS_TEMPEST_RB1)
  332. #define ROM_EthernetDisable \
  333. ((void (*)(unsigned long ulBase))ROM_ETHERNETTABLE[7])
  334. #endif
  335. #if defined(TARGET_IS_TEMPEST_RB1)
  336. #define ROM_EthernetPacketAvail \
  337. ((tBoolean (*)(unsigned long ulBase))ROM_ETHERNETTABLE[8])
  338. #endif
  339. #if defined(TARGET_IS_TEMPEST_RB1)
  340. #define ROM_EthernetSpaceAvail \
  341. ((tBoolean (*)(unsigned long ulBase))ROM_ETHERNETTABLE[9])
  342. #endif
  343. #if defined(TARGET_IS_TEMPEST_RB1)
  344. #define ROM_EthernetPacketGetNonBlocking \
  345. ((long (*)(unsigned long ulBase, \
  346. unsigned char *pucBuf, \
  347. long lBufLen))ROM_ETHERNETTABLE[10])
  348. #endif
  349. #if defined(TARGET_IS_TEMPEST_RB1)
  350. #define ROM_EthernetPacketGet \
  351. ((long (*)(unsigned long ulBase, \
  352. unsigned char *pucBuf, \
  353. long lBufLen))ROM_ETHERNETTABLE[11])
  354. #endif
  355. #if defined(TARGET_IS_TEMPEST_RB1)
  356. #define ROM_EthernetPacketPutNonBlocking \
  357. ((long (*)(unsigned long ulBase, \
  358. unsigned char *pucBuf, \
  359. long lBufLen))ROM_ETHERNETTABLE[12])
  360. #endif
  361. #if defined(TARGET_IS_TEMPEST_RB1)
  362. #define ROM_EthernetPacketPut \
  363. ((long (*)(unsigned long ulBase, \
  364. unsigned char *pucBuf, \
  365. long lBufLen))ROM_ETHERNETTABLE[13])
  366. #endif
  367. #if defined(TARGET_IS_TEMPEST_RB1)
  368. #define ROM_EthernetIntEnable \
  369. ((void (*)(unsigned long ulBase, \
  370. unsigned long ulIntFlags))ROM_ETHERNETTABLE[14])
  371. #endif
  372. #if defined(TARGET_IS_TEMPEST_RB1)
  373. #define ROM_EthernetIntDisable \
  374. ((void (*)(unsigned long ulBase, \
  375. unsigned long ulIntFlags))ROM_ETHERNETTABLE[15])
  376. #endif
  377. #if defined(TARGET_IS_TEMPEST_RB1)
  378. #define ROM_EthernetIntStatus \
  379. ((unsigned long (*)(unsigned long ulBase, \
  380. tBoolean bMasked))ROM_ETHERNETTABLE[16])
  381. #endif
  382. #if defined(TARGET_IS_TEMPEST_RB1)
  383. #define ROM_EthernetPHYWrite \
  384. ((void (*)(unsigned long ulBase, \
  385. unsigned char ucRegAddr, \
  386. unsigned long ulData))ROM_ETHERNETTABLE[17])
  387. #endif
  388. #if defined(TARGET_IS_TEMPEST_RB1)
  389. #define ROM_EthernetPHYRead \
  390. ((unsigned long (*)(unsigned long ulBase, \
  391. unsigned char ucRegAddr))ROM_ETHERNETTABLE[18])
  392. #endif
  393. #if defined(TARGET_IS_TEMPEST_RB1)
  394. #define ROM_UpdateEthernet \
  395. ((void (*)(unsigned long ulClock))ROM_ETHERNETTABLE[19])
  396. #endif
  397. //*****************************************************************************
  398. //
  399. // Macros for calling ROM functions in the Flash API.
  400. //
  401. //*****************************************************************************
  402. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  403. defined(TARGET_IS_TEMPEST_RB1)
  404. #define ROM_FlashProgram \
  405. ((long (*)(unsigned long *pulData, \
  406. unsigned long ulAddress, \
  407. unsigned long ulCount))ROM_FLASHTABLE[0])
  408. #endif
  409. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  410. defined(TARGET_IS_TEMPEST_RB1)
  411. #define ROM_FlashUsecGet \
  412. ((unsigned long (*)(void))ROM_FLASHTABLE[1])
  413. #endif
  414. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  415. defined(TARGET_IS_TEMPEST_RB1)
  416. #define ROM_FlashUsecSet \
  417. ((void (*)(unsigned long ulClocks))ROM_FLASHTABLE[2])
  418. #endif
  419. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  420. defined(TARGET_IS_TEMPEST_RB1)
  421. #define ROM_FlashErase \
  422. ((long (*)(unsigned long ulAddress))ROM_FLASHTABLE[3])
  423. #endif
  424. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  425. defined(TARGET_IS_TEMPEST_RB1)
  426. #define ROM_FlashProtectGet \
  427. ((tFlashProtection (*)(unsigned long ulAddress))ROM_FLASHTABLE[4])
  428. #endif
  429. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  430. defined(TARGET_IS_TEMPEST_RB1)
  431. #define ROM_FlashProtectSet \
  432. ((long (*)(unsigned long ulAddress, \
  433. tFlashProtection eProtect))ROM_FLASHTABLE[5])
  434. #endif
  435. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  436. defined(TARGET_IS_TEMPEST_RB1)
  437. #define ROM_FlashProtectSave \
  438. ((long (*)(void))ROM_FLASHTABLE[6])
  439. #endif
  440. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  441. defined(TARGET_IS_TEMPEST_RB1)
  442. #define ROM_FlashUserGet \
  443. ((long (*)(unsigned long *pulUser0, \
  444. unsigned long *pulUser1))ROM_FLASHTABLE[7])
  445. #endif
  446. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  447. defined(TARGET_IS_TEMPEST_RB1)
  448. #define ROM_FlashUserSet \
  449. ((long (*)(unsigned long ulUser0, \
  450. unsigned long ulUser1))ROM_FLASHTABLE[8])
  451. #endif
  452. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  453. defined(TARGET_IS_TEMPEST_RB1)
  454. #define ROM_FlashUserSave \
  455. ((long (*)(void))ROM_FLASHTABLE[9])
  456. #endif
  457. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  458. defined(TARGET_IS_TEMPEST_RB1)
  459. #define ROM_FlashIntEnable \
  460. ((void (*)(unsigned long ulIntFlags))ROM_FLASHTABLE[10])
  461. #endif
  462. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  463. defined(TARGET_IS_TEMPEST_RB1)
  464. #define ROM_FlashIntDisable \
  465. ((void (*)(unsigned long ulIntFlags))ROM_FLASHTABLE[11])
  466. #endif
  467. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  468. defined(TARGET_IS_TEMPEST_RB1)
  469. #define ROM_FlashIntGetStatus \
  470. ((unsigned long (*)(tBoolean bMasked))ROM_FLASHTABLE[12])
  471. #endif
  472. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  473. defined(TARGET_IS_TEMPEST_RB1)
  474. #define ROM_FlashIntClear \
  475. ((void (*)(unsigned long ulIntFlags))ROM_FLASHTABLE[13])
  476. #endif
  477. //*****************************************************************************
  478. //
  479. // Macros for calling ROM functions in the GPIO API.
  480. //
  481. //*****************************************************************************
  482. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  483. defined(TARGET_IS_TEMPEST_RB1)
  484. #define ROM_GPIOPinWrite \
  485. ((void (*)(unsigned long ulPort, \
  486. unsigned char ucPins, \
  487. unsigned char ucVal))ROM_GPIOTABLE[0])
  488. #endif
  489. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  490. defined(TARGET_IS_TEMPEST_RB1)
  491. #define ROM_GPIODirModeSet \
  492. ((void (*)(unsigned long ulPort, \
  493. unsigned char ucPins, \
  494. unsigned long ulPinIO))ROM_GPIOTABLE[1])
  495. #endif
  496. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  497. defined(TARGET_IS_TEMPEST_RB1)
  498. #define ROM_GPIODirModeGet \
  499. ((unsigned long (*)(unsigned long ulPort, \
  500. unsigned char ucPin))ROM_GPIOTABLE[2])
  501. #endif
  502. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  503. defined(TARGET_IS_TEMPEST_RB1)
  504. #define ROM_GPIOIntTypeSet \
  505. ((void (*)(unsigned long ulPort, \
  506. unsigned char ucPins, \
  507. unsigned long ulIntType))ROM_GPIOTABLE[3])
  508. #endif
  509. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  510. defined(TARGET_IS_TEMPEST_RB1)
  511. #define ROM_GPIOIntTypeGet \
  512. ((unsigned long (*)(unsigned long ulPort, \
  513. unsigned char ucPin))ROM_GPIOTABLE[4])
  514. #endif
  515. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  516. defined(TARGET_IS_TEMPEST_RB1)
  517. #define ROM_GPIOPadConfigSet \
  518. ((void (*)(unsigned long ulPort, \
  519. unsigned char ucPins, \
  520. unsigned long ulStrength, \
  521. unsigned long ulPadType))ROM_GPIOTABLE[5])
  522. #endif
  523. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  524. defined(TARGET_IS_TEMPEST_RB1)
  525. #define ROM_GPIOPadConfigGet \
  526. ((void (*)(unsigned long ulPort, \
  527. unsigned char ucPin, \
  528. unsigned long *pulStrength, \
  529. unsigned long *pulPadType))ROM_GPIOTABLE[6])
  530. #endif
  531. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  532. defined(TARGET_IS_TEMPEST_RB1)
  533. #define ROM_GPIOPinIntEnable \
  534. ((void (*)(unsigned long ulPort, \
  535. unsigned char ucPins))ROM_GPIOTABLE[7])
  536. #endif
  537. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  538. defined(TARGET_IS_TEMPEST_RB1)
  539. #define ROM_GPIOPinIntDisable \
  540. ((void (*)(unsigned long ulPort, \
  541. unsigned char ucPins))ROM_GPIOTABLE[8])
  542. #endif
  543. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  544. defined(TARGET_IS_TEMPEST_RB1)
  545. #define ROM_GPIOPinIntStatus \
  546. ((long (*)(unsigned long ulPort, \
  547. tBoolean bMasked))ROM_GPIOTABLE[9])
  548. #endif
  549. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  550. defined(TARGET_IS_TEMPEST_RB1)
  551. #define ROM_GPIOPinIntClear \
  552. ((void (*)(unsigned long ulPort, \
  553. unsigned char ucPins))ROM_GPIOTABLE[10])
  554. #endif
  555. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  556. defined(TARGET_IS_TEMPEST_RB1)
  557. #define ROM_GPIOPinRead \
  558. ((long (*)(unsigned long ulPort, \
  559. unsigned char ucPins))ROM_GPIOTABLE[11])
  560. #endif
  561. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  562. defined(TARGET_IS_TEMPEST_RB1)
  563. #define ROM_GPIOPinTypeCAN \
  564. ((void (*)(unsigned long ulPort, \
  565. unsigned char ucPins))ROM_GPIOTABLE[12])
  566. #endif
  567. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  568. defined(TARGET_IS_TEMPEST_RB1)
  569. #define ROM_GPIOPinTypeComparator \
  570. ((void (*)(unsigned long ulPort, \
  571. unsigned char ucPins))ROM_GPIOTABLE[13])
  572. #endif
  573. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  574. defined(TARGET_IS_TEMPEST_RB1)
  575. #define ROM_GPIOPinTypeGPIOInput \
  576. ((void (*)(unsigned long ulPort, \
  577. unsigned char ucPins))ROM_GPIOTABLE[14])
  578. #endif
  579. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  580. defined(TARGET_IS_TEMPEST_RB1)
  581. #define ROM_GPIOPinTypeGPIOOutput \
  582. ((void (*)(unsigned long ulPort, \
  583. unsigned char ucPins))ROM_GPIOTABLE[15])
  584. #endif
  585. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  586. defined(TARGET_IS_TEMPEST_RB1)
  587. #define ROM_GPIOPinTypeI2C \
  588. ((void (*)(unsigned long ulPort, \
  589. unsigned char ucPins))ROM_GPIOTABLE[16])
  590. #endif
  591. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  592. defined(TARGET_IS_TEMPEST_RB1)
  593. #define ROM_GPIOPinTypePWM \
  594. ((void (*)(unsigned long ulPort, \
  595. unsigned char ucPins))ROM_GPIOTABLE[17])
  596. #endif
  597. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  598. defined(TARGET_IS_TEMPEST_RB1)
  599. #define ROM_GPIOPinTypeQEI \
  600. ((void (*)(unsigned long ulPort, \
  601. unsigned char ucPins))ROM_GPIOTABLE[18])
  602. #endif
  603. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  604. defined(TARGET_IS_TEMPEST_RB1)
  605. #define ROM_GPIOPinTypeSSI \
  606. ((void (*)(unsigned long ulPort, \
  607. unsigned char ucPins))ROM_GPIOTABLE[19])
  608. #endif
  609. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  610. defined(TARGET_IS_TEMPEST_RB1)
  611. #define ROM_GPIOPinTypeTimer \
  612. ((void (*)(unsigned long ulPort, \
  613. unsigned char ucPins))ROM_GPIOTABLE[20])
  614. #endif
  615. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  616. defined(TARGET_IS_TEMPEST_RB1)
  617. #define ROM_GPIOPinTypeUART \
  618. ((void (*)(unsigned long ulPort, \
  619. unsigned char ucPins))ROM_GPIOTABLE[21])
  620. #endif
  621. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  622. defined(TARGET_IS_TEMPEST_RB1)
  623. #define ROM_GPIOPinTypeGPIOOutputOD \
  624. ((void (*)(unsigned long ulPort, \
  625. unsigned char ucPins))ROM_GPIOTABLE[22])
  626. #endif
  627. #if defined(TARGET_IS_TEMPEST_RB1)
  628. #define ROM_GPIOPinTypeADC \
  629. ((void (*)(unsigned long ulPort, \
  630. unsigned char ucPins))ROM_GPIOTABLE[23])
  631. #endif
  632. #if defined(TARGET_IS_TEMPEST_RB1)
  633. #define ROM_GPIOPinTypeUSBDigital \
  634. ((void (*)(unsigned long ulPort, \
  635. unsigned char ucPins))ROM_GPIOTABLE[24])
  636. #endif
  637. //*****************************************************************************
  638. //
  639. // Macros for calling ROM functions in the Hibernate API.
  640. //
  641. //*****************************************************************************
  642. #if defined(TARGET_IS_TEMPEST_RB1)
  643. #define ROM_HibernateIntClear \
  644. ((void (*)(unsigned long ulIntFlags))ROM_HIBERNATETABLE[0])
  645. #endif
  646. #if defined(TARGET_IS_TEMPEST_RB1)
  647. #define ROM_HibernateEnableExpClk \
  648. ((void (*)(unsigned long ulHibClk))ROM_HIBERNATETABLE[1])
  649. #endif
  650. #if defined(TARGET_IS_TEMPEST_RB1)
  651. #define ROM_HibernateDisable \
  652. ((void (*)(void))ROM_HIBERNATETABLE[2])
  653. #endif
  654. #if defined(TARGET_IS_TEMPEST_RB1)
  655. #define ROM_HibernateClockSelect \
  656. ((void (*)(unsigned long ulClockInput))ROM_HIBERNATETABLE[3])
  657. #endif
  658. #if defined(TARGET_IS_TEMPEST_RB1)
  659. #define ROM_HibernateRTCEnable \
  660. ((void (*)(void))ROM_HIBERNATETABLE[4])
  661. #endif
  662. #if defined(TARGET_IS_TEMPEST_RB1)
  663. #define ROM_HibernateRTCDisable \
  664. ((void (*)(void))ROM_HIBERNATETABLE[5])
  665. #endif
  666. #if defined(TARGET_IS_TEMPEST_RB1)
  667. #define ROM_HibernateWakeSet \
  668. ((void (*)(unsigned long ulWakeFlags))ROM_HIBERNATETABLE[6])
  669. #endif
  670. #if defined(TARGET_IS_TEMPEST_RB1)
  671. #define ROM_HibernateWakeGet \
  672. ((unsigned long (*)(void))ROM_HIBERNATETABLE[7])
  673. #endif
  674. #if defined(TARGET_IS_TEMPEST_RB1)
  675. #define ROM_HibernateLowBatSet \
  676. ((void (*)(unsigned long ulLowBatFlags))ROM_HIBERNATETABLE[8])
  677. #endif
  678. #if defined(TARGET_IS_TEMPEST_RB1)
  679. #define ROM_HibernateLowBatGet \
  680. ((unsigned long (*)(void))ROM_HIBERNATETABLE[9])
  681. #endif
  682. #if defined(TARGET_IS_TEMPEST_RB1)
  683. #define ROM_HibernateRTCSet \
  684. ((void (*)(unsigned long ulRTCValue))ROM_HIBERNATETABLE[10])
  685. #endif
  686. #if defined(TARGET_IS_TEMPEST_RB1)
  687. #define ROM_HibernateRTCGet \
  688. ((unsigned long (*)(void))ROM_HIBERNATETABLE[11])
  689. #endif
  690. #if defined(TARGET_IS_TEMPEST_RB1)
  691. #define ROM_HibernateRTCMatch0Set \
  692. ((void (*)(unsigned long ulMatch))ROM_HIBERNATETABLE[12])
  693. #endif
  694. #if defined(TARGET_IS_TEMPEST_RB1)
  695. #define ROM_HibernateRTCMatch0Get \
  696. ((unsigned long (*)(void))ROM_HIBERNATETABLE[13])
  697. #endif
  698. #if defined(TARGET_IS_TEMPEST_RB1)
  699. #define ROM_HibernateRTCMatch1Set \
  700. ((void (*)(unsigned long ulMatch))ROM_HIBERNATETABLE[14])
  701. #endif
  702. #if defined(TARGET_IS_TEMPEST_RB1)
  703. #define ROM_HibernateRTCMatch1Get \
  704. ((unsigned long (*)(void))ROM_HIBERNATETABLE[15])
  705. #endif
  706. #if defined(TARGET_IS_TEMPEST_RB1)
  707. #define ROM_HibernateRTCTrimSet \
  708. ((void (*)(unsigned long ulTrim))ROM_HIBERNATETABLE[16])
  709. #endif
  710. #if defined(TARGET_IS_TEMPEST_RB1)
  711. #define ROM_HibernateRTCTrimGet \
  712. ((unsigned long (*)(void))ROM_HIBERNATETABLE[17])
  713. #endif
  714. #if defined(TARGET_IS_TEMPEST_RB1)
  715. #define ROM_HibernateDataSet \
  716. ((void (*)(unsigned long *pulData, \
  717. unsigned long ulCount))ROM_HIBERNATETABLE[18])
  718. #endif
  719. #if defined(TARGET_IS_TEMPEST_RB1)
  720. #define ROM_HibernateDataGet \
  721. ((void (*)(unsigned long *pulData, \
  722. unsigned long ulCount))ROM_HIBERNATETABLE[19])
  723. #endif
  724. #if defined(TARGET_IS_TEMPEST_RB1)
  725. #define ROM_HibernateRequest \
  726. ((void (*)(void))ROM_HIBERNATETABLE[20])
  727. #endif
  728. #if defined(TARGET_IS_TEMPEST_RB1)
  729. #define ROM_HibernateIntEnable \
  730. ((void (*)(unsigned long ulIntFlags))ROM_HIBERNATETABLE[21])
  731. #endif
  732. #if defined(TARGET_IS_TEMPEST_RB1)
  733. #define ROM_HibernateIntDisable \
  734. ((void (*)(unsigned long ulIntFlags))ROM_HIBERNATETABLE[22])
  735. #endif
  736. #if defined(TARGET_IS_TEMPEST_RB1)
  737. #define ROM_HibernateIntStatus \
  738. ((unsigned long (*)(tBoolean bMasked))ROM_HIBERNATETABLE[23])
  739. #endif
  740. #if defined(TARGET_IS_TEMPEST_RB1)
  741. #define ROM_HibernateIsActive \
  742. ((unsigned int (*)(void))ROM_HIBERNATETABLE[24])
  743. #endif
  744. //*****************************************************************************
  745. //
  746. // Macros for calling ROM functions in the I2C API.
  747. //
  748. //*****************************************************************************
  749. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  750. defined(TARGET_IS_TEMPEST_RB1)
  751. #define ROM_I2CMasterDataPut \
  752. ((void (*)(unsigned long ulBase, \
  753. unsigned char ucData))ROM_I2CTABLE[0])
  754. #endif
  755. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  756. defined(TARGET_IS_TEMPEST_RB1)
  757. #define ROM_I2CMasterInitExpClk \
  758. ((void (*)(unsigned long ulBase, \
  759. unsigned long ulI2CClk, \
  760. tBoolean bFast))ROM_I2CTABLE[1])
  761. #endif
  762. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  763. defined(TARGET_IS_TEMPEST_RB1)
  764. #define ROM_I2CSlaveInit \
  765. ((void (*)(unsigned long ulBase, \
  766. unsigned char ucSlaveAddr))ROM_I2CTABLE[2])
  767. #endif
  768. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  769. defined(TARGET_IS_TEMPEST_RB1)
  770. #define ROM_I2CMasterEnable \
  771. ((void (*)(unsigned long ulBase))ROM_I2CTABLE[3])
  772. #endif
  773. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  774. defined(TARGET_IS_TEMPEST_RB1)
  775. #define ROM_I2CSlaveEnable \
  776. ((void (*)(unsigned long ulBase))ROM_I2CTABLE[4])
  777. #endif
  778. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  779. defined(TARGET_IS_TEMPEST_RB1)
  780. #define ROM_I2CMasterDisable \
  781. ((void (*)(unsigned long ulBase))ROM_I2CTABLE[5])
  782. #endif
  783. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  784. defined(TARGET_IS_TEMPEST_RB1)
  785. #define ROM_I2CSlaveDisable \
  786. ((void (*)(unsigned long ulBase))ROM_I2CTABLE[6])
  787. #endif
  788. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  789. defined(TARGET_IS_TEMPEST_RB1)
  790. #define ROM_I2CMasterIntEnable \
  791. ((void (*)(unsigned long ulBase))ROM_I2CTABLE[7])
  792. #endif
  793. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  794. defined(TARGET_IS_TEMPEST_RB1)
  795. #define ROM_I2CSlaveIntEnable \
  796. ((void (*)(unsigned long ulBase))ROM_I2CTABLE[8])
  797. #endif
  798. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  799. defined(TARGET_IS_TEMPEST_RB1)
  800. #define ROM_I2CMasterIntDisable \
  801. ((void (*)(unsigned long ulBase))ROM_I2CTABLE[9])
  802. #endif
  803. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  804. defined(TARGET_IS_TEMPEST_RB1)
  805. #define ROM_I2CSlaveIntDisable \
  806. ((void (*)(unsigned long ulBase))ROM_I2CTABLE[10])
  807. #endif
  808. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  809. defined(TARGET_IS_TEMPEST_RB1)
  810. #define ROM_I2CMasterIntStatus \
  811. ((tBoolean (*)(unsigned long ulBase, \
  812. tBoolean bMasked))ROM_I2CTABLE[11])
  813. #endif
  814. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  815. defined(TARGET_IS_TEMPEST_RB1)
  816. #define ROM_I2CSlaveIntStatus \
  817. ((tBoolean (*)(unsigned long ulBase, \
  818. tBoolean bMasked))ROM_I2CTABLE[12])
  819. #endif
  820. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  821. defined(TARGET_IS_TEMPEST_RB1)
  822. #define ROM_I2CMasterIntClear \
  823. ((void (*)(unsigned long ulBase))ROM_I2CTABLE[13])
  824. #endif
  825. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  826. defined(TARGET_IS_TEMPEST_RB1)
  827. #define ROM_I2CSlaveIntClear \
  828. ((void (*)(unsigned long ulBase))ROM_I2CTABLE[14])
  829. #endif
  830. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  831. defined(TARGET_IS_TEMPEST_RB1)
  832. #define ROM_I2CMasterSlaveAddrSet \
  833. ((void (*)(unsigned long ulBase, \
  834. unsigned char ucSlaveAddr, \
  835. tBoolean bReceive))ROM_I2CTABLE[15])
  836. #endif
  837. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  838. defined(TARGET_IS_TEMPEST_RB1)
  839. #define ROM_I2CMasterBusy \
  840. ((tBoolean (*)(unsigned long ulBase))ROM_I2CTABLE[16])
  841. #endif
  842. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  843. defined(TARGET_IS_TEMPEST_RB1)
  844. #define ROM_I2CMasterBusBusy \
  845. ((tBoolean (*)(unsigned long ulBase))ROM_I2CTABLE[17])
  846. #endif
  847. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  848. defined(TARGET_IS_TEMPEST_RB1)
  849. #define ROM_I2CMasterControl \
  850. ((void (*)(unsigned long ulBase, \
  851. unsigned long ulCmd))ROM_I2CTABLE[18])
  852. #endif
  853. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  854. defined(TARGET_IS_TEMPEST_RB1)
  855. #define ROM_I2CMasterErr \
  856. ((unsigned long (*)(unsigned long ulBase))ROM_I2CTABLE[19])
  857. #endif
  858. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  859. defined(TARGET_IS_TEMPEST_RB1)
  860. #define ROM_I2CMasterDataGet \
  861. ((unsigned long (*)(unsigned long ulBase))ROM_I2CTABLE[20])
  862. #endif
  863. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  864. defined(TARGET_IS_TEMPEST_RB1)
  865. #define ROM_I2CSlaveStatus \
  866. ((unsigned long (*)(unsigned long ulBase))ROM_I2CTABLE[21])
  867. #endif
  868. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  869. defined(TARGET_IS_TEMPEST_RB1)
  870. #define ROM_I2CSlaveDataPut \
  871. ((void (*)(unsigned long ulBase, \
  872. unsigned char ucData))ROM_I2CTABLE[22])
  873. #endif
  874. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  875. defined(TARGET_IS_TEMPEST_RB1)
  876. #define ROM_I2CSlaveDataGet \
  877. ((unsigned long (*)(unsigned long ulBase))ROM_I2CTABLE[23])
  878. #endif
  879. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  880. defined(TARGET_IS_TEMPEST_RB1)
  881. #define ROM_UpdateI2C \
  882. ((void (*)(void))ROM_I2CTABLE[24])
  883. #endif
  884. //*****************************************************************************
  885. //
  886. // Macros for calling ROM functions in the Interrupt API.
  887. //
  888. //*****************************************************************************
  889. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  890. defined(TARGET_IS_TEMPEST_RB1)
  891. #define ROM_IntEnable \
  892. ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[0])
  893. #endif
  894. #if defined(TARGET_IS_TEMPEST_RB1)
  895. #define ROM_IntMasterEnable \
  896. ((tBoolean (*)(void))ROM_INTERRUPTTABLE[1])
  897. #endif
  898. #if defined(TARGET_IS_TEMPEST_RB1)
  899. #define ROM_IntMasterDisable \
  900. ((tBoolean (*)(void))ROM_INTERRUPTTABLE[2])
  901. #endif
  902. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  903. defined(TARGET_IS_TEMPEST_RB1)
  904. #define ROM_IntDisable \
  905. ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[3])
  906. #endif
  907. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  908. defined(TARGET_IS_TEMPEST_RB1)
  909. #define ROM_IntPriorityGroupingSet \
  910. ((void (*)(unsigned long ulBits))ROM_INTERRUPTTABLE[4])
  911. #endif
  912. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  913. defined(TARGET_IS_TEMPEST_RB1)
  914. #define ROM_IntPriorityGroupingGet \
  915. ((unsigned long (*)(void))ROM_INTERRUPTTABLE[5])
  916. #endif
  917. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  918. defined(TARGET_IS_TEMPEST_RB1)
  919. #define ROM_IntPrioritySet \
  920. ((void (*)(unsigned long ulInterrupt, \
  921. unsigned char ucPriority))ROM_INTERRUPTTABLE[6])
  922. #endif
  923. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  924. defined(TARGET_IS_TEMPEST_RB1)
  925. #define ROM_IntPriorityGet \
  926. ((long (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[7])
  927. #endif
  928. //*****************************************************************************
  929. //
  930. // Macros for calling ROM functions in the MPU API.
  931. //
  932. //*****************************************************************************
  933. #if defined(TARGET_IS_TEMPEST_RB1)
  934. #define ROM_MPUEnable \
  935. ((void (*)(unsigned long ulMPUConfig))ROM_MPUTABLE[0])
  936. #endif
  937. #if defined(TARGET_IS_TEMPEST_RB1)
  938. #define ROM_MPUDisable \
  939. ((void (*)(void))ROM_MPUTABLE[1])
  940. #endif
  941. #if defined(TARGET_IS_TEMPEST_RB1)
  942. #define ROM_MPURegionCountGet \
  943. ((unsigned long (*)(void))ROM_MPUTABLE[2])
  944. #endif
  945. #if defined(TARGET_IS_TEMPEST_RB1)
  946. #define ROM_MPURegionEnable \
  947. ((void (*)(unsigned long ulRegion))ROM_MPUTABLE[3])
  948. #endif
  949. #if defined(TARGET_IS_TEMPEST_RB1)
  950. #define ROM_MPURegionDisable \
  951. ((void (*)(unsigned long ulRegion))ROM_MPUTABLE[4])
  952. #endif
  953. #if defined(TARGET_IS_TEMPEST_RB1)
  954. #define ROM_MPURegionSet \
  955. ((void (*)(unsigned long ulRegion, \
  956. unsigned long ulAddr, \
  957. unsigned long ulFlags))ROM_MPUTABLE[5])
  958. #endif
  959. #if defined(TARGET_IS_TEMPEST_RB1)
  960. #define ROM_MPURegionGet \
  961. ((void (*)(unsigned long ulRegion, \
  962. unsigned long *pulAddr, \
  963. unsigned long *pulFlags))ROM_MPUTABLE[6])
  964. #endif
  965. //*****************************************************************************
  966. //
  967. // Macros for calling ROM functions in the PWM API.
  968. //
  969. //*****************************************************************************
  970. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  971. defined(TARGET_IS_TEMPEST_RB1)
  972. #define ROM_PWMPulseWidthSet \
  973. ((void (*)(unsigned long ulBase, \
  974. unsigned long ulPWMOut, \
  975. unsigned long ulWidth))ROM_PWMTABLE[0])
  976. #endif
  977. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  978. defined(TARGET_IS_TEMPEST_RB1)
  979. #define ROM_PWMGenConfigure \
  980. ((void (*)(unsigned long ulBase, \
  981. unsigned long ulGen, \
  982. unsigned long ulConfig))ROM_PWMTABLE[1])
  983. #endif
  984. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  985. defined(TARGET_IS_TEMPEST_RB1)
  986. #define ROM_PWMGenPeriodSet \
  987. ((void (*)(unsigned long ulBase, \
  988. unsigned long ulGen, \
  989. unsigned long ulPeriod))ROM_PWMTABLE[2])
  990. #endif
  991. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  992. defined(TARGET_IS_TEMPEST_RB1)
  993. #define ROM_PWMGenPeriodGet \
  994. ((unsigned long (*)(unsigned long ulBase, \
  995. unsigned long ulGen))ROM_PWMTABLE[3])
  996. #endif
  997. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  998. defined(TARGET_IS_TEMPEST_RB1)
  999. #define ROM_PWMGenEnable \
  1000. ((void (*)(unsigned long ulBase, \
  1001. unsigned long ulGen))ROM_PWMTABLE[4])
  1002. #endif
  1003. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1004. defined(TARGET_IS_TEMPEST_RB1)
  1005. #define ROM_PWMGenDisable \
  1006. ((void (*)(unsigned long ulBase, \
  1007. unsigned long ulGen))ROM_PWMTABLE[5])
  1008. #endif
  1009. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1010. defined(TARGET_IS_TEMPEST_RB1)
  1011. #define ROM_PWMPulseWidthGet \
  1012. ((unsigned long (*)(unsigned long ulBase, \
  1013. unsigned long ulPWMOut))ROM_PWMTABLE[6])
  1014. #endif
  1015. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1016. defined(TARGET_IS_TEMPEST_RB1)
  1017. #define ROM_PWMDeadBandEnable \
  1018. ((void (*)(unsigned long ulBase, \
  1019. unsigned long ulGen, \
  1020. unsigned short usRise, \
  1021. unsigned short usFall))ROM_PWMTABLE[7])
  1022. #endif
  1023. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1024. defined(TARGET_IS_TEMPEST_RB1)
  1025. #define ROM_PWMDeadBandDisable \
  1026. ((void (*)(unsigned long ulBase, \
  1027. unsigned long ulGen))ROM_PWMTABLE[8])
  1028. #endif
  1029. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1030. defined(TARGET_IS_TEMPEST_RB1)
  1031. #define ROM_PWMSyncUpdate \
  1032. ((void (*)(unsigned long ulBase, \
  1033. unsigned long ulGenBits))ROM_PWMTABLE[9])
  1034. #endif
  1035. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1036. defined(TARGET_IS_TEMPEST_RB1)
  1037. #define ROM_PWMSyncTimeBase \
  1038. ((void (*)(unsigned long ulBase, \
  1039. unsigned long ulGenBits))ROM_PWMTABLE[10])
  1040. #endif
  1041. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1042. defined(TARGET_IS_TEMPEST_RB1)
  1043. #define ROM_PWMOutputState \
  1044. ((void (*)(unsigned long ulBase, \
  1045. unsigned long ulPWMOutBits, \
  1046. tBoolean bEnable))ROM_PWMTABLE[11])
  1047. #endif
  1048. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1049. defined(TARGET_IS_TEMPEST_RB1)
  1050. #define ROM_PWMOutputInvert \
  1051. ((void (*)(unsigned long ulBase, \
  1052. unsigned long ulPWMOutBits, \
  1053. tBoolean bInvert))ROM_PWMTABLE[12])
  1054. #endif
  1055. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1056. defined(TARGET_IS_TEMPEST_RB1)
  1057. #define ROM_PWMOutputFault \
  1058. ((void (*)(unsigned long ulBase, \
  1059. unsigned long ulPWMOutBits, \
  1060. tBoolean bFaultSuppress))ROM_PWMTABLE[13])
  1061. #endif
  1062. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1063. defined(TARGET_IS_TEMPEST_RB1)
  1064. #define ROM_PWMGenIntTrigEnable \
  1065. ((void (*)(unsigned long ulBase, \
  1066. unsigned long ulGen, \
  1067. unsigned long ulIntTrig))ROM_PWMTABLE[14])
  1068. #endif
  1069. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1070. defined(TARGET_IS_TEMPEST_RB1)
  1071. #define ROM_PWMGenIntTrigDisable \
  1072. ((void (*)(unsigned long ulBase, \
  1073. unsigned long ulGen, \
  1074. unsigned long ulIntTrig))ROM_PWMTABLE[15])
  1075. #endif
  1076. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1077. defined(TARGET_IS_TEMPEST_RB1)
  1078. #define ROM_PWMGenIntStatus \
  1079. ((unsigned long (*)(unsigned long ulBase, \
  1080. unsigned long ulGen, \
  1081. tBoolean bMasked))ROM_PWMTABLE[16])
  1082. #endif
  1083. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1084. defined(TARGET_IS_TEMPEST_RB1)
  1085. #define ROM_PWMGenIntClear \
  1086. ((void (*)(unsigned long ulBase, \
  1087. unsigned long ulGen, \
  1088. unsigned long ulInts))ROM_PWMTABLE[17])
  1089. #endif
  1090. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1091. defined(TARGET_IS_TEMPEST_RB1)
  1092. #define ROM_PWMIntEnable \
  1093. ((void (*)(unsigned long ulBase, \
  1094. unsigned long ulGenFault))ROM_PWMTABLE[18])
  1095. #endif
  1096. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1097. defined(TARGET_IS_TEMPEST_RB1)
  1098. #define ROM_PWMIntDisable \
  1099. ((void (*)(unsigned long ulBase, \
  1100. unsigned long ulGenFault))ROM_PWMTABLE[19])
  1101. #endif
  1102. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1103. defined(TARGET_IS_TEMPEST_RB1)
  1104. #define ROM_PWMFaultIntClear \
  1105. ((void (*)(unsigned long ulBase))ROM_PWMTABLE[20])
  1106. #endif
  1107. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1108. defined(TARGET_IS_TEMPEST_RB1)
  1109. #define ROM_PWMIntStatus \
  1110. ((unsigned long (*)(unsigned long ulBase, \
  1111. tBoolean bMasked))ROM_PWMTABLE[21])
  1112. #endif
  1113. #if defined(TARGET_IS_TEMPEST_RB1)
  1114. #define ROM_PWMOutputFaultLevel \
  1115. ((void (*)(unsigned long ulBase, \
  1116. unsigned long ulPWMOutBits, \
  1117. tBoolean bDriveHigh))ROM_PWMTABLE[22])
  1118. #endif
  1119. #if defined(TARGET_IS_TEMPEST_RB1)
  1120. #define ROM_PWMFaultIntClearExt \
  1121. ((void (*)(unsigned long ulBase, \
  1122. unsigned long ulFaultInts))ROM_PWMTABLE[23])
  1123. #endif
  1124. #if defined(TARGET_IS_TEMPEST_RB1)
  1125. #define ROM_PWMGenFaultConfigure \
  1126. ((void (*)(unsigned long ulBase, \
  1127. unsigned long ulGen, \
  1128. unsigned long ulMinFaultPeriod, \
  1129. unsigned long ulFaultSenses))ROM_PWMTABLE[24])
  1130. #endif
  1131. #if defined(TARGET_IS_TEMPEST_RB1)
  1132. #define ROM_PWMGenFaultTriggerSet \
  1133. ((void (*)(unsigned long ulBase, \
  1134. unsigned long ulGen, \
  1135. unsigned long ulGroup, \
  1136. unsigned long ulFaultTriggers))ROM_PWMTABLE[25])
  1137. #endif
  1138. #if defined(TARGET_IS_TEMPEST_RB1)
  1139. #define ROM_PWMGenFaultTriggerGet \
  1140. ((unsigned long (*)(unsigned long ulBase, \
  1141. unsigned long ulGen, \
  1142. unsigned long ulGroup))ROM_PWMTABLE[26])
  1143. #endif
  1144. #if defined(TARGET_IS_TEMPEST_RB1)
  1145. #define ROM_PWMGenFaultStatus \
  1146. ((unsigned long (*)(unsigned long ulBase, \
  1147. unsigned long ulGen, \
  1148. unsigned long ulGroup))ROM_PWMTABLE[27])
  1149. #endif
  1150. #if defined(TARGET_IS_TEMPEST_RB1)
  1151. #define ROM_PWMGenFaultClear \
  1152. ((void (*)(unsigned long ulBase, \
  1153. unsigned long ulGen, \
  1154. unsigned long ulGroup, \
  1155. unsigned long ulFaultTriggers))ROM_PWMTABLE[28])
  1156. #endif
  1157. //*****************************************************************************
  1158. //
  1159. // Macros for calling ROM functions in the QEI API.
  1160. //
  1161. //*****************************************************************************
  1162. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1163. defined(TARGET_IS_TEMPEST_RB1)
  1164. #define ROM_QEIPositionGet \
  1165. ((unsigned long (*)(unsigned long ulBase))ROM_QEITABLE[0])
  1166. #endif
  1167. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1168. defined(TARGET_IS_TEMPEST_RB1)
  1169. #define ROM_QEIEnable \
  1170. ((void (*)(unsigned long ulBase))ROM_QEITABLE[1])
  1171. #endif
  1172. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1173. defined(TARGET_IS_TEMPEST_RB1)
  1174. #define ROM_QEIDisable \
  1175. ((void (*)(unsigned long ulBase))ROM_QEITABLE[2])
  1176. #endif
  1177. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1178. defined(TARGET_IS_TEMPEST_RB1)
  1179. #define ROM_QEIConfigure \
  1180. ((void (*)(unsigned long ulBase, \
  1181. unsigned long ulConfig, \
  1182. unsigned long ulMaxPosition))ROM_QEITABLE[3])
  1183. #endif
  1184. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1185. defined(TARGET_IS_TEMPEST_RB1)
  1186. #define ROM_QEIPositionSet \
  1187. ((void (*)(unsigned long ulBase, \
  1188. unsigned long ulPosition))ROM_QEITABLE[4])
  1189. #endif
  1190. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1191. defined(TARGET_IS_TEMPEST_RB1)
  1192. #define ROM_QEIDirectionGet \
  1193. ((long (*)(unsigned long ulBase))ROM_QEITABLE[5])
  1194. #endif
  1195. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1196. defined(TARGET_IS_TEMPEST_RB1)
  1197. #define ROM_QEIErrorGet \
  1198. ((tBoolean (*)(unsigned long ulBase))ROM_QEITABLE[6])
  1199. #endif
  1200. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1201. defined(TARGET_IS_TEMPEST_RB1)
  1202. #define ROM_QEIVelocityEnable \
  1203. ((void (*)(unsigned long ulBase))ROM_QEITABLE[7])
  1204. #endif
  1205. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1206. defined(TARGET_IS_TEMPEST_RB1)
  1207. #define ROM_QEIVelocityDisable \
  1208. ((void (*)(unsigned long ulBase))ROM_QEITABLE[8])
  1209. #endif
  1210. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1211. defined(TARGET_IS_TEMPEST_RB1)
  1212. #define ROM_QEIVelocityConfigure \
  1213. ((void (*)(unsigned long ulBase, \
  1214. unsigned long ulPreDiv, \
  1215. unsigned long ulPeriod))ROM_QEITABLE[9])
  1216. #endif
  1217. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1218. defined(TARGET_IS_TEMPEST_RB1)
  1219. #define ROM_QEIVelocityGet \
  1220. ((unsigned long (*)(unsigned long ulBase))ROM_QEITABLE[10])
  1221. #endif
  1222. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1223. defined(TARGET_IS_TEMPEST_RB1)
  1224. #define ROM_QEIIntEnable \
  1225. ((void (*)(unsigned long ulBase, \
  1226. unsigned long ulIntFlags))ROM_QEITABLE[11])
  1227. #endif
  1228. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1229. defined(TARGET_IS_TEMPEST_RB1)
  1230. #define ROM_QEIIntDisable \
  1231. ((void (*)(unsigned long ulBase, \
  1232. unsigned long ulIntFlags))ROM_QEITABLE[12])
  1233. #endif
  1234. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1235. defined(TARGET_IS_TEMPEST_RB1)
  1236. #define ROM_QEIIntStatus \
  1237. ((unsigned long (*)(unsigned long ulBase, \
  1238. tBoolean bMasked))ROM_QEITABLE[13])
  1239. #endif
  1240. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1241. defined(TARGET_IS_TEMPEST_RB1)
  1242. #define ROM_QEIIntClear \
  1243. ((void (*)(unsigned long ulBase, \
  1244. unsigned long ulIntFlags))ROM_QEITABLE[14])
  1245. #endif
  1246. //*****************************************************************************
  1247. //
  1248. // Macros for calling ROM functions in the SSI API.
  1249. //
  1250. //*****************************************************************************
  1251. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1252. defined(TARGET_IS_TEMPEST_RB1)
  1253. #define ROM_SSIDataPut \
  1254. ((void (*)(unsigned long ulBase, \
  1255. unsigned long ulData))ROM_SSITABLE[0])
  1256. #endif
  1257. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1258. defined(TARGET_IS_TEMPEST_RB1)
  1259. #define ROM_SSIConfigSetExpClk \
  1260. ((void (*)(unsigned long ulBase, \
  1261. unsigned long ulSSIClk, \
  1262. unsigned long ulProtocol, \
  1263. unsigned long ulMode, \
  1264. unsigned long ulBitRate, \
  1265. unsigned long ulDataWidth))ROM_SSITABLE[1])
  1266. #endif
  1267. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1268. defined(TARGET_IS_TEMPEST_RB1)
  1269. #define ROM_SSIEnable \
  1270. ((void (*)(unsigned long ulBase))ROM_SSITABLE[2])
  1271. #endif
  1272. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1273. defined(TARGET_IS_TEMPEST_RB1)
  1274. #define ROM_SSIDisable \
  1275. ((void (*)(unsigned long ulBase))ROM_SSITABLE[3])
  1276. #endif
  1277. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1278. defined(TARGET_IS_TEMPEST_RB1)
  1279. #define ROM_SSIIntEnable \
  1280. ((void (*)(unsigned long ulBase, \
  1281. unsigned long ulIntFlags))ROM_SSITABLE[4])
  1282. #endif
  1283. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1284. defined(TARGET_IS_TEMPEST_RB1)
  1285. #define ROM_SSIIntDisable \
  1286. ((void (*)(unsigned long ulBase, \
  1287. unsigned long ulIntFlags))ROM_SSITABLE[5])
  1288. #endif
  1289. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1290. defined(TARGET_IS_TEMPEST_RB1)
  1291. #define ROM_SSIIntStatus \
  1292. ((unsigned long (*)(unsigned long ulBase, \
  1293. tBoolean bMasked))ROM_SSITABLE[6])
  1294. #endif
  1295. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1296. defined(TARGET_IS_TEMPEST_RB1)
  1297. #define ROM_SSIIntClear \
  1298. ((void (*)(unsigned long ulBase, \
  1299. unsigned long ulIntFlags))ROM_SSITABLE[7])
  1300. #endif
  1301. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1302. defined(TARGET_IS_TEMPEST_RB1)
  1303. #define ROM_SSIDataPutNonBlocking \
  1304. ((long (*)(unsigned long ulBase, \
  1305. unsigned long ulData))ROM_SSITABLE[8])
  1306. #endif
  1307. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1308. defined(TARGET_IS_TEMPEST_RB1)
  1309. #define ROM_SSIDataGet \
  1310. ((void (*)(unsigned long ulBase, \
  1311. unsigned long *pulData))ROM_SSITABLE[9])
  1312. #endif
  1313. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1314. defined(TARGET_IS_TEMPEST_RB1)
  1315. #define ROM_SSIDataGetNonBlocking \
  1316. ((long (*)(unsigned long ulBase, \
  1317. unsigned long *pulData))ROM_SSITABLE[10])
  1318. #endif
  1319. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1320. defined(TARGET_IS_TEMPEST_RB1)
  1321. #define ROM_UpdateSSI \
  1322. ((void (*)(void))ROM_SSITABLE[11])
  1323. #endif
  1324. #if defined(TARGET_IS_TEMPEST_RB1)
  1325. #define ROM_SSIDMAEnable \
  1326. ((void (*)(unsigned long ulBase, \
  1327. unsigned long ulDMAFlags))ROM_SSITABLE[12])
  1328. #endif
  1329. #if defined(TARGET_IS_TEMPEST_RB1)
  1330. #define ROM_SSIDMADisable \
  1331. ((void (*)(unsigned long ulBase, \
  1332. unsigned long ulDMAFlags))ROM_SSITABLE[13])
  1333. #endif
  1334. //*****************************************************************************
  1335. //
  1336. // Macros for calling ROM functions in the SysCtl API.
  1337. //
  1338. //*****************************************************************************
  1339. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1340. defined(TARGET_IS_TEMPEST_RB1)
  1341. #define ROM_SysCtlSleep \
  1342. ((void (*)(void))ROM_SYSCTLTABLE[0])
  1343. #endif
  1344. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1345. defined(TARGET_IS_TEMPEST_RB1)
  1346. #define ROM_SysCtlSRAMSizeGet \
  1347. ((unsigned long (*)(void))ROM_SYSCTLTABLE[1])
  1348. #endif
  1349. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1350. defined(TARGET_IS_TEMPEST_RB1)
  1351. #define ROM_SysCtlFlashSizeGet \
  1352. ((unsigned long (*)(void))ROM_SYSCTLTABLE[2])
  1353. #endif
  1354. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1355. defined(TARGET_IS_TEMPEST_RB1)
  1356. #define ROM_SysCtlPinPresent \
  1357. ((tBoolean (*)(unsigned long ulPin))ROM_SYSCTLTABLE[3])
  1358. #endif
  1359. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1360. defined(TARGET_IS_TEMPEST_RB1)
  1361. #define ROM_SysCtlPeripheralPresent \
  1362. ((tBoolean (*)(unsigned long ulPeripheral))ROM_SYSCTLTABLE[4])
  1363. #endif
  1364. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1365. defined(TARGET_IS_TEMPEST_RB1)
  1366. #define ROM_SysCtlPeripheralReset \
  1367. ((void (*)(unsigned long ulPeripheral))ROM_SYSCTLTABLE[5])
  1368. #endif
  1369. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1370. defined(TARGET_IS_TEMPEST_RB1)
  1371. #define ROM_SysCtlPeripheralEnable \
  1372. ((void (*)(unsigned long ulPeripheral))ROM_SYSCTLTABLE[6])
  1373. #endif
  1374. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1375. defined(TARGET_IS_TEMPEST_RB1)
  1376. #define ROM_SysCtlPeripheralDisable \
  1377. ((void (*)(unsigned long ulPeripheral))ROM_SYSCTLTABLE[7])
  1378. #endif
  1379. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1380. defined(TARGET_IS_TEMPEST_RB1)
  1381. #define ROM_SysCtlPeripheralSleepEnable \
  1382. ((void (*)(unsigned long ulPeripheral))ROM_SYSCTLTABLE[8])
  1383. #endif
  1384. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1385. defined(TARGET_IS_TEMPEST_RB1)
  1386. #define ROM_SysCtlPeripheralSleepDisable \
  1387. ((void (*)(unsigned long ulPeripheral))ROM_SYSCTLTABLE[9])
  1388. #endif
  1389. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1390. defined(TARGET_IS_TEMPEST_RB1)
  1391. #define ROM_SysCtlPeripheralDeepSleepEnable \
  1392. ((void (*)(unsigned long ulPeripheral))ROM_SYSCTLTABLE[10])
  1393. #endif
  1394. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1395. defined(TARGET_IS_TEMPEST_RB1)
  1396. #define ROM_SysCtlPeripheralDeepSleepDisable \
  1397. ((void (*)(unsigned long ulPeripheral))ROM_SYSCTLTABLE[11])
  1398. #endif
  1399. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1400. defined(TARGET_IS_TEMPEST_RB1)
  1401. #define ROM_SysCtlPeripheralClockGating \
  1402. ((void (*)(tBoolean bEnable))ROM_SYSCTLTABLE[12])
  1403. #endif
  1404. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1405. defined(TARGET_IS_TEMPEST_RB1)
  1406. #define ROM_SysCtlIntEnable \
  1407. ((void (*)(unsigned long ulInts))ROM_SYSCTLTABLE[13])
  1408. #endif
  1409. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1410. defined(TARGET_IS_TEMPEST_RB1)
  1411. #define ROM_SysCtlIntDisable \
  1412. ((void (*)(unsigned long ulInts))ROM_SYSCTLTABLE[14])
  1413. #endif
  1414. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1415. defined(TARGET_IS_TEMPEST_RB1)
  1416. #define ROM_SysCtlIntClear \
  1417. ((void (*)(unsigned long ulInts))ROM_SYSCTLTABLE[15])
  1418. #endif
  1419. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1420. defined(TARGET_IS_TEMPEST_RB1)
  1421. #define ROM_SysCtlIntStatus \
  1422. ((unsigned long (*)(tBoolean bMasked))ROM_SYSCTLTABLE[16])
  1423. #endif
  1424. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1425. defined(TARGET_IS_TEMPEST_RB1)
  1426. #define ROM_SysCtlLDOSet \
  1427. ((void (*)(unsigned long ulVoltage))ROM_SYSCTLTABLE[17])
  1428. #endif
  1429. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1430. defined(TARGET_IS_TEMPEST_RB1)
  1431. #define ROM_SysCtlLDOGet \
  1432. ((unsigned long (*)(void))ROM_SYSCTLTABLE[18])
  1433. #endif
  1434. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1435. defined(TARGET_IS_TEMPEST_RB1)
  1436. #define ROM_SysCtlReset \
  1437. ((void (*)(void))ROM_SYSCTLTABLE[19])
  1438. #endif
  1439. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1440. defined(TARGET_IS_TEMPEST_RB1)
  1441. #define ROM_SysCtlDeepSleep \
  1442. ((void (*)(void))ROM_SYSCTLTABLE[20])
  1443. #endif
  1444. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1445. defined(TARGET_IS_TEMPEST_RB1)
  1446. #define ROM_SysCtlResetCauseGet \
  1447. ((unsigned long (*)(void))ROM_SYSCTLTABLE[21])
  1448. #endif
  1449. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1450. defined(TARGET_IS_TEMPEST_RB1)
  1451. #define ROM_SysCtlResetCauseClear \
  1452. ((void (*)(unsigned long ulCauses))ROM_SYSCTLTABLE[22])
  1453. #endif
  1454. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1455. defined(TARGET_IS_TEMPEST_RB1)
  1456. #define ROM_SysCtlClockSet \
  1457. ((void (*)(unsigned long ulConfig))ROM_SYSCTLTABLE[23])
  1458. #endif
  1459. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1460. defined(TARGET_IS_TEMPEST_RB1)
  1461. #define ROM_SysCtlClockGet \
  1462. ((unsigned long (*)(void))ROM_SYSCTLTABLE[24])
  1463. #endif
  1464. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1465. defined(TARGET_IS_TEMPEST_RB1)
  1466. #define ROM_SysCtlPWMClockSet \
  1467. ((void (*)(unsigned long ulConfig))ROM_SYSCTLTABLE[25])
  1468. #endif
  1469. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1470. defined(TARGET_IS_TEMPEST_RB1)
  1471. #define ROM_SysCtlPWMClockGet \
  1472. ((unsigned long (*)(void))ROM_SYSCTLTABLE[26])
  1473. #endif
  1474. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1475. defined(TARGET_IS_TEMPEST_RB1)
  1476. #define ROM_SysCtlADCSpeedSet \
  1477. ((void (*)(unsigned long ulSpeed))ROM_SYSCTLTABLE[27])
  1478. #endif
  1479. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1480. defined(TARGET_IS_TEMPEST_RB1)
  1481. #define ROM_SysCtlADCSpeedGet \
  1482. ((unsigned long (*)(void))ROM_SYSCTLTABLE[28])
  1483. #endif
  1484. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1485. defined(TARGET_IS_TEMPEST_RB1)
  1486. #define ROM_SysCtlGPIOAHBEnable \
  1487. ((void (*)(unsigned long ulGPIOPeripheral))ROM_SYSCTLTABLE[29])
  1488. #endif
  1489. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1490. defined(TARGET_IS_TEMPEST_RB1)
  1491. #define ROM_SysCtlGPIOAHBDisable \
  1492. ((void (*)(unsigned long ulGPIOPeripheral))ROM_SYSCTLTABLE[30])
  1493. #endif
  1494. #if defined(TARGET_IS_TEMPEST_RB1)
  1495. #define ROM_SysCtlUSBPLLEnable \
  1496. ((void (*)(void))ROM_SYSCTLTABLE[31])
  1497. #endif
  1498. #if defined(TARGET_IS_TEMPEST_RB1)
  1499. #define ROM_SysCtlUSBPLLDisable \
  1500. ((void (*)(void))ROM_SYSCTLTABLE[32])
  1501. #endif
  1502. //*****************************************************************************
  1503. //
  1504. // Macros for calling ROM functions in the SysTick API.
  1505. //
  1506. //*****************************************************************************
  1507. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1508. defined(TARGET_IS_TEMPEST_RB1)
  1509. #define ROM_SysTickValueGet \
  1510. ((unsigned long (*)(void))ROM_SYSTICKTABLE[0])
  1511. #endif
  1512. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1513. defined(TARGET_IS_TEMPEST_RB1)
  1514. #define ROM_SysTickEnable \
  1515. ((void (*)(void))ROM_SYSTICKTABLE[1])
  1516. #endif
  1517. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1518. defined(TARGET_IS_TEMPEST_RB1)
  1519. #define ROM_SysTickDisable \
  1520. ((void (*)(void))ROM_SYSTICKTABLE[2])
  1521. #endif
  1522. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1523. defined(TARGET_IS_TEMPEST_RB1)
  1524. #define ROM_SysTickIntEnable \
  1525. ((void (*)(void))ROM_SYSTICKTABLE[3])
  1526. #endif
  1527. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1528. defined(TARGET_IS_TEMPEST_RB1)
  1529. #define ROM_SysTickIntDisable \
  1530. ((void (*)(void))ROM_SYSTICKTABLE[4])
  1531. #endif
  1532. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1533. defined(TARGET_IS_TEMPEST_RB1)
  1534. #define ROM_SysTickPeriodSet \
  1535. ((void (*)(unsigned long ulPeriod))ROM_SYSTICKTABLE[5])
  1536. #endif
  1537. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1538. defined(TARGET_IS_TEMPEST_RB1)
  1539. #define ROM_SysTickPeriodGet \
  1540. ((unsigned long (*)(void))ROM_SYSTICKTABLE[6])
  1541. #endif
  1542. //*****************************************************************************
  1543. //
  1544. // Macros for calling ROM functions in the Timer API.
  1545. //
  1546. //*****************************************************************************
  1547. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1548. defined(TARGET_IS_TEMPEST_RB1)
  1549. #define ROM_TimerIntClear \
  1550. ((void (*)(unsigned long ulBase, \
  1551. unsigned long ulIntFlags))ROM_TIMERTABLE[0])
  1552. #endif
  1553. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1554. defined(TARGET_IS_TEMPEST_RB1)
  1555. #define ROM_TimerEnable \
  1556. ((void (*)(unsigned long ulBase, \
  1557. unsigned long ulTimer))ROM_TIMERTABLE[1])
  1558. #endif
  1559. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1560. defined(TARGET_IS_TEMPEST_RB1)
  1561. #define ROM_TimerDisable \
  1562. ((void (*)(unsigned long ulBase, \
  1563. unsigned long ulTimer))ROM_TIMERTABLE[2])
  1564. #endif
  1565. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1566. defined(TARGET_IS_TEMPEST_RB1)
  1567. #define ROM_TimerConfigure \
  1568. ((void (*)(unsigned long ulBase, \
  1569. unsigned long ulConfig))ROM_TIMERTABLE[3])
  1570. #endif
  1571. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1572. defined(TARGET_IS_TEMPEST_RB1)
  1573. #define ROM_TimerControlLevel \
  1574. ((void (*)(unsigned long ulBase, \
  1575. unsigned long ulTimer, \
  1576. tBoolean bInvert))ROM_TIMERTABLE[4])
  1577. #endif
  1578. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1579. defined(TARGET_IS_TEMPEST_RB1)
  1580. #define ROM_TimerControlTrigger \
  1581. ((void (*)(unsigned long ulBase, \
  1582. unsigned long ulTimer, \
  1583. tBoolean bEnable))ROM_TIMERTABLE[5])
  1584. #endif
  1585. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1586. defined(TARGET_IS_TEMPEST_RB1)
  1587. #define ROM_TimerControlEvent \
  1588. ((void (*)(unsigned long ulBase, \
  1589. unsigned long ulTimer, \
  1590. unsigned long ulEvent))ROM_TIMERTABLE[6])
  1591. #endif
  1592. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1593. defined(TARGET_IS_TEMPEST_RB1)
  1594. #define ROM_TimerControlStall \
  1595. ((void (*)(unsigned long ulBase, \
  1596. unsigned long ulTimer, \
  1597. tBoolean bStall))ROM_TIMERTABLE[7])
  1598. #endif
  1599. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1600. defined(TARGET_IS_TEMPEST_RB1)
  1601. #define ROM_TimerRTCEnable \
  1602. ((void (*)(unsigned long ulBase))ROM_TIMERTABLE[8])
  1603. #endif
  1604. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1605. defined(TARGET_IS_TEMPEST_RB1)
  1606. #define ROM_TimerRTCDisable \
  1607. ((void (*)(unsigned long ulBase))ROM_TIMERTABLE[9])
  1608. #endif
  1609. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1610. defined(TARGET_IS_TEMPEST_RB1)
  1611. #define ROM_TimerPrescaleSet \
  1612. ((void (*)(unsigned long ulBase, \
  1613. unsigned long ulTimer, \
  1614. unsigned long ulValue))ROM_TIMERTABLE[10])
  1615. #endif
  1616. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1617. defined(TARGET_IS_TEMPEST_RB1)
  1618. #define ROM_TimerPrescaleGet \
  1619. ((unsigned long (*)(unsigned long ulBase, \
  1620. unsigned long ulTimer))ROM_TIMERTABLE[11])
  1621. #endif
  1622. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1623. defined(TARGET_IS_TEMPEST_RB1)
  1624. #define ROM_TimerLoadSet \
  1625. ((void (*)(unsigned long ulBase, \
  1626. unsigned long ulTimer, \
  1627. unsigned long ulValue))ROM_TIMERTABLE[14])
  1628. #endif
  1629. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1630. defined(TARGET_IS_TEMPEST_RB1)
  1631. #define ROM_TimerLoadGet \
  1632. ((unsigned long (*)(unsigned long ulBase, \
  1633. unsigned long ulTimer))ROM_TIMERTABLE[15])
  1634. #endif
  1635. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1636. defined(TARGET_IS_TEMPEST_RB1)
  1637. #define ROM_TimerValueGet \
  1638. ((unsigned long (*)(unsigned long ulBase, \
  1639. unsigned long ulTimer))ROM_TIMERTABLE[16])
  1640. #endif
  1641. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1642. defined(TARGET_IS_TEMPEST_RB1)
  1643. #define ROM_TimerMatchSet \
  1644. ((void (*)(unsigned long ulBase, \
  1645. unsigned long ulTimer, \
  1646. unsigned long ulValue))ROM_TIMERTABLE[17])
  1647. #endif
  1648. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1649. defined(TARGET_IS_TEMPEST_RB1)
  1650. #define ROM_TimerMatchGet \
  1651. ((unsigned long (*)(unsigned long ulBase, \
  1652. unsigned long ulTimer))ROM_TIMERTABLE[18])
  1653. #endif
  1654. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1655. defined(TARGET_IS_TEMPEST_RB1)
  1656. #define ROM_TimerIntEnable \
  1657. ((void (*)(unsigned long ulBase, \
  1658. unsigned long ulIntFlags))ROM_TIMERTABLE[19])
  1659. #endif
  1660. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1661. defined(TARGET_IS_TEMPEST_RB1)
  1662. #define ROM_TimerIntDisable \
  1663. ((void (*)(unsigned long ulBase, \
  1664. unsigned long ulIntFlags))ROM_TIMERTABLE[20])
  1665. #endif
  1666. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1667. defined(TARGET_IS_TEMPEST_RB1)
  1668. #define ROM_TimerIntStatus \
  1669. ((unsigned long (*)(unsigned long ulBase, \
  1670. tBoolean bMasked))ROM_TIMERTABLE[21])
  1671. #endif
  1672. //*****************************************************************************
  1673. //
  1674. // Macros for calling ROM functions in the UART API.
  1675. //
  1676. //*****************************************************************************
  1677. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1678. defined(TARGET_IS_TEMPEST_RB1)
  1679. #define ROM_UARTCharPut \
  1680. ((void (*)(unsigned long ulBase, \
  1681. unsigned char ucData))ROM_UARTTABLE[0])
  1682. #endif
  1683. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1684. defined(TARGET_IS_TEMPEST_RB1)
  1685. #define ROM_UARTParityModeSet \
  1686. ((void (*)(unsigned long ulBase, \
  1687. unsigned long ulParity))ROM_UARTTABLE[1])
  1688. #endif
  1689. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1690. defined(TARGET_IS_TEMPEST_RB1)
  1691. #define ROM_UARTParityModeGet \
  1692. ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[2])
  1693. #endif
  1694. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1695. defined(TARGET_IS_TEMPEST_RB1)
  1696. #define ROM_UARTFIFOLevelSet \
  1697. ((void (*)(unsigned long ulBase, \
  1698. unsigned long ulTxLevel, \
  1699. unsigned long ulRxLevel))ROM_UARTTABLE[3])
  1700. #endif
  1701. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1702. defined(TARGET_IS_TEMPEST_RB1)
  1703. #define ROM_UARTFIFOLevelGet \
  1704. ((void (*)(unsigned long ulBase, \
  1705. unsigned long *pulTxLevel, \
  1706. unsigned long *pulRxLevel))ROM_UARTTABLE[4])
  1707. #endif
  1708. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1709. defined(TARGET_IS_TEMPEST_RB1)
  1710. #define ROM_UARTConfigSetExpClk \
  1711. ((void (*)(unsigned long ulBase, \
  1712. unsigned long ulUARTClk, \
  1713. unsigned long ulBaud, \
  1714. unsigned long ulConfig))ROM_UARTTABLE[5])
  1715. #endif
  1716. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1717. defined(TARGET_IS_TEMPEST_RB1)
  1718. #define ROM_UARTConfigGetExpClk \
  1719. ((void (*)(unsigned long ulBase, \
  1720. unsigned long ulUARTClk, \
  1721. unsigned long *pulBaud, \
  1722. unsigned long *pulConfig))ROM_UARTTABLE[6])
  1723. #endif
  1724. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1725. defined(TARGET_IS_TEMPEST_RB1)
  1726. #define ROM_UARTEnable \
  1727. ((void (*)(unsigned long ulBase))ROM_UARTTABLE[7])
  1728. #endif
  1729. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1730. defined(TARGET_IS_TEMPEST_RB1)
  1731. #define ROM_UARTDisable \
  1732. ((void (*)(unsigned long ulBase))ROM_UARTTABLE[8])
  1733. #endif
  1734. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1735. defined(TARGET_IS_TEMPEST_RB1)
  1736. #define ROM_UARTEnableSIR \
  1737. ((void (*)(unsigned long ulBase, \
  1738. tBoolean bLowPower))ROM_UARTTABLE[9])
  1739. #endif
  1740. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1741. defined(TARGET_IS_TEMPEST_RB1)
  1742. #define ROM_UARTDisableSIR \
  1743. ((void (*)(unsigned long ulBase))ROM_UARTTABLE[10])
  1744. #endif
  1745. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1746. defined(TARGET_IS_TEMPEST_RB1)
  1747. #define ROM_UARTCharsAvail \
  1748. ((tBoolean (*)(unsigned long ulBase))ROM_UARTTABLE[11])
  1749. #endif
  1750. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1751. defined(TARGET_IS_TEMPEST_RB1)
  1752. #define ROM_UARTSpaceAvail \
  1753. ((tBoolean (*)(unsigned long ulBase))ROM_UARTTABLE[12])
  1754. #endif
  1755. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1756. defined(TARGET_IS_TEMPEST_RB1)
  1757. #define ROM_UARTCharGetNonBlocking \
  1758. ((long (*)(unsigned long ulBase))ROM_UARTTABLE[13])
  1759. #endif
  1760. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1761. defined(TARGET_IS_TEMPEST_RB1)
  1762. #define ROM_UARTCharGet \
  1763. ((long (*)(unsigned long ulBase))ROM_UARTTABLE[14])
  1764. #endif
  1765. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1766. defined(TARGET_IS_TEMPEST_RB1)
  1767. #define ROM_UARTCharPutNonBlocking \
  1768. ((tBoolean (*)(unsigned long ulBase, \
  1769. unsigned char ucData))ROM_UARTTABLE[15])
  1770. #endif
  1771. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1772. defined(TARGET_IS_TEMPEST_RB1)
  1773. #define ROM_UARTBreakCtl \
  1774. ((void (*)(unsigned long ulBase, \
  1775. tBoolean bBreakState))ROM_UARTTABLE[16])
  1776. #endif
  1777. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1778. defined(TARGET_IS_TEMPEST_RB1)
  1779. #define ROM_UARTIntEnable \
  1780. ((void (*)(unsigned long ulBase, \
  1781. unsigned long ulIntFlags))ROM_UARTTABLE[17])
  1782. #endif
  1783. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1784. defined(TARGET_IS_TEMPEST_RB1)
  1785. #define ROM_UARTIntDisable \
  1786. ((void (*)(unsigned long ulBase, \
  1787. unsigned long ulIntFlags))ROM_UARTTABLE[18])
  1788. #endif
  1789. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1790. defined(TARGET_IS_TEMPEST_RB1)
  1791. #define ROM_UARTIntStatus \
  1792. ((unsigned long (*)(unsigned long ulBase, \
  1793. tBoolean bMasked))ROM_UARTTABLE[19])
  1794. #endif
  1795. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1796. defined(TARGET_IS_TEMPEST_RB1)
  1797. #define ROM_UARTIntClear \
  1798. ((void (*)(unsigned long ulBase, \
  1799. unsigned long ulIntFlags))ROM_UARTTABLE[20])
  1800. #endif
  1801. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  1802. defined(TARGET_IS_TEMPEST_RB1)
  1803. #define ROM_UpdateUART \
  1804. ((void (*)(void))ROM_UARTTABLE[21])
  1805. #endif
  1806. #if defined(TARGET_IS_TEMPEST_RB1)
  1807. #define ROM_UARTDMAEnable \
  1808. ((void (*)(unsigned long ulBase, \
  1809. unsigned long ulDMAFlags))ROM_UARTTABLE[22])
  1810. #endif
  1811. #if defined(TARGET_IS_TEMPEST_RB1)
  1812. #define ROM_UARTDMADisable \
  1813. ((void (*)(unsigned long ulBase, \
  1814. unsigned long ulDMAFlags))ROM_UARTTABLE[23])
  1815. #endif
  1816. //*****************************************************************************
  1817. //
  1818. // Macros for calling ROM functions in the uDMA API.
  1819. //
  1820. //*****************************************************************************
  1821. #if defined(TARGET_IS_TEMPEST_RB1)
  1822. #define ROM_uDMAChannelTransferSet \
  1823. ((void (*)(unsigned long ulChannel, \
  1824. unsigned long ulMode, \
  1825. void *pvSrcAddr, \
  1826. void *pvDstAddr, \
  1827. unsigned long ulTransferSize))ROM_UDMATABLE[0])
  1828. #endif
  1829. #if defined(TARGET_IS_TEMPEST_RB1)
  1830. #define ROM_uDMAEnable \
  1831. ((void (*)(void))ROM_UDMATABLE[1])
  1832. #endif
  1833. #if defined(TARGET_IS_TEMPEST_RB1)
  1834. #define ROM_uDMADisable \
  1835. ((void (*)(void))ROM_UDMATABLE[2])
  1836. #endif
  1837. #if defined(TARGET_IS_TEMPEST_RB1)
  1838. #define ROM_uDMAErrorStatusGet \
  1839. ((unsigned long (*)(void))ROM_UDMATABLE[3])
  1840. #endif
  1841. #if defined(TARGET_IS_TEMPEST_RB1)
  1842. #define ROM_uDMAErrorStatusClear \
  1843. ((void (*)(void))ROM_UDMATABLE[4])
  1844. #endif
  1845. #if defined(TARGET_IS_TEMPEST_RB1)
  1846. #define ROM_uDMAChannelEnable \
  1847. ((void (*)(unsigned long ulChannel))ROM_UDMATABLE[5])
  1848. #endif
  1849. #if defined(TARGET_IS_TEMPEST_RB1)
  1850. #define ROM_uDMAChannelDisable \
  1851. ((void (*)(unsigned long ulChannel))ROM_UDMATABLE[6])
  1852. #endif
  1853. #if defined(TARGET_IS_TEMPEST_RB1)
  1854. #define ROM_uDMAChannelIsEnabled \
  1855. ((tBoolean (*)(unsigned long ulChannel))ROM_UDMATABLE[7])
  1856. #endif
  1857. #if defined(TARGET_IS_TEMPEST_RB1)
  1858. #define ROM_uDMAControlBaseSet \
  1859. ((void (*)(void *pControlTable))ROM_UDMATABLE[8])
  1860. #endif
  1861. #if defined(TARGET_IS_TEMPEST_RB1)
  1862. #define ROM_uDMAControlBaseGet \
  1863. ((void * (*)(void))ROM_UDMATABLE[9])
  1864. #endif
  1865. #if defined(TARGET_IS_TEMPEST_RB1)
  1866. #define ROM_uDMAChannelRequest \
  1867. ((void (*)(unsigned long ulChannel))ROM_UDMATABLE[10])
  1868. #endif
  1869. #if defined(TARGET_IS_TEMPEST_RB1)
  1870. #define ROM_uDMAChannelAttributeEnable \
  1871. ((void (*)(unsigned long ulChannel, \
  1872. unsigned long ulAttr))ROM_UDMATABLE[11])
  1873. #endif
  1874. #if defined(TARGET_IS_TEMPEST_RB1)
  1875. #define ROM_uDMAChannelAttributeDisable \
  1876. ((void (*)(unsigned long ulChannel, \
  1877. unsigned long ulAttr))ROM_UDMATABLE[12])
  1878. #endif
  1879. #if defined(TARGET_IS_TEMPEST_RB1)
  1880. #define ROM_uDMAChannelAttributeGet \
  1881. ((unsigned long (*)(unsigned long ulChannel))ROM_UDMATABLE[13])
  1882. #endif
  1883. #if defined(TARGET_IS_TEMPEST_RB1)
  1884. #define ROM_uDMAChannelControlSet \
  1885. ((void (*)(unsigned long ulChannel, \
  1886. unsigned long ulControl))ROM_UDMATABLE[14])
  1887. #endif
  1888. #if defined(TARGET_IS_TEMPEST_RB1)
  1889. #define ROM_uDMAChannelSizeGet \
  1890. ((unsigned long (*)(unsigned long ulChannel))ROM_UDMATABLE[15])
  1891. #endif
  1892. #if defined(TARGET_IS_TEMPEST_RB1)
  1893. #define ROM_uDMAChannelModeGet \
  1894. ((unsigned long (*)(unsigned long ulChannel))ROM_UDMATABLE[16])
  1895. #endif
  1896. //*****************************************************************************
  1897. //
  1898. // Macros for calling ROM functions in the USB API.
  1899. //
  1900. //*****************************************************************************
  1901. #if defined(TARGET_IS_TEMPEST_RB1)
  1902. #define ROM_USBIntStatus \
  1903. ((unsigned long (*)(unsigned long ulBase))ROM_USBTABLE[0])
  1904. #endif
  1905. #if defined(TARGET_IS_TEMPEST_RB1)
  1906. #define ROM_USBDevAddrGet \
  1907. ((unsigned long (*)(unsigned long ulBase))ROM_USBTABLE[1])
  1908. #endif
  1909. #if defined(TARGET_IS_TEMPEST_RB1)
  1910. #define ROM_USBDevAddrSet \
  1911. ((void (*)(unsigned long ulBase, \
  1912. unsigned long ulAddress))ROM_USBTABLE[2])
  1913. #endif
  1914. #if defined(TARGET_IS_TEMPEST_RB1)
  1915. #define ROM_USBDevConnect \
  1916. ((void (*)(unsigned long ulBase))ROM_USBTABLE[3])
  1917. #endif
  1918. #if defined(TARGET_IS_TEMPEST_RB1)
  1919. #define ROM_USBDevDisconnect \
  1920. ((void (*)(unsigned long ulBase))ROM_USBTABLE[4])
  1921. #endif
  1922. #if defined(TARGET_IS_TEMPEST_RB1)
  1923. #define ROM_USBDevEndpointConfig \
  1924. ((void (*)(unsigned long ulBase, \
  1925. unsigned long ulEndpoint, \
  1926. unsigned long ulMaxPacketSize, \
  1927. unsigned long ulFlags))ROM_USBTABLE[5])
  1928. #endif
  1929. #if defined(TARGET_IS_TEMPEST_RB1)
  1930. #define ROM_USBDevEndpointDataAck \
  1931. ((void (*)(unsigned long ulBase, \
  1932. unsigned long ulEndpoint, \
  1933. tBoolean bIsLastPacket))ROM_USBTABLE[6])
  1934. #endif
  1935. #if defined(TARGET_IS_TEMPEST_RB1)
  1936. #define ROM_USBDevEndpointStall \
  1937. ((void (*)(unsigned long ulBase, \
  1938. unsigned long ulEndpoint, \
  1939. unsigned long ulFlags))ROM_USBTABLE[7])
  1940. #endif
  1941. #if defined(TARGET_IS_TEMPEST_RB1)
  1942. #define ROM_USBDevEndpointStallClear \
  1943. ((void (*)(unsigned long ulBase, \
  1944. unsigned long ulEndpoint, \
  1945. unsigned long ulFlags))ROM_USBTABLE[8])
  1946. #endif
  1947. #if defined(TARGET_IS_TEMPEST_RB1)
  1948. #define ROM_USBDevEndpointStatusClear \
  1949. ((void (*)(unsigned long ulBase, \
  1950. unsigned long ulEndpoint, \
  1951. unsigned long ulFlags))ROM_USBTABLE[9])
  1952. #endif
  1953. #if defined(TARGET_IS_TEMPEST_RB1)
  1954. #define ROM_USBEndpointDataGet \
  1955. ((long (*)(unsigned long ulBase, \
  1956. unsigned long ulEndpoint, \
  1957. unsigned char *pucData, \
  1958. unsigned long *pulSize))ROM_USBTABLE[10])
  1959. #endif
  1960. #if defined(TARGET_IS_TEMPEST_RB1)
  1961. #define ROM_USBEndpointDataPut \
  1962. ((long (*)(unsigned long ulBase, \
  1963. unsigned long ulEndpoint, \
  1964. unsigned char *pucData, \
  1965. unsigned long ulSize))ROM_USBTABLE[11])
  1966. #endif
  1967. #if defined(TARGET_IS_TEMPEST_RB1)
  1968. #define ROM_USBEndpointDataSend \
  1969. ((long (*)(unsigned long ulBase, \
  1970. unsigned long ulEndpoint, \
  1971. unsigned long ulTransType))ROM_USBTABLE[12])
  1972. #endif
  1973. #if defined(TARGET_IS_TEMPEST_RB1)
  1974. #define ROM_USBEndpointDataToggleClear \
  1975. ((void (*)(unsigned long ulBase, \
  1976. unsigned long ulEndpoint, \
  1977. unsigned long ulFlags))ROM_USBTABLE[13])
  1978. #endif
  1979. #if defined(TARGET_IS_TEMPEST_RB1)
  1980. #define ROM_USBEndpointStatus \
  1981. ((unsigned long (*)(unsigned long ulBase, \
  1982. unsigned long ulEndpoint))ROM_USBTABLE[14])
  1983. #endif
  1984. #if defined(TARGET_IS_TEMPEST_RB1)
  1985. #define ROM_USBFIFOAddrGet \
  1986. ((unsigned long (*)(unsigned long ulBase, \
  1987. unsigned long ulEndpoint))ROM_USBTABLE[15])
  1988. #endif
  1989. #if defined(TARGET_IS_TEMPEST_RB1)
  1990. #define ROM_USBFIFOConfigGet \
  1991. ((void (*)(unsigned long ulBase, \
  1992. unsigned long ulEndpoint, \
  1993. unsigned long *pulFIFOAddress, \
  1994. unsigned long *pulFIFOSize, \
  1995. unsigned long ulFlags))ROM_USBTABLE[16])
  1996. #endif
  1997. #if defined(TARGET_IS_TEMPEST_RB1)
  1998. #define ROM_USBFIFOConfigSet \
  1999. ((void (*)(unsigned long ulBase, \
  2000. unsigned long ulEndpoint, \
  2001. unsigned long ulFIFOAddress, \
  2002. unsigned long ulFIFOSize, \
  2003. unsigned long ulFlags))ROM_USBTABLE[17])
  2004. #endif
  2005. #if defined(TARGET_IS_TEMPEST_RB1)
  2006. #define ROM_USBFIFOFlush \
  2007. ((void (*)(unsigned long ulBase, \
  2008. unsigned long ulEndpoint, \
  2009. unsigned long ulFlags))ROM_USBTABLE[18])
  2010. #endif
  2011. #if defined(TARGET_IS_TEMPEST_RB1)
  2012. #define ROM_USBFrameNumberGet \
  2013. ((unsigned long (*)(unsigned long ulBase))ROM_USBTABLE[19])
  2014. #endif
  2015. #if defined(TARGET_IS_TEMPEST_RB1)
  2016. #define ROM_USBHostAddrGet \
  2017. ((unsigned long (*)(unsigned long ulBase, \
  2018. unsigned long ulEndpoint, \
  2019. unsigned long ulFlags))ROM_USBTABLE[20])
  2020. #endif
  2021. #if defined(TARGET_IS_TEMPEST_RB1)
  2022. #define ROM_USBHostAddrSet \
  2023. ((void (*)(unsigned long ulBase, \
  2024. unsigned long ulEndpoint, \
  2025. unsigned long ulAddr, \
  2026. unsigned long ulFlags))ROM_USBTABLE[21])
  2027. #endif
  2028. #if defined(TARGET_IS_TEMPEST_RB1)
  2029. #define ROM_USBHostEndpointConfig \
  2030. ((void (*)(unsigned long ulBase, \
  2031. unsigned long ulEndpoint, \
  2032. unsigned long ulMaxPacketSize, \
  2033. unsigned long ulNAKPollInterval, \
  2034. unsigned long ulTargetEndpoint, \
  2035. unsigned long ulFlags))ROM_USBTABLE[22])
  2036. #endif
  2037. #if defined(TARGET_IS_TEMPEST_RB1)
  2038. #define ROM_USBHostEndpointDataAck \
  2039. ((void (*)(unsigned long ulBase, \
  2040. unsigned long ulEndpoint))ROM_USBTABLE[23])
  2041. #endif
  2042. #if defined(TARGET_IS_TEMPEST_RB1)
  2043. #define ROM_USBHostEndpointDataToggle \
  2044. ((void (*)(unsigned long ulBase, \
  2045. unsigned long ulEndpoint, \
  2046. tBoolean bDataToggle, \
  2047. unsigned long ulFlags))ROM_USBTABLE[24])
  2048. #endif
  2049. #if defined(TARGET_IS_TEMPEST_RB1)
  2050. #define ROM_USBHostEndpointStatusClear \
  2051. ((void (*)(unsigned long ulBase, \
  2052. unsigned long ulEndpoint, \
  2053. unsigned long ulFlags))ROM_USBTABLE[25])
  2054. #endif
  2055. #if defined(TARGET_IS_TEMPEST_RB1)
  2056. #define ROM_USBHostHubAddrGet \
  2057. ((unsigned long (*)(unsigned long ulBase, \
  2058. unsigned long ulEndpoint, \
  2059. unsigned long ulFlags))ROM_USBTABLE[26])
  2060. #endif
  2061. #if defined(TARGET_IS_TEMPEST_RB1)
  2062. #define ROM_USBHostHubAddrSet \
  2063. ((void (*)(unsigned long ulBase, \
  2064. unsigned long ulEndpoint, \
  2065. unsigned long ulAddr, \
  2066. unsigned long ulFlags))ROM_USBTABLE[27])
  2067. #endif
  2068. #if defined(TARGET_IS_TEMPEST_RB1)
  2069. #define ROM_USBHostPwrDisable \
  2070. ((void (*)(unsigned long ulBase))ROM_USBTABLE[28])
  2071. #endif
  2072. #if defined(TARGET_IS_TEMPEST_RB1)
  2073. #define ROM_USBHostPwrEnable \
  2074. ((void (*)(unsigned long ulBase))ROM_USBTABLE[29])
  2075. #endif
  2076. #if defined(TARGET_IS_TEMPEST_RB1)
  2077. #define ROM_USBHostPwrFaultConfig \
  2078. ((void (*)(unsigned long ulBase, \
  2079. unsigned long ulFlags))ROM_USBTABLE[30])
  2080. #endif
  2081. #if defined(TARGET_IS_TEMPEST_RB1)
  2082. #define ROM_USBHostPwrFaultDisable \
  2083. ((void (*)(unsigned long ulBase))ROM_USBTABLE[31])
  2084. #endif
  2085. #if defined(TARGET_IS_TEMPEST_RB1)
  2086. #define ROM_USBHostPwrFaultEnable \
  2087. ((void (*)(unsigned long ulBase))ROM_USBTABLE[32])
  2088. #endif
  2089. #if defined(TARGET_IS_TEMPEST_RB1)
  2090. #define ROM_USBHostRequestIN \
  2091. ((void (*)(unsigned long ulBase, \
  2092. unsigned long ulEndpoint))ROM_USBTABLE[33])
  2093. #endif
  2094. #if defined(TARGET_IS_TEMPEST_RB1)
  2095. #define ROM_USBHostRequestStatus \
  2096. ((void (*)(unsigned long ulBase))ROM_USBTABLE[34])
  2097. #endif
  2098. #if defined(TARGET_IS_TEMPEST_RB1)
  2099. #define ROM_USBHostReset \
  2100. ((void (*)(unsigned long ulBase, \
  2101. tBoolean bStart))ROM_USBTABLE[35])
  2102. #endif
  2103. #if defined(TARGET_IS_TEMPEST_RB1)
  2104. #define ROM_USBHostResume \
  2105. ((void (*)(unsigned long ulBase, \
  2106. tBoolean bStart))ROM_USBTABLE[36])
  2107. #endif
  2108. #if defined(TARGET_IS_TEMPEST_RB1)
  2109. #define ROM_USBHostSpeedGet \
  2110. ((unsigned long (*)(unsigned long ulBase))ROM_USBTABLE[37])
  2111. #endif
  2112. #if defined(TARGET_IS_TEMPEST_RB1)
  2113. #define ROM_USBHostSuspend \
  2114. ((void (*)(unsigned long ulBase))ROM_USBTABLE[38])
  2115. #endif
  2116. #if defined(TARGET_IS_TEMPEST_RB1)
  2117. #define ROM_USBIntDisable \
  2118. ((void (*)(unsigned long ulBase, \
  2119. unsigned long ulIntFlags))ROM_USBTABLE[39])
  2120. #endif
  2121. #if defined(TARGET_IS_TEMPEST_RB1)
  2122. #define ROM_USBIntEnable \
  2123. ((void (*)(unsigned long ulBase, \
  2124. unsigned long ulIntFlags))ROM_USBTABLE[40])
  2125. #endif
  2126. //*****************************************************************************
  2127. //
  2128. // Macros for calling ROM functions in the Watchdog API.
  2129. //
  2130. //*****************************************************************************
  2131. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  2132. defined(TARGET_IS_TEMPEST_RB1)
  2133. #define ROM_WatchdogIntClear \
  2134. ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[0])
  2135. #endif
  2136. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  2137. defined(TARGET_IS_TEMPEST_RB1)
  2138. #define ROM_WatchdogRunning \
  2139. ((tBoolean (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[1])
  2140. #endif
  2141. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  2142. defined(TARGET_IS_TEMPEST_RB1)
  2143. #define ROM_WatchdogEnable \
  2144. ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[2])
  2145. #endif
  2146. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  2147. defined(TARGET_IS_TEMPEST_RB1)
  2148. #define ROM_WatchdogResetEnable \
  2149. ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[3])
  2150. #endif
  2151. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  2152. defined(TARGET_IS_TEMPEST_RB1)
  2153. #define ROM_WatchdogResetDisable \
  2154. ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[4])
  2155. #endif
  2156. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  2157. defined(TARGET_IS_TEMPEST_RB1)
  2158. #define ROM_WatchdogLock \
  2159. ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[5])
  2160. #endif
  2161. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  2162. defined(TARGET_IS_TEMPEST_RB1)
  2163. #define ROM_WatchdogUnlock \
  2164. ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[6])
  2165. #endif
  2166. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  2167. defined(TARGET_IS_TEMPEST_RB1)
  2168. #define ROM_WatchdogLockState \
  2169. ((tBoolean (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[7])
  2170. #endif
  2171. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  2172. defined(TARGET_IS_TEMPEST_RB1)
  2173. #define ROM_WatchdogReloadSet \
  2174. ((void (*)(unsigned long ulBase, \
  2175. unsigned long ulLoadVal))ROM_WATCHDOGTABLE[8])
  2176. #endif
  2177. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  2178. defined(TARGET_IS_TEMPEST_RB1)
  2179. #define ROM_WatchdogReloadGet \
  2180. ((unsigned long (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[9])
  2181. #endif
  2182. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  2183. defined(TARGET_IS_TEMPEST_RB1)
  2184. #define ROM_WatchdogValueGet \
  2185. ((unsigned long (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[10])
  2186. #endif
  2187. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  2188. defined(TARGET_IS_TEMPEST_RB1)
  2189. #define ROM_WatchdogIntEnable \
  2190. ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[11])
  2191. #endif
  2192. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  2193. defined(TARGET_IS_TEMPEST_RB1)
  2194. #define ROM_WatchdogIntStatus \
  2195. ((unsigned long (*)(unsigned long ulBase, \
  2196. tBoolean bMasked))ROM_WATCHDOGTABLE[12])
  2197. #endif
  2198. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  2199. defined(TARGET_IS_TEMPEST_RB1)
  2200. #define ROM_WatchdogStallEnable \
  2201. ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[13])
  2202. #endif
  2203. #if defined(TARGET_IS_DUSTDEVIL_RA0) || \
  2204. defined(TARGET_IS_TEMPEST_RB1)
  2205. #define ROM_WatchdogStallDisable \
  2206. ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[14])
  2207. #endif
  2208. //*****************************************************************************
  2209. //
  2210. // Macros for calling ROM functions in the Software API.
  2211. //
  2212. //*****************************************************************************
  2213. #if defined(TARGET_IS_TEMPEST_RB1)
  2214. #define ROM_Crc16Array \
  2215. ((unsigned short (*)(unsigned long ulWordLen, \
  2216. unsigned long *pulData))ROM_SOFTWARETABLE[1])
  2217. #endif
  2218. #if defined(TARGET_IS_TEMPEST_RB1)
  2219. #define ROM_Crc16Array3 \
  2220. ((void (*)(unsigned long ulWordLen, \
  2221. unsigned long *pulData, \
  2222. unsigned short *pusCrc3))ROM_SOFTWARETABLE[2])
  2223. #endif
  2224. #if defined(TARGET_IS_TEMPEST_RB1)
  2225. #define ROM_pvAESTable \
  2226. ((void *)&(ROM_SOFTWARETABLE[7]))
  2227. #endif
  2228. #endif // __ROM_H__