rom.h 108 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237
  1. //*****************************************************************************
  2. //
  3. // rom.h
  4. //
  5. // Macros to facilitate calling functions in the ROM.
  6. //
  7. // Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
  8. //
  9. //
  10. // Redistribution and use in source and binary forms, with or without
  11. // modification, are permitted provided that the following conditions
  12. // are met:
  13. //
  14. // Redistributions of source code must retain the above copyright
  15. // notice, this list of conditions and the following disclaimer.
  16. //
  17. // Redistributions in binary form must reproduce the above copyright
  18. // notice, this list of conditions and the following disclaimer in the
  19. // documentation and/or other materials provided with the
  20. // distribution.
  21. //
  22. // Neither the name of Texas Instruments Incorporated nor the names of
  23. // its contributors may be used to endorse or promote products derived
  24. // from this software without specific prior written permission.
  25. //
  26. // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  27. // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  28. // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  29. // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  30. // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  31. // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  32. // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  33. // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  34. // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  35. // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  36. // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  37. //
  38. //*****************************************************************************
  39. //*****************************************************************************
  40. //
  41. // THIS IS AN AUTO-GENERATED FILE. DO NOT EDIT BY HAND.
  42. //
  43. //*****************************************************************************
  44. #ifndef __ROM_H__
  45. #define __ROM_H__
  46. //*****************************************************************************
  47. //
  48. // Pointers to the main API tables.
  49. //
  50. //*****************************************************************************
  51. #define ROM_APITABLE ((unsigned long *)0x0000040C)
  52. #define ROM_VERSION (ROM_APITABLE[0])
  53. #define ROM_UARTTABLE ((unsigned long *)(ROM_APITABLE[1]))
  54. #define ROM_TIMERTABLE ((unsigned long *)(ROM_APITABLE[2]))
  55. #define ROM_WATCHDOGTABLE ((unsigned long *)(ROM_APITABLE[3]))
  56. #define ROM_INTERRUPTTABLE ((unsigned long *)(ROM_APITABLE[4]))
  57. #define ROM_UDMATABLE ((unsigned long *)(ROM_APITABLE[5]))
  58. #define ROM_PRCMTABLE ((unsigned long *)(ROM_APITABLE[6]))
  59. #define ROM_I2CTABLE ((unsigned long *)(ROM_APITABLE[7]))
  60. #define ROM_SPITABLE ((unsigned long *)(ROM_APITABLE[8]))
  61. #define ROM_CAMERATABLE ((unsigned long *)(ROM_APITABLE[9]))
  62. #define ROM_FLASHTABLE ((unsigned long *)(ROM_APITABLE[10]))
  63. #define ROM_PINTABLE ((unsigned long *)(ROM_APITABLE[11]))
  64. #define ROM_SYSTICKTABLE ((unsigned long *)(ROM_APITABLE[12]))
  65. #define ROM_UTILSTABLE ((unsigned long *)(ROM_APITABLE[13]))
  66. #define ROM_I2STABLE ((unsigned long *)(ROM_APITABLE[14]))
  67. #define ROM_HWSPINLOCKTABLE ((unsigned long *)(ROM_APITABLE[15]))
  68. #define ROM_GPIOTABLE ((unsigned long *)(ROM_APITABLE[16]))
  69. #define ROM_AESTABLE ((unsigned long *)(ROM_APITABLE[17]))
  70. #define ROM_DESTABLE ((unsigned long *)(ROM_APITABLE[18]))
  71. #define ROM_SHAMD5TABLE ((unsigned long *)(ROM_APITABLE[19]))
  72. #define ROM_CRCTABLE ((unsigned long *)(ROM_APITABLE[20]))
  73. #define ROM_SDHOSTTABLE ((unsigned long *)(ROM_APITABLE[21]))
  74. #define ROM_ADCTABLE ((unsigned long *)(ROM_APITABLE[22]))
  75. //*****************************************************************************
  76. //
  77. // Macros for calling ROM functions in the Interrupt API.
  78. //
  79. //*****************************************************************************
  80. #if defined(TARGET_IS_CC3200)
  81. #define ROM_IntEnable \
  82. ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[0])
  83. #endif
  84. #if defined(TARGET_IS_CC3200)
  85. #define ROM_IntMasterEnable \
  86. ((tBoolean (*)(void))ROM_INTERRUPTTABLE[1])
  87. #endif
  88. #if defined(TARGET_IS_CC3200)
  89. #define ROM_IntMasterDisable \
  90. ((tBoolean (*)(void))ROM_INTERRUPTTABLE[2])
  91. #endif
  92. #if defined(TARGET_IS_CC3200)
  93. #define ROM_IntDisable \
  94. ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[3])
  95. #endif
  96. #if defined(TARGET_IS_CC3200)
  97. #define ROM_IntPriorityGroupingSet \
  98. ((void (*)(unsigned long ulBits))ROM_INTERRUPTTABLE[4])
  99. #endif
  100. #if defined(TARGET_IS_CC3200)
  101. #define ROM_IntPriorityGroupingGet \
  102. ((unsigned long (*)(void))ROM_INTERRUPTTABLE[5])
  103. #endif
  104. #if defined(TARGET_IS_CC3200)
  105. #define ROM_IntPrioritySet \
  106. ((void (*)(unsigned long ulInterrupt, \
  107. unsigned char ucPriority))ROM_INTERRUPTTABLE[6])
  108. #endif
  109. #if defined(TARGET_IS_CC3200)
  110. #define ROM_IntPriorityGet \
  111. ((long (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[7])
  112. #endif
  113. #if defined(TARGET_IS_CC3200)
  114. #define ROM_IntPendSet \
  115. ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[8])
  116. #endif
  117. #if defined(TARGET_IS_CC3200)
  118. #define ROM_IntPendClear \
  119. ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[9])
  120. #endif
  121. #if defined(TARGET_IS_CC3200)
  122. #define ROM_IntPriorityMaskSet \
  123. ((void (*)(unsigned long ulPriorityMask))ROM_INTERRUPTTABLE[10])
  124. #endif
  125. #if defined(TARGET_IS_CC3200)
  126. #define ROM_IntPriorityMaskGet \
  127. ((unsigned long (*)(void))ROM_INTERRUPTTABLE[11])
  128. #endif
  129. #if defined(TARGET_IS_CC3200)
  130. #define ROM_IntRegister \
  131. ((void (*)(unsigned long ulInterrupt, \
  132. void (*pfnHandler)(void)))ROM_INTERRUPTTABLE[12])
  133. #endif
  134. #if defined(TARGET_IS_CC3200)
  135. #define ROM_IntUnregister \
  136. ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[13])
  137. #endif
  138. #if defined(TARGET_IS_CC3200)
  139. #define ROM_IntVTableBaseSet \
  140. ((void (*)(unsigned long ulVtableBase))ROM_INTERRUPTTABLE[14])
  141. #endif
  142. //*****************************************************************************
  143. //
  144. // Macros for calling ROM functions in the Timer API.
  145. //
  146. //*****************************************************************************
  147. #if defined(TARGET_IS_CC3200)
  148. #define ROM_TimerEnable \
  149. ((void (*)(unsigned long ulBase, \
  150. unsigned long ulTimer))ROM_TIMERTABLE[0])
  151. #endif
  152. #if defined(TARGET_IS_CC3200)
  153. #define ROM_TimerDisable \
  154. ((void (*)(unsigned long ulBase, \
  155. unsigned long ulTimer))ROM_TIMERTABLE[1])
  156. #endif
  157. #if defined(TARGET_IS_CC3200)
  158. #define ROM_TimerConfigure \
  159. ((void (*)(unsigned long ulBase, \
  160. unsigned long ulConfig))ROM_TIMERTABLE[2])
  161. #endif
  162. #if defined(TARGET_IS_CC3200)
  163. #define ROM_TimerControlLevel \
  164. ((void (*)(unsigned long ulBase, \
  165. unsigned long ulTimer, \
  166. tBoolean bInvert))ROM_TIMERTABLE[3])
  167. #endif
  168. #if defined(TARGET_IS_CC3200)
  169. #define ROM_TimerControlEvent \
  170. ((void (*)(unsigned long ulBase, \
  171. unsigned long ulTimer, \
  172. unsigned long ulEvent))ROM_TIMERTABLE[4])
  173. #endif
  174. #if defined(TARGET_IS_CC3200)
  175. #define ROM_TimerControlStall \
  176. ((void (*)(unsigned long ulBase, \
  177. unsigned long ulTimer, \
  178. tBoolean bStall))ROM_TIMERTABLE[5])
  179. #endif
  180. #if defined(TARGET_IS_CC3200)
  181. #define ROM_TimerPrescaleSet \
  182. ((void (*)(unsigned long ulBase, \
  183. unsigned long ulTimer, \
  184. unsigned long ulValue))ROM_TIMERTABLE[6])
  185. #endif
  186. #if defined(TARGET_IS_CC3200)
  187. #define ROM_TimerPrescaleGet \
  188. ((unsigned long (*)(unsigned long ulBase, \
  189. unsigned long ulTimer))ROM_TIMERTABLE[7])
  190. #endif
  191. #if defined(TARGET_IS_CC3200)
  192. #define ROM_TimerPrescaleMatchSet \
  193. ((void (*)(unsigned long ulBase, \
  194. unsigned long ulTimer, \
  195. unsigned long ulValue))ROM_TIMERTABLE[8])
  196. #endif
  197. #if defined(TARGET_IS_CC3200)
  198. #define ROM_TimerPrescaleMatchGet \
  199. ((unsigned long (*)(unsigned long ulBase, \
  200. unsigned long ulTimer))ROM_TIMERTABLE[9])
  201. #endif
  202. #if defined(TARGET_IS_CC3200)
  203. #define ROM_TimerLoadSet \
  204. ((void (*)(unsigned long ulBase, \
  205. unsigned long ulTimer, \
  206. unsigned long ulValue))ROM_TIMERTABLE[10])
  207. #endif
  208. #if defined(TARGET_IS_CC3200)
  209. #define ROM_TimerLoadGet \
  210. ((unsigned long (*)(unsigned long ulBase, \
  211. unsigned long ulTimer))ROM_TIMERTABLE[11])
  212. #endif
  213. #if defined(TARGET_IS_CC3200)
  214. #define ROM_TimerValueGet \
  215. ((unsigned long (*)(unsigned long ulBase, \
  216. unsigned long ulTimer))ROM_TIMERTABLE[12])
  217. #endif
  218. #if defined(TARGET_IS_CC3200)
  219. #define ROM_TimerMatchSet \
  220. ((void (*)(unsigned long ulBase, \
  221. unsigned long ulTimer, \
  222. unsigned long ulValue))ROM_TIMERTABLE[13])
  223. #endif
  224. #if defined(TARGET_IS_CC3200)
  225. #define ROM_TimerMatchGet \
  226. ((unsigned long (*)(unsigned long ulBase, \
  227. unsigned long ulTimer))ROM_TIMERTABLE[14])
  228. #endif
  229. #if defined(TARGET_IS_CC3200)
  230. #define ROM_TimerIntRegister \
  231. ((void (*)(unsigned long ulBase, \
  232. unsigned long ulTimer, \
  233. void (*pfnHandler)(void)))ROM_TIMERTABLE[15])
  234. #endif
  235. #if defined(TARGET_IS_CC3200)
  236. #define ROM_TimerIntUnregister \
  237. ((void (*)(unsigned long ulBase, \
  238. unsigned long ulTimer))ROM_TIMERTABLE[16])
  239. #endif
  240. #if defined(TARGET_IS_CC3200)
  241. #define ROM_TimerIntEnable \
  242. ((void (*)(unsigned long ulBase, \
  243. unsigned long ulIntFlags))ROM_TIMERTABLE[17])
  244. #endif
  245. #if defined(TARGET_IS_CC3200)
  246. #define ROM_TimerIntDisable \
  247. ((void (*)(unsigned long ulBase, \
  248. unsigned long ulIntFlags))ROM_TIMERTABLE[18])
  249. #endif
  250. #if defined(TARGET_IS_CC3200)
  251. #define ROM_TimerIntStatus \
  252. ((unsigned long (*)(unsigned long ulBase, \
  253. tBoolean bMasked))ROM_TIMERTABLE[19])
  254. #endif
  255. #if defined(TARGET_IS_CC3200)
  256. #define ROM_TimerIntClear \
  257. ((void (*)(unsigned long ulBase, \
  258. unsigned long ulIntFlags))ROM_TIMERTABLE[20])
  259. #endif
  260. //*****************************************************************************
  261. //
  262. // Macros for calling ROM functions in the UART API.
  263. //
  264. //*****************************************************************************
  265. #if defined(TARGET_IS_CC3200)
  266. #define ROM_UARTParityModeSet \
  267. ((void (*)(unsigned long ulBase, \
  268. unsigned long ulParity))ROM_UARTTABLE[0])
  269. #endif
  270. #if defined(TARGET_IS_CC3200)
  271. #define ROM_UARTParityModeGet \
  272. ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[1])
  273. #endif
  274. #if defined(TARGET_IS_CC3200)
  275. #define ROM_UARTFIFOLevelSet \
  276. ((void (*)(unsigned long ulBase, \
  277. unsigned long ulTxLevel, \
  278. unsigned long ulRxLevel))ROM_UARTTABLE[2])
  279. #endif
  280. #if defined(TARGET_IS_CC3200)
  281. #define ROM_UARTFIFOLevelGet \
  282. ((void (*)(unsigned long ulBase, \
  283. unsigned long *pulTxLevel, \
  284. unsigned long *pulRxLevel))ROM_UARTTABLE[3])
  285. #endif
  286. #if defined(TARGET_IS_CC3200)
  287. #define ROM_UARTConfigSetExpClk \
  288. ((void (*)(unsigned long ulBase, \
  289. unsigned long ulUARTClk, \
  290. unsigned long ulBaud, \
  291. unsigned long ulConfig))ROM_UARTTABLE[4])
  292. #endif
  293. #if defined(TARGET_IS_CC3200)
  294. #define ROM_UARTConfigGetExpClk \
  295. ((void (*)(unsigned long ulBase, \
  296. unsigned long ulUARTClk, \
  297. unsigned long *pulBaud, \
  298. unsigned long *pulConfig))ROM_UARTTABLE[5])
  299. #endif
  300. #if defined(TARGET_IS_CC3200)
  301. #define ROM_UARTEnable \
  302. ((void (*)(unsigned long ulBase))ROM_UARTTABLE[6])
  303. #endif
  304. #if defined(TARGET_IS_CC3200)
  305. #define ROM_UARTDisable \
  306. ((void (*)(unsigned long ulBase))ROM_UARTTABLE[7])
  307. #endif
  308. #if defined(TARGET_IS_CC3200)
  309. #define ROM_UARTFIFOEnable \
  310. ((void (*)(unsigned long ulBase))ROM_UARTTABLE[8])
  311. #endif
  312. #if defined(TARGET_IS_CC3200)
  313. #define ROM_UARTFIFODisable \
  314. ((void (*)(unsigned long ulBase))ROM_UARTTABLE[9])
  315. #endif
  316. #if defined(TARGET_IS_CC3200)
  317. #define ROM_UARTCharsAvail \
  318. ((tBoolean (*)(unsigned long ulBase))ROM_UARTTABLE[10])
  319. #endif
  320. #if defined(TARGET_IS_CC3200)
  321. #define ROM_UARTSpaceAvail \
  322. ((tBoolean (*)(unsigned long ulBase))ROM_UARTTABLE[11])
  323. #endif
  324. #if defined(TARGET_IS_CC3200)
  325. #define ROM_UARTCharGetNonBlocking \
  326. ((long (*)(unsigned long ulBase))ROM_UARTTABLE[12])
  327. #endif
  328. #if defined(TARGET_IS_CC3200)
  329. #define ROM_UARTCharGet \
  330. ((long (*)(unsigned long ulBase))ROM_UARTTABLE[13])
  331. #endif
  332. #if defined(TARGET_IS_CC3200)
  333. #define ROM_UARTCharPutNonBlocking \
  334. ((tBoolean (*)(unsigned long ulBase, \
  335. unsigned char ucData))ROM_UARTTABLE[14])
  336. #endif
  337. #if defined(TARGET_IS_CC3200)
  338. #define ROM_UARTCharPut \
  339. ((void (*)(unsigned long ulBase, \
  340. unsigned char ucData))ROM_UARTTABLE[15])
  341. #endif
  342. #if defined(TARGET_IS_CC3200)
  343. #define ROM_UARTBreakCtl \
  344. ((void (*)(unsigned long ulBase, \
  345. tBoolean bBreakState))ROM_UARTTABLE[16])
  346. #endif
  347. #if defined(TARGET_IS_CC3200)
  348. #define ROM_UARTBusy \
  349. ((tBoolean (*)(unsigned long ulBase))ROM_UARTTABLE[17])
  350. #endif
  351. #if defined(TARGET_IS_CC3200)
  352. #define ROM_UARTIntRegister \
  353. ((void (*)(unsigned long ulBase, \
  354. void(*pfnHandler)(void)))ROM_UARTTABLE[18])
  355. #endif
  356. #if defined(TARGET_IS_CC3200)
  357. #define ROM_UARTIntUnregister \
  358. ((void (*)(unsigned long ulBase))ROM_UARTTABLE[19])
  359. #endif
  360. #if defined(TARGET_IS_CC3200)
  361. #define ROM_UARTIntEnable \
  362. ((void (*)(unsigned long ulBase, \
  363. unsigned long ulIntFlags))ROM_UARTTABLE[20])
  364. #endif
  365. #if defined(TARGET_IS_CC3200)
  366. #define ROM_UARTIntDisable \
  367. ((void (*)(unsigned long ulBase, \
  368. unsigned long ulIntFlags))ROM_UARTTABLE[21])
  369. #endif
  370. #if defined(TARGET_IS_CC3200)
  371. #define ROM_UARTIntStatus \
  372. ((unsigned long (*)(unsigned long ulBase, \
  373. tBoolean bMasked))ROM_UARTTABLE[22])
  374. #endif
  375. #if defined(TARGET_IS_CC3200)
  376. #define ROM_UARTIntClear \
  377. ((void (*)(unsigned long ulBase, \
  378. unsigned long ulIntFlags))ROM_UARTTABLE[23])
  379. #endif
  380. #if defined(TARGET_IS_CC3200)
  381. #define ROM_UARTDMAEnable \
  382. ((void (*)(unsigned long ulBase, \
  383. unsigned long ulDMAFlags))ROM_UARTTABLE[24])
  384. #endif
  385. #if defined(TARGET_IS_CC3200)
  386. #define ROM_UARTDMADisable \
  387. ((void (*)(unsigned long ulBase, \
  388. unsigned long ulDMAFlags))ROM_UARTTABLE[25])
  389. #endif
  390. #if defined(TARGET_IS_CC3200)
  391. #define ROM_UARTRxErrorGet \
  392. ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[26])
  393. #endif
  394. #if defined(TARGET_IS_CC3200)
  395. #define ROM_UARTRxErrorClear \
  396. ((void (*)(unsigned long ulBase))ROM_UARTTABLE[27])
  397. #endif
  398. #if defined(TARGET_IS_CC3200)
  399. #define ROM_UARTModemControlSet \
  400. ((void (*)(unsigned long ulBase, \
  401. unsigned long ulControl))ROM_UARTTABLE[28])
  402. #endif
  403. #if defined(TARGET_IS_CC3200)
  404. #define ROM_UARTModemControlClear \
  405. ((void (*)(unsigned long ulBase, \
  406. unsigned long ulControl))ROM_UARTTABLE[29])
  407. #endif
  408. #if defined(TARGET_IS_CC3200)
  409. #define ROM_UARTModemControlGet \
  410. ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[30])
  411. #endif
  412. #if defined(TARGET_IS_CC3200)
  413. #define ROM_UARTModemStatusGet \
  414. ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[31])
  415. #endif
  416. #if defined(TARGET_IS_CC3200)
  417. #define ROM_UARTFlowControlSet \
  418. ((void (*)(unsigned long ulBase, \
  419. unsigned long ulMode))ROM_UARTTABLE[32])
  420. #endif
  421. #if defined(TARGET_IS_CC3200)
  422. #define ROM_UARTFlowControlGet \
  423. ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[33])
  424. #endif
  425. #if defined(TARGET_IS_CC3200)
  426. #define ROM_UARTTxIntModeSet \
  427. ((void (*)(unsigned long ulBase, \
  428. unsigned long ulMode))ROM_UARTTABLE[34])
  429. #endif
  430. #if defined(TARGET_IS_CC3200)
  431. #define ROM_UARTTxIntModeGet \
  432. ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[35])
  433. #endif
  434. //*****************************************************************************
  435. //
  436. // Macros for calling ROM functions in the uDMA API.
  437. //
  438. //*****************************************************************************
  439. #if defined(TARGET_IS_CC3200)
  440. #define ROM_uDMAChannelTransferSet \
  441. ((void (*)(unsigned long ulChannelStructIndex, \
  442. unsigned long ulMode, \
  443. void *pvSrcAddr, \
  444. void *pvDstAddr, \
  445. unsigned long ulTransferSize))ROM_UDMATABLE[0])
  446. #endif
  447. #if defined(TARGET_IS_CC3200)
  448. #define ROM_uDMAEnable \
  449. ((void (*)(void))ROM_UDMATABLE[1])
  450. #endif
  451. #if defined(TARGET_IS_CC3200)
  452. #define ROM_uDMADisable \
  453. ((void (*)(void))ROM_UDMATABLE[2])
  454. #endif
  455. #if defined(TARGET_IS_CC3200)
  456. #define ROM_uDMAErrorStatusGet \
  457. ((unsigned long (*)(void))ROM_UDMATABLE[3])
  458. #endif
  459. #if defined(TARGET_IS_CC3200)
  460. #define ROM_uDMAErrorStatusClear \
  461. ((void (*)(void))ROM_UDMATABLE[4])
  462. #endif
  463. #if defined(TARGET_IS_CC3200)
  464. #define ROM_uDMAChannelEnable \
  465. ((void (*)(unsigned long ulChannelNum))ROM_UDMATABLE[5])
  466. #endif
  467. #if defined(TARGET_IS_CC3200)
  468. #define ROM_uDMAChannelDisable \
  469. ((void (*)(unsigned long ulChannelNum))ROM_UDMATABLE[6])
  470. #endif
  471. #if defined(TARGET_IS_CC3200)
  472. #define ROM_uDMAChannelIsEnabled \
  473. ((tBoolean (*)(unsigned long ulChannelNum))ROM_UDMATABLE[7])
  474. #endif
  475. #if defined(TARGET_IS_CC3200)
  476. #define ROM_uDMAControlBaseSet \
  477. ((void (*)(void *pControlTable))ROM_UDMATABLE[8])
  478. #endif
  479. #if defined(TARGET_IS_CC3200)
  480. #define ROM_uDMAControlBaseGet \
  481. ((void * (*)(void))ROM_UDMATABLE[9])
  482. #endif
  483. #if defined(TARGET_IS_CC3200)
  484. #define ROM_uDMAChannelRequest \
  485. ((void (*)(unsigned long ulChannelNum))ROM_UDMATABLE[10])
  486. #endif
  487. #if defined(TARGET_IS_CC3200)
  488. #define ROM_uDMAChannelAttributeEnable \
  489. ((void (*)(unsigned long ulChannelNum, \
  490. unsigned long ulAttr))ROM_UDMATABLE[11])
  491. #endif
  492. #if defined(TARGET_IS_CC3200)
  493. #define ROM_uDMAChannelAttributeDisable \
  494. ((void (*)(unsigned long ulChannelNum, \
  495. unsigned long ulAttr))ROM_UDMATABLE[12])
  496. #endif
  497. #if defined(TARGET_IS_CC3200)
  498. #define ROM_uDMAChannelAttributeGet \
  499. ((unsigned long (*)(unsigned long ulChannelNum))ROM_UDMATABLE[13])
  500. #endif
  501. #if defined(TARGET_IS_CC3200)
  502. #define ROM_uDMAChannelControlSet \
  503. ((void (*)(unsigned long ulChannelStructIndex, \
  504. unsigned long ulControl))ROM_UDMATABLE[14])
  505. #endif
  506. #if defined(TARGET_IS_CC3200)
  507. #define ROM_uDMAChannelSizeGet \
  508. ((unsigned long (*)(unsigned long ulChannelStructIndex))ROM_UDMATABLE[15])
  509. #endif
  510. #if defined(TARGET_IS_CC3200)
  511. #define ROM_uDMAChannelModeGet \
  512. ((unsigned long (*)(unsigned long ulChannelStructIndex))ROM_UDMATABLE[16])
  513. #endif
  514. #if defined(TARGET_IS_CC3200)
  515. #define ROM_uDMAIntStatus \
  516. ((unsigned long (*)(void))ROM_UDMATABLE[17])
  517. #endif
  518. #if defined(TARGET_IS_CC3200)
  519. #define ROM_uDMAIntClear \
  520. ((void (*)(unsigned long ulChanMask))ROM_UDMATABLE[18])
  521. #endif
  522. #if defined(TARGET_IS_CC3200)
  523. #define ROM_uDMAControlAlternateBaseGet \
  524. ((void * (*)(void))ROM_UDMATABLE[19])
  525. #endif
  526. #if defined(TARGET_IS_CC3200)
  527. #define ROM_uDMAChannelScatterGatherSet \
  528. ((void (*)(unsigned long ulChannelNum, \
  529. unsigned ulTaskCount, \
  530. void *pvTaskList, \
  531. unsigned long ulIsPeriphSG))ROM_UDMATABLE[20])
  532. #endif
  533. #if defined(TARGET_IS_CC3200)
  534. #define ROM_uDMAChannelAssign \
  535. ((void (*)(unsigned long ulMapping))ROM_UDMATABLE[21])
  536. #endif
  537. #if defined(TARGET_IS_CC3200)
  538. #define ROM_uDMAIntRegister \
  539. ((void (*)(unsigned long ulIntChannel, \
  540. void (*pfnHandler)(void)))ROM_UDMATABLE[22])
  541. #endif
  542. #if defined(TARGET_IS_CC3200)
  543. #define ROM_uDMAIntUnregister \
  544. ((void (*)(unsigned long ulIntChannel))ROM_UDMATABLE[23])
  545. #endif
  546. //*****************************************************************************
  547. //
  548. // Macros for calling ROM functions in the Watchdog API.
  549. //
  550. //*****************************************************************************
  551. #if defined(TARGET_IS_CC3200)
  552. #define ROM_WatchdogIntClear \
  553. ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[0])
  554. #endif
  555. #if defined(TARGET_IS_CC3200)
  556. #define ROM_WatchdogRunning \
  557. ((tBoolean (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[1])
  558. #endif
  559. #if defined(TARGET_IS_CC3200)
  560. #define ROM_WatchdogEnable \
  561. ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[2])
  562. #endif
  563. #if defined(TARGET_IS_CC3200)
  564. #define ROM_WatchdogLock \
  565. ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[3])
  566. #endif
  567. #if defined(TARGET_IS_CC3200)
  568. #define ROM_WatchdogUnlock \
  569. ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[4])
  570. #endif
  571. #if defined(TARGET_IS_CC3200)
  572. #define ROM_WatchdogLockState \
  573. ((tBoolean (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[5])
  574. #endif
  575. #if defined(TARGET_IS_CC3200)
  576. #define ROM_WatchdogReloadSet \
  577. ((void (*)(unsigned long ulBase, \
  578. unsigned long ulLoadVal))ROM_WATCHDOGTABLE[6])
  579. #endif
  580. #if defined(TARGET_IS_CC3200)
  581. #define ROM_WatchdogReloadGet \
  582. ((unsigned long (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[7])
  583. #endif
  584. #if defined(TARGET_IS_CC3200)
  585. #define ROM_WatchdogValueGet \
  586. ((unsigned long (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[8])
  587. #endif
  588. #if defined(TARGET_IS_CC3200)
  589. #define ROM_WatchdogIntStatus \
  590. ((unsigned long (*)(unsigned long ulBase, \
  591. tBoolean bMasked))ROM_WATCHDOGTABLE[10])
  592. #endif
  593. #if defined(TARGET_IS_CC3200)
  594. #define ROM_WatchdogStallEnable \
  595. ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[11])
  596. #endif
  597. #if defined(TARGET_IS_CC3200)
  598. #define ROM_WatchdogStallDisable \
  599. ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[12])
  600. #endif
  601. #if defined(TARGET_IS_CC3200)
  602. #define ROM_WatchdogIntRegister \
  603. ((void (*)(unsigned long ulBase, \
  604. void(*pfnHandler)(void)))ROM_WATCHDOGTABLE[13])
  605. #endif
  606. #if defined(TARGET_IS_CC3200)
  607. #define ROM_WatchdogIntUnregister \
  608. ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[14])
  609. #endif
  610. //*****************************************************************************
  611. //
  612. // Macros for calling ROM functions in the I2C API.
  613. //
  614. //*****************************************************************************
  615. #if defined(TARGET_IS_CC3200)
  616. #define ROM_I2CIntRegister \
  617. ((void (*)(uint32_t ui32Base, \
  618. void(pfnHandler)(void)))ROM_I2CTABLE[0])
  619. #endif
  620. #if defined(TARGET_IS_CC3200)
  621. #define ROM_I2CIntUnregister \
  622. ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[1])
  623. #endif
  624. #if defined(TARGET_IS_CC3200)
  625. #define ROM_I2CTxFIFOConfigSet \
  626. ((void (*)(uint32_t ui32Base, \
  627. uint32_t ui32Config))ROM_I2CTABLE[2])
  628. #endif
  629. #if defined(TARGET_IS_CC3200)
  630. #define ROM_I2CTxFIFOFlush \
  631. ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[3])
  632. #endif
  633. #if defined(TARGET_IS_CC3200)
  634. #define ROM_I2CRxFIFOConfigSet \
  635. ((void (*)(uint32_t ui32Base, \
  636. uint32_t ui32Config))ROM_I2CTABLE[4])
  637. #endif
  638. #if defined(TARGET_IS_CC3200)
  639. #define ROM_I2CRxFIFOFlush \
  640. ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[5])
  641. #endif
  642. #if defined(TARGET_IS_CC3200)
  643. #define ROM_I2CFIFOStatus \
  644. ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[6])
  645. #endif
  646. #if defined(TARGET_IS_CC3200)
  647. #define ROM_I2CFIFODataPut \
  648. ((void (*)(uint32_t ui32Base, \
  649. uint8_t ui8Data))ROM_I2CTABLE[7])
  650. #endif
  651. #if defined(TARGET_IS_CC3200)
  652. #define ROM_I2CFIFODataPutNonBlocking \
  653. ((uint32_t (*)(uint32_t ui32Base, \
  654. uint8_t ui8Data))ROM_I2CTABLE[8])
  655. #endif
  656. #if defined(TARGET_IS_CC3200)
  657. #define ROM_I2CFIFODataGet \
  658. ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[9])
  659. #endif
  660. #if defined(TARGET_IS_CC3200)
  661. #define ROM_I2CFIFODataGetNonBlocking \
  662. ((uint32_t (*)(uint32_t ui32Base, \
  663. uint8_t *pui8Data))ROM_I2CTABLE[10])
  664. #endif
  665. #if defined(TARGET_IS_CC3200)
  666. #define ROM_I2CMasterBurstLengthSet \
  667. ((void (*)(uint32_t ui32Base, \
  668. uint8_t ui8Length))ROM_I2CTABLE[11])
  669. #endif
  670. #if defined(TARGET_IS_CC3200)
  671. #define ROM_I2CMasterBurstCountGet \
  672. ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[12])
  673. #endif
  674. #if defined(TARGET_IS_CC3200)
  675. #define ROM_I2CMasterGlitchFilterConfigSet \
  676. ((void (*)(uint32_t ui32Base, \
  677. uint32_t ui32Config))ROM_I2CTABLE[13])
  678. #endif
  679. #if defined(TARGET_IS_CC3200)
  680. #define ROM_I2CSlaveFIFOEnable \
  681. ((void (*)(uint32_t ui32Base, \
  682. uint32_t ui32Config))ROM_I2CTABLE[14])
  683. #endif
  684. #if defined(TARGET_IS_CC3200)
  685. #define ROM_I2CSlaveFIFODisable \
  686. ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[15])
  687. #endif
  688. #if defined(TARGET_IS_CC3200)
  689. #define ROM_I2CMasterBusBusy \
  690. ((bool (*)(uint32_t ui32Base))ROM_I2CTABLE[16])
  691. #endif
  692. #if defined(TARGET_IS_CC3200)
  693. #define ROM_I2CMasterBusy \
  694. ((bool (*)(uint32_t ui32Base))ROM_I2CTABLE[17])
  695. #endif
  696. #if defined(TARGET_IS_CC3200)
  697. #define ROM_I2CMasterControl \
  698. ((void (*)(uint32_t ui32Base, \
  699. uint32_t ui32Cmd))ROM_I2CTABLE[18])
  700. #endif
  701. #if defined(TARGET_IS_CC3200)
  702. #define ROM_I2CMasterDataGet \
  703. ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[19])
  704. #endif
  705. #if defined(TARGET_IS_CC3200)
  706. #define ROM_I2CMasterDataPut \
  707. ((void (*)(uint32_t ui32Base, \
  708. uint8_t ui8Data))ROM_I2CTABLE[20])
  709. #endif
  710. #if defined(TARGET_IS_CC3200)
  711. #define ROM_I2CMasterDisable \
  712. ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[21])
  713. #endif
  714. #if defined(TARGET_IS_CC3200)
  715. #define ROM_I2CMasterEnable \
  716. ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[22])
  717. #endif
  718. #if defined(TARGET_IS_CC3200)
  719. #define ROM_I2CMasterErr \
  720. ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[23])
  721. #endif
  722. #if defined(TARGET_IS_CC3200)
  723. #define ROM_I2CMasterIntClear \
  724. ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[24])
  725. #endif
  726. #if defined(TARGET_IS_CC3200)
  727. #define ROM_I2CMasterIntDisable \
  728. ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[25])
  729. #endif
  730. #if defined(TARGET_IS_CC3200)
  731. #define ROM_I2CMasterIntEnable \
  732. ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[26])
  733. #endif
  734. #if defined(TARGET_IS_CC3200)
  735. #define ROM_I2CMasterIntStatus \
  736. ((bool (*)(uint32_t ui32Base, \
  737. bool bMasked))ROM_I2CTABLE[27])
  738. #endif
  739. #if defined(TARGET_IS_CC3200)
  740. #define ROM_I2CMasterIntEnableEx \
  741. ((void (*)(uint32_t ui32Base, \
  742. uint32_t ui32IntFlags))ROM_I2CTABLE[28])
  743. #endif
  744. #if defined(TARGET_IS_CC3200)
  745. #define ROM_I2CMasterIntDisableEx \
  746. ((void (*)(uint32_t ui32Base, \
  747. uint32_t ui32IntFlags))ROM_I2CTABLE[29])
  748. #endif
  749. #if defined(TARGET_IS_CC3200)
  750. #define ROM_I2CMasterIntStatusEx \
  751. ((uint32_t (*)(uint32_t ui32Base, \
  752. bool bMasked))ROM_I2CTABLE[30])
  753. #endif
  754. #if defined(TARGET_IS_CC3200)
  755. #define ROM_I2CMasterIntClearEx \
  756. ((void (*)(uint32_t ui32Base, \
  757. uint32_t ui32IntFlags))ROM_I2CTABLE[31])
  758. #endif
  759. #if defined(TARGET_IS_CC3200)
  760. #define ROM_I2CMasterTimeoutSet \
  761. ((void (*)(uint32_t ui32Base, \
  762. uint32_t ui32Value))ROM_I2CTABLE[32])
  763. #endif
  764. #if defined(TARGET_IS_CC3200)
  765. #define ROM_I2CSlaveACKOverride \
  766. ((void (*)(uint32_t ui32Base, \
  767. bool bEnable))ROM_I2CTABLE[33])
  768. #endif
  769. #if defined(TARGET_IS_CC3200)
  770. #define ROM_I2CSlaveACKValueSet \
  771. ((void (*)(uint32_t ui32Base, \
  772. bool bACK))ROM_I2CTABLE[34])
  773. #endif
  774. #if defined(TARGET_IS_CC3200)
  775. #define ROM_I2CMasterLineStateGet \
  776. ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[35])
  777. #endif
  778. #if defined(TARGET_IS_CC3200)
  779. #define ROM_I2CMasterSlaveAddrSet \
  780. ((void (*)(uint32_t ui32Base, \
  781. uint8_t ui8SlaveAddr, \
  782. bool bReceive))ROM_I2CTABLE[36])
  783. #endif
  784. #if defined(TARGET_IS_CC3200)
  785. #define ROM_I2CSlaveDataGet \
  786. ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[37])
  787. #endif
  788. #if defined(TARGET_IS_CC3200)
  789. #define ROM_I2CSlaveDataPut \
  790. ((void (*)(uint32_t ui32Base, \
  791. uint8_t ui8Data))ROM_I2CTABLE[38])
  792. #endif
  793. #if defined(TARGET_IS_CC3200)
  794. #define ROM_I2CSlaveDisable \
  795. ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[39])
  796. #endif
  797. #if defined(TARGET_IS_CC3200)
  798. #define ROM_I2CSlaveEnable \
  799. ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[40])
  800. #endif
  801. #if defined(TARGET_IS_CC3200)
  802. #define ROM_I2CSlaveInit \
  803. ((void (*)(uint32_t ui32Base, \
  804. uint8_t ui8SlaveAddr))ROM_I2CTABLE[41])
  805. #endif
  806. #if defined(TARGET_IS_CC3200)
  807. #define ROM_I2CSlaveAddressSet \
  808. ((void (*)(uint32_t ui32Base, \
  809. uint8_t ui8AddrNum, \
  810. uint8_t ui8SlaveAddr))ROM_I2CTABLE[42])
  811. #endif
  812. #if defined(TARGET_IS_CC3200)
  813. #define ROM_I2CSlaveIntClear \
  814. ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[43])
  815. #endif
  816. #if defined(TARGET_IS_CC3200)
  817. #define ROM_I2CSlaveIntDisable \
  818. ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[44])
  819. #endif
  820. #if defined(TARGET_IS_CC3200)
  821. #define ROM_I2CSlaveIntEnable \
  822. ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[45])
  823. #endif
  824. #if defined(TARGET_IS_CC3200)
  825. #define ROM_I2CSlaveIntClearEx \
  826. ((void (*)(uint32_t ui32Base, \
  827. uint32_t ui32IntFlags))ROM_I2CTABLE[46])
  828. #endif
  829. #if defined(TARGET_IS_CC3200)
  830. #define ROM_I2CSlaveIntDisableEx \
  831. ((void (*)(uint32_t ui32Base, \
  832. uint32_t ui32IntFlags))ROM_I2CTABLE[47])
  833. #endif
  834. #if defined(TARGET_IS_CC3200)
  835. #define ROM_I2CSlaveIntEnableEx \
  836. ((void (*)(uint32_t ui32Base, \
  837. uint32_t ui32IntFlags))ROM_I2CTABLE[48])
  838. #endif
  839. #if defined(TARGET_IS_CC3200)
  840. #define ROM_I2CSlaveIntStatus \
  841. ((bool (*)(uint32_t ui32Base, \
  842. bool bMasked))ROM_I2CTABLE[49])
  843. #endif
  844. #if defined(TARGET_IS_CC3200)
  845. #define ROM_I2CSlaveIntStatusEx \
  846. ((uint32_t (*)(uint32_t ui32Base, \
  847. bool bMasked))ROM_I2CTABLE[50])
  848. #endif
  849. #if defined(TARGET_IS_CC3200)
  850. #define ROM_I2CSlaveStatus \
  851. ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[51])
  852. #endif
  853. #if defined(TARGET_IS_CC3200)
  854. #define ROM_I2CMasterInitExpClk \
  855. ((void (*)(uint32_t ui32Base, \
  856. uint32_t ui32I2CClk, \
  857. bool bFast))ROM_I2CTABLE[52])
  858. #endif
  859. //*****************************************************************************
  860. //
  861. // Macros for calling ROM functions in the SPI API.
  862. //
  863. //*****************************************************************************
  864. #if defined(TARGET_IS_CC3200)
  865. #define ROM_SPIEnable \
  866. ((void (*)(unsigned long ulBase))ROM_SPITABLE[0])
  867. #endif
  868. #if defined(TARGET_IS_CC3200)
  869. #define ROM_SPIDisable \
  870. ((void (*)(unsigned long ulBase))ROM_SPITABLE[1])
  871. #endif
  872. #if defined(TARGET_IS_CC3200)
  873. #define ROM_SPIReset \
  874. ((void (*)(unsigned long ulBase))ROM_SPITABLE[2])
  875. #endif
  876. #if defined(TARGET_IS_CC3200)
  877. #define ROM_SPIConfigSetExpClk \
  878. ((void (*)(unsigned long ulBase, \
  879. unsigned long ulSPIClk, \
  880. unsigned long ulBitRate, \
  881. unsigned long ulMode, \
  882. unsigned long ulSubMode, \
  883. unsigned long ulConfig))ROM_SPITABLE[3])
  884. #endif
  885. #if defined(TARGET_IS_CC3200)
  886. #define ROM_SPIDataGetNonBlocking \
  887. ((long (*)(unsigned long ulBase, \
  888. unsigned long * pulData))ROM_SPITABLE[4])
  889. #endif
  890. #if defined(TARGET_IS_CC3200)
  891. #define ROM_SPIDataGet \
  892. ((void (*)(unsigned long ulBase, \
  893. unsigned long *pulData))ROM_SPITABLE[5])
  894. #endif
  895. #if defined(TARGET_IS_CC3200)
  896. #define ROM_SPIDataPutNonBlocking \
  897. ((long (*)(unsigned long ulBase, \
  898. unsigned long ulData))ROM_SPITABLE[6])
  899. #endif
  900. #if defined(TARGET_IS_CC3200)
  901. #define ROM_SPIDataPut \
  902. ((void (*)(unsigned long ulBase, \
  903. unsigned long ulData))ROM_SPITABLE[7])
  904. #endif
  905. #if defined(TARGET_IS_CC3200)
  906. #define ROM_SPIFIFOEnable \
  907. ((void (*)(unsigned long ulBase, \
  908. unsigned long ulFlags))ROM_SPITABLE[8])
  909. #endif
  910. #if defined(TARGET_IS_CC3200)
  911. #define ROM_SPIFIFODisable \
  912. ((void (*)(unsigned long ulBase, \
  913. unsigned long ulFlags))ROM_SPITABLE[9])
  914. #endif
  915. #if defined(TARGET_IS_CC3200)
  916. #define ROM_SPIFIFOLevelSet \
  917. ((void (*)(unsigned long ulBase, \
  918. unsigned long ulTxLevel, \
  919. unsigned long ulRxLevel))ROM_SPITABLE[10])
  920. #endif
  921. #if defined(TARGET_IS_CC3200)
  922. #define ROM_SPIFIFOLevelGet \
  923. ((void (*)(unsigned long ulBase, \
  924. unsigned long *pulTxLevel, \
  925. unsigned long *pulRxLevel))ROM_SPITABLE[11])
  926. #endif
  927. #if defined(TARGET_IS_CC3200)
  928. #define ROM_SPIWordCountSet \
  929. ((void (*)(unsigned long ulBase, \
  930. unsigned long ulWordCount))ROM_SPITABLE[12])
  931. #endif
  932. #if defined(TARGET_IS_CC3200)
  933. #define ROM_SPIIntRegister \
  934. ((void (*)(unsigned long ulBase, \
  935. void(*pfnHandler)(void)))ROM_SPITABLE[13])
  936. #endif
  937. #if defined(TARGET_IS_CC3200)
  938. #define ROM_SPIIntUnregister \
  939. ((void (*)(unsigned long ulBase))ROM_SPITABLE[14])
  940. #endif
  941. #if defined(TARGET_IS_CC3200)
  942. #define ROM_SPIIntEnable \
  943. ((void (*)(unsigned long ulBase, \
  944. unsigned long ulIntFlags))ROM_SPITABLE[15])
  945. #endif
  946. #if defined(TARGET_IS_CC3200)
  947. #define ROM_SPIIntDisable \
  948. ((void (*)(unsigned long ulBase, \
  949. unsigned long ulIntFlags))ROM_SPITABLE[16])
  950. #endif
  951. #if defined(TARGET_IS_CC3200)
  952. #define ROM_SPIIntStatus \
  953. ((unsigned long (*)(unsigned long ulBase, \
  954. tBoolean bMasked))ROM_SPITABLE[17])
  955. #endif
  956. #if defined(TARGET_IS_CC3200)
  957. #define ROM_SPIIntClear \
  958. ((void (*)(unsigned long ulBase, \
  959. unsigned long ulIntFlags))ROM_SPITABLE[18])
  960. #endif
  961. #if defined(TARGET_IS_CC3200)
  962. #define ROM_SPIDmaEnable \
  963. ((void (*)(unsigned long ulBase, \
  964. unsigned long ulFlags))ROM_SPITABLE[19])
  965. #endif
  966. #if defined(TARGET_IS_CC3200)
  967. #define ROM_SPIDmaDisable \
  968. ((void (*)(unsigned long ulBase, \
  969. unsigned long ulFlags))ROM_SPITABLE[20])
  970. #endif
  971. #if defined(TARGET_IS_CC3200)
  972. #define ROM_SPICSEnable \
  973. ((void (*)(unsigned long ulBase))ROM_SPITABLE[21])
  974. #endif
  975. #if defined(TARGET_IS_CC3200)
  976. #define ROM_SPICSDisable \
  977. ((void (*)(unsigned long ulBase))ROM_SPITABLE[22])
  978. #endif
  979. #if defined(TARGET_IS_CC3200)
  980. #define ROM_SPITransfer \
  981. ((long (*)(unsigned long ulBase, \
  982. unsigned char *ucDout, \
  983. unsigned char *ucDin, \
  984. unsigned long ulSize, \
  985. unsigned long ulFlags))ROM_SPITABLE[23])
  986. #endif
  987. //*****************************************************************************
  988. //
  989. // Macros for calling ROM functions in the CAM API.
  990. //
  991. //*****************************************************************************
  992. #if defined(TARGET_IS_CC3200)
  993. #define ROM_CameraReset \
  994. ((void (*)(unsigned long ulBase))ROM_CAMERATABLE[0])
  995. #endif
  996. #if defined(TARGET_IS_CC3200)
  997. #define ROM_CameraParamsConfig \
  998. ((void (*)(unsigned long ulBase, \
  999. unsigned long ulHSPol, \
  1000. unsigned long ulVSPol, \
  1001. unsigned long ulFlags))ROM_CAMERATABLE[1])
  1002. #endif
  1003. #if defined(TARGET_IS_CC3200)
  1004. #define ROM_CameraXClkConfig \
  1005. ((void (*)(unsigned long ulBase, \
  1006. unsigned long ulCamClkIn, \
  1007. unsigned long ulXClk))ROM_CAMERATABLE[2])
  1008. #endif
  1009. #if defined(TARGET_IS_CC3200)
  1010. #define ROM_CameraXClkSet \
  1011. ((void (*)(unsigned long ulBase, \
  1012. unsigned char bXClkFlags))ROM_CAMERATABLE[3])
  1013. #endif
  1014. #if defined(TARGET_IS_CC3200)
  1015. #define ROM_CameraDMAEnable \
  1016. ((void (*)(unsigned long ulBase))ROM_CAMERATABLE[4])
  1017. #endif
  1018. #if defined(TARGET_IS_CC3200)
  1019. #define ROM_CameraDMADisable \
  1020. ((void (*)(unsigned long ulBase))ROM_CAMERATABLE[5])
  1021. #endif
  1022. #if defined(TARGET_IS_CC3200)
  1023. #define ROM_CameraThresholdSet \
  1024. ((void (*)(unsigned long ulBase, \
  1025. unsigned long ulThreshold))ROM_CAMERATABLE[6])
  1026. #endif
  1027. #if defined(TARGET_IS_CC3200)
  1028. #define ROM_CameraIntRegister \
  1029. ((void (*)(unsigned long ulBase, \
  1030. void (*pfnHandler)(void)))ROM_CAMERATABLE[7])
  1031. #endif
  1032. #if defined(TARGET_IS_CC3200)
  1033. #define ROM_CameraIntUnregister \
  1034. ((void (*)(unsigned long ulBase))ROM_CAMERATABLE[8])
  1035. #endif
  1036. #if defined(TARGET_IS_CC3200)
  1037. #define ROM_CameraIntEnable \
  1038. ((void (*)(unsigned long ulBase, \
  1039. unsigned long ulIntFlags))ROM_CAMERATABLE[9])
  1040. #endif
  1041. #if defined(TARGET_IS_CC3200)
  1042. #define ROM_CameraIntDisable \
  1043. ((void (*)(unsigned long ulBase, \
  1044. unsigned long ulIntFlags))ROM_CAMERATABLE[10])
  1045. #endif
  1046. #if defined(TARGET_IS_CC3200)
  1047. #define ROM_CameraIntStatus \
  1048. ((unsigned long (*)(unsigned long ulBase))ROM_CAMERATABLE[11])
  1049. #endif
  1050. #if defined(TARGET_IS_CC3200)
  1051. #define ROM_CameraIntClear \
  1052. ((void (*)(unsigned long ulBase, \
  1053. unsigned long ulIntFlags))ROM_CAMERATABLE[12])
  1054. #endif
  1055. #if defined(TARGET_IS_CC3200)
  1056. #define ROM_CameraCaptureStop \
  1057. ((void (*)(unsigned long ulBase, \
  1058. tBoolean bImmediate))ROM_CAMERATABLE[13])
  1059. #endif
  1060. #if defined(TARGET_IS_CC3200)
  1061. #define ROM_CameraCaptureStart \
  1062. ((void (*)(unsigned long ulBase))ROM_CAMERATABLE[14])
  1063. #endif
  1064. #if defined(TARGET_IS_CC3200)
  1065. #define ROM_CameraBufferRead \
  1066. ((void (*)(unsigned long ulBase, \
  1067. unsigned long *pBuffer, \
  1068. unsigned char ucSize))ROM_CAMERATABLE[15])
  1069. #endif
  1070. //*****************************************************************************
  1071. //
  1072. // Macros for calling ROM functions in the FLASH API.
  1073. //
  1074. //*****************************************************************************
  1075. #if defined(TARGET_IS_CC3200)
  1076. #define ROM_FlashDisable \
  1077. ((void (*)(void))ROM_FLASHTABLE[0])
  1078. #endif
  1079. #if defined(TARGET_IS_CC3200)
  1080. #define ROM_FlashErase \
  1081. ((long (*)(unsigned long ulAddress))ROM_FLASHTABLE[1])
  1082. #endif
  1083. #if defined(TARGET_IS_CC3200)
  1084. #define ROM_FlashMassErase \
  1085. ((long (*)(void))ROM_FLASHTABLE[2])
  1086. #endif
  1087. #if defined(TARGET_IS_CC3200)
  1088. #define ROM_FlashMassEraseNonBlocking \
  1089. ((void (*)(void))ROM_FLASHTABLE[3])
  1090. #endif
  1091. #if defined(TARGET_IS_CC3200)
  1092. #define ROM_FlashEraseNonBlocking \
  1093. ((void (*)(unsigned long ulAddress))ROM_FLASHTABLE[4])
  1094. #endif
  1095. #if defined(TARGET_IS_CC3200)
  1096. #define ROM_FlashProgram \
  1097. ((long (*)(unsigned long *pulData, \
  1098. unsigned long ulAddress, \
  1099. unsigned long ulCount))ROM_FLASHTABLE[5])
  1100. #endif
  1101. #if defined(TARGET_IS_CC3200)
  1102. #define ROM_FlashProgramNonBlocking \
  1103. ((long (*)(unsigned long *pulData, \
  1104. unsigned long ulAddress, \
  1105. unsigned long ulCount))ROM_FLASHTABLE[6])
  1106. #endif
  1107. #if defined(TARGET_IS_CC3200)
  1108. #define ROM_FlashIntRegister \
  1109. ((void (*)(void (*pfnHandler)(void)))ROM_FLASHTABLE[7])
  1110. #endif
  1111. #if defined(TARGET_IS_CC3200)
  1112. #define ROM_FlashIntUnregister \
  1113. ((void (*)(void))ROM_FLASHTABLE[8])
  1114. #endif
  1115. #if defined(TARGET_IS_CC3200)
  1116. #define ROM_FlashIntEnable \
  1117. ((void (*)(unsigned long ulIntFlags))ROM_FLASHTABLE[9])
  1118. #endif
  1119. #if defined(TARGET_IS_CC3200)
  1120. #define ROM_FlashIntDisable \
  1121. ((void (*)(unsigned long ulIntFlags))ROM_FLASHTABLE[10])
  1122. #endif
  1123. #if defined(TARGET_IS_CC3200)
  1124. #define ROM_FlashIntStatus \
  1125. ((unsigned long (*)(tBoolean bMasked))ROM_FLASHTABLE[11])
  1126. #endif
  1127. #if defined(TARGET_IS_CC3200)
  1128. #define ROM_FlashIntClear \
  1129. ((void (*)(unsigned long ulIntFlags))ROM_FLASHTABLE[12])
  1130. #endif
  1131. #if defined(TARGET_IS_CC3200)
  1132. #define ROM_FlashProtectGet \
  1133. ((tFlashProtection (*)(unsigned long ulAddress))ROM_FLASHTABLE[13])
  1134. #endif
  1135. //*****************************************************************************
  1136. //
  1137. // Macros for calling ROM functions in the Pin API.
  1138. //
  1139. //*****************************************************************************
  1140. #if defined(TARGET_IS_CC3200)
  1141. #define ROM_PinModeSet \
  1142. ((void (*)(unsigned long ulPin, \
  1143. unsigned long ulPinMode))ROM_PINTABLE[0])
  1144. #endif
  1145. #if defined(TARGET_IS_CC3200)
  1146. #define ROM_PinDirModeSet \
  1147. ((void (*)(unsigned long ulPin, \
  1148. unsigned long ulPinIO))ROM_PINTABLE[1])
  1149. #endif
  1150. #if defined(TARGET_IS_CC3200)
  1151. #define ROM_PinDirModeGet \
  1152. ((unsigned long (*)(unsigned long ulPin))ROM_PINTABLE[2])
  1153. #endif
  1154. #if defined(TARGET_IS_CC3200)
  1155. #define ROM_PinModeGet \
  1156. ((unsigned long (*)(unsigned long ulPin))ROM_PINTABLE[3])
  1157. #endif
  1158. #if defined(TARGET_IS_CC3200)
  1159. #define ROM_PinConfigGet \
  1160. ((void (*)(unsigned long ulPin, \
  1161. unsigned long *pulPinStrength, \
  1162. unsigned long *pulPinType))ROM_PINTABLE[4])
  1163. #endif
  1164. #if defined(TARGET_IS_CC3200)
  1165. #define ROM_PinConfigSet \
  1166. ((void (*)(unsigned long ulPin, \
  1167. unsigned long ulPinStrength, \
  1168. unsigned long ulPinType))ROM_PINTABLE[5])
  1169. #endif
  1170. #if defined(TARGET_IS_CC3200)
  1171. #define ROM_PinTypeUART \
  1172. ((void (*)(unsigned long ulPin, \
  1173. unsigned long ulPinMode))ROM_PINTABLE[6])
  1174. #endif
  1175. #if defined(TARGET_IS_CC3200)
  1176. #define ROM_PinTypeI2C \
  1177. ((void (*)(unsigned long ulPin, \
  1178. unsigned long ulPinMode))ROM_PINTABLE[7])
  1179. #endif
  1180. #if defined(TARGET_IS_CC3200)
  1181. #define ROM_PinTypeSPI \
  1182. ((void (*)(unsigned long ulPin, \
  1183. unsigned long ulPinMode))ROM_PINTABLE[8])
  1184. #endif
  1185. #if defined(TARGET_IS_CC3200)
  1186. #define ROM_PinTypeI2S \
  1187. ((void (*)(unsigned long ulPin, \
  1188. unsigned long ulPinMode))ROM_PINTABLE[9])
  1189. #endif
  1190. #if defined(TARGET_IS_CC3200)
  1191. #define ROM_PinTypeTimer \
  1192. ((void (*)(unsigned long ulPin, \
  1193. unsigned long ulPinMode))ROM_PINTABLE[10])
  1194. #endif
  1195. #if defined(TARGET_IS_CC3200)
  1196. #define ROM_PinTypeCamera \
  1197. ((void (*)(unsigned long ulPin, \
  1198. unsigned long ulPinMode))ROM_PINTABLE[11])
  1199. #endif
  1200. #if defined(TARGET_IS_CC3200)
  1201. #define ROM_PinTypeGPIO \
  1202. ((void (*)(unsigned long ulPin, \
  1203. unsigned long ulPinMode, \
  1204. tBoolean bOpenDrain))ROM_PINTABLE[12])
  1205. #endif
  1206. #if defined(TARGET_IS_CC3200)
  1207. #define ROM_PinTypeADC \
  1208. ((void (*)(unsigned long ulPin, \
  1209. unsigned long ulPinMode))ROM_PINTABLE[13])
  1210. #endif
  1211. #if defined(TARGET_IS_CC3200)
  1212. #define ROM_PinTypeSDHost \
  1213. ((void (*)(unsigned long ulPin, \
  1214. unsigned long ulPinMode))ROM_PINTABLE[14])
  1215. #endif
  1216. //*****************************************************************************
  1217. //
  1218. // Macros for calling ROM functions in the SYSTICK API.
  1219. //
  1220. //*****************************************************************************
  1221. #if defined(TARGET_IS_CC3200)
  1222. #define ROM_SysTickEnable \
  1223. ((void (*)(void))ROM_SYSTICKTABLE[0])
  1224. #endif
  1225. #if defined(TARGET_IS_CC3200)
  1226. #define ROM_SysTickDisable \
  1227. ((void (*)(void))ROM_SYSTICKTABLE[1])
  1228. #endif
  1229. #if defined(TARGET_IS_CC3200)
  1230. #define ROM_SysTickIntRegister \
  1231. ((void (*)(void (*pfnHandler)(void)))ROM_SYSTICKTABLE[2])
  1232. #endif
  1233. #if defined(TARGET_IS_CC3200)
  1234. #define ROM_SysTickIntUnregister \
  1235. ((void (*)(void))ROM_SYSTICKTABLE[3])
  1236. #endif
  1237. #if defined(TARGET_IS_CC3200)
  1238. #define ROM_SysTickIntEnable \
  1239. ((void (*)(void))ROM_SYSTICKTABLE[4])
  1240. #endif
  1241. #if defined(TARGET_IS_CC3200)
  1242. #define ROM_SysTickIntDisable \
  1243. ((void (*)(void))ROM_SYSTICKTABLE[5])
  1244. #endif
  1245. #if defined(TARGET_IS_CC3200)
  1246. #define ROM_SysTickPeriodSet \
  1247. ((void (*)(unsigned long ulPeriod))ROM_SYSTICKTABLE[6])
  1248. #endif
  1249. #if defined(TARGET_IS_CC3200)
  1250. #define ROM_SysTickPeriodGet \
  1251. ((unsigned long (*)(void))ROM_SYSTICKTABLE[7])
  1252. #endif
  1253. #if defined(TARGET_IS_CC3200)
  1254. #define ROM_SysTickValueGet \
  1255. ((unsigned long (*)(void))ROM_SYSTICKTABLE[8])
  1256. #endif
  1257. //*****************************************************************************
  1258. //
  1259. // Macros for calling ROM functions in the UTILS API.
  1260. //
  1261. //*****************************************************************************
  1262. #if defined(TARGET_IS_CC3200)
  1263. #define ROM_UtilsDelay \
  1264. ((void (*)(unsigned long ulCount))ROM_UTILSTABLE[0])
  1265. #endif
  1266. //*****************************************************************************
  1267. //
  1268. // Macros for calling ROM functions in the I2S API.
  1269. //
  1270. //*****************************************************************************
  1271. #if defined(TARGET_IS_CC3200)
  1272. #define ROM_I2SEnable \
  1273. ((void (*)(unsigned long ulBase, \
  1274. unsigned long ulMode))ROM_I2STABLE[0])
  1275. #endif
  1276. #if defined(TARGET_IS_CC3200)
  1277. #define ROM_I2SDisable \
  1278. ((void (*)(unsigned long ulBase))ROM_I2STABLE[1])
  1279. #endif
  1280. #if defined(TARGET_IS_CC3200)
  1281. #define ROM_I2SDataPut \
  1282. ((void (*)(unsigned long ulBase, \
  1283. unsigned long ulDataLine, \
  1284. unsigned long ulData))ROM_I2STABLE[2])
  1285. #endif
  1286. #if defined(TARGET_IS_CC3200)
  1287. #define ROM_I2SDataPutNonBlocking \
  1288. ((long (*)(unsigned long ulBase, \
  1289. unsigned long ulDataLine, \
  1290. unsigned long ulData))ROM_I2STABLE[3])
  1291. #endif
  1292. #if defined(TARGET_IS_CC3200)
  1293. #define ROM_I2SDataGet \
  1294. ((void (*)(unsigned long ulBase, \
  1295. unsigned long ulDataLine, \
  1296. unsigned long *pulData))ROM_I2STABLE[4])
  1297. #endif
  1298. #if defined(TARGET_IS_CC3200)
  1299. #define ROM_I2SDataGetNonBlocking \
  1300. ((long (*)(unsigned long ulBase, \
  1301. unsigned long ulDataLine, \
  1302. unsigned long *pulData))ROM_I2STABLE[5])
  1303. #endif
  1304. #if defined(TARGET_IS_CC3200)
  1305. #define ROM_I2SConfigSetExpClk \
  1306. ((void (*)(unsigned long ulBase, \
  1307. unsigned long ulI2SClk, \
  1308. unsigned long ulBitClk, \
  1309. unsigned long ulConfig))ROM_I2STABLE[6])
  1310. #endif
  1311. #if defined(TARGET_IS_CC3200)
  1312. #define ROM_I2STxFIFOEnable \
  1313. ((void (*)(unsigned long ulBase, \
  1314. unsigned long ulTxLevel, \
  1315. unsigned long ulWordsPerTransfer))ROM_I2STABLE[7])
  1316. #endif
  1317. #if defined(TARGET_IS_CC3200)
  1318. #define ROM_I2STxFIFODisable \
  1319. ((void (*)(unsigned long ulBase))ROM_I2STABLE[8])
  1320. #endif
  1321. #if defined(TARGET_IS_CC3200)
  1322. #define ROM_I2SRxFIFOEnable \
  1323. ((void (*)(unsigned long ulBase, \
  1324. unsigned long ulRxLevel, \
  1325. unsigned long ulWordsPerTransfer))ROM_I2STABLE[9])
  1326. #endif
  1327. #if defined(TARGET_IS_CC3200)
  1328. #define ROM_I2SRxFIFODisable \
  1329. ((void (*)(unsigned long ulBase))ROM_I2STABLE[10])
  1330. #endif
  1331. #if defined(TARGET_IS_CC3200)
  1332. #define ROM_I2STxFIFOStatusGet \
  1333. ((unsigned long (*)(unsigned long ulBase))ROM_I2STABLE[11])
  1334. #endif
  1335. #if defined(TARGET_IS_CC3200)
  1336. #define ROM_I2SRxFIFOStatusGet \
  1337. ((unsigned long (*)(unsigned long ulBase))ROM_I2STABLE[12])
  1338. #endif
  1339. #if defined(TARGET_IS_CC3200)
  1340. #define ROM_I2SSerializerConfig \
  1341. ((void (*)(unsigned long ulBase, \
  1342. unsigned long ulDataLine, \
  1343. unsigned long ulSerMode, \
  1344. unsigned long ulInActState))ROM_I2STABLE[13])
  1345. #endif
  1346. #if defined(TARGET_IS_CC3200)
  1347. #define ROM_I2SIntEnable \
  1348. ((void (*)(unsigned long ulBase, \
  1349. unsigned long ulIntFlags))ROM_I2STABLE[14])
  1350. #endif
  1351. #if defined(TARGET_IS_CC3200)
  1352. #define ROM_I2SIntDisable \
  1353. ((void (*)(unsigned long ulBase, \
  1354. unsigned long ulIntFlags))ROM_I2STABLE[15])
  1355. #endif
  1356. #if defined(TARGET_IS_CC3200)
  1357. #define ROM_I2SIntStatus \
  1358. ((unsigned long (*)(unsigned long ulBase))ROM_I2STABLE[16])
  1359. #endif
  1360. #if defined(TARGET_IS_CC3200)
  1361. #define ROM_I2SIntClear \
  1362. ((void (*)(unsigned long ulBase, \
  1363. unsigned long ulIntFlags))ROM_I2STABLE[17])
  1364. #endif
  1365. #if defined(TARGET_IS_CC3200)
  1366. #define ROM_I2SIntRegister \
  1367. ((void (*)(unsigned long ulBase, \
  1368. void (*pfnHandler)(void)))ROM_I2STABLE[18])
  1369. #endif
  1370. #if defined(TARGET_IS_CC3200)
  1371. #define ROM_I2SIntUnregister \
  1372. ((void (*)(unsigned long ulBase))ROM_I2STABLE[19])
  1373. #endif
  1374. //*****************************************************************************
  1375. //
  1376. // Macros for calling ROM functions in the GPIO API.
  1377. //
  1378. //*****************************************************************************
  1379. #if defined(TARGET_IS_CC3200)
  1380. #define ROM_GPIODirModeSet \
  1381. ((void (*)(unsigned long ulPort, \
  1382. unsigned char ucPins, \
  1383. unsigned long ulPinIO))ROM_GPIOTABLE[0])
  1384. #endif
  1385. #if defined(TARGET_IS_CC3200)
  1386. #define ROM_GPIODirModeGet \
  1387. ((unsigned long (*)(unsigned long ulPort, \
  1388. unsigned char ucPin))ROM_GPIOTABLE[1])
  1389. #endif
  1390. #if defined(TARGET_IS_CC3200)
  1391. #define ROM_GPIOIntTypeSet \
  1392. ((void (*)(unsigned long ulPort, \
  1393. unsigned char ucPins, \
  1394. unsigned long ulIntType))ROM_GPIOTABLE[2])
  1395. #endif
  1396. #if defined(TARGET_IS_CC3200)
  1397. #define ROM_GPIODMATriggerEnable \
  1398. ((void (*)(unsigned long ulPort))ROM_GPIOTABLE[3])
  1399. #endif
  1400. #if defined(TARGET_IS_CC3200)
  1401. #define ROM_GPIODMATriggerDisable \
  1402. ((void (*)(unsigned long ulPort))ROM_GPIOTABLE[4])
  1403. #endif
  1404. #if defined(TARGET_IS_CC3200)
  1405. #define ROM_GPIOIntTypeGet \
  1406. ((unsigned long (*)(unsigned long ulPort, \
  1407. unsigned char ucPin))ROM_GPIOTABLE[5])
  1408. #endif
  1409. #if defined(TARGET_IS_CC3200)
  1410. #define ROM_GPIOIntEnable \
  1411. ((void (*)(unsigned long ulPort, \
  1412. unsigned long ulIntFlags))ROM_GPIOTABLE[6])
  1413. #endif
  1414. #if defined(TARGET_IS_CC3200)
  1415. #define ROM_GPIOIntDisable \
  1416. ((void (*)(unsigned long ulPort, \
  1417. unsigned long ulIntFlags))ROM_GPIOTABLE[7])
  1418. #endif
  1419. #if defined(TARGET_IS_CC3200)
  1420. #define ROM_GPIOIntStatus \
  1421. ((long (*)(unsigned long ulPort, \
  1422. tBoolean bMasked))ROM_GPIOTABLE[8])
  1423. #endif
  1424. #if defined(TARGET_IS_CC3200)
  1425. #define ROM_GPIOIntClear \
  1426. ((void (*)(unsigned long ulPort, \
  1427. unsigned long ulIntFlags))ROM_GPIOTABLE[9])
  1428. #endif
  1429. #if defined(TARGET_IS_CC3200)
  1430. #define ROM_GPIOIntRegister \
  1431. ((void (*)(unsigned long ulPort, \
  1432. void (*pfnIntHandler)(void)))ROM_GPIOTABLE[10])
  1433. #endif
  1434. #if defined(TARGET_IS_CC3200)
  1435. #define ROM_GPIOIntUnregister \
  1436. ((void (*)(unsigned long ulPort))ROM_GPIOTABLE[11])
  1437. #endif
  1438. #if defined(TARGET_IS_CC3200)
  1439. #define ROM_GPIOPinRead \
  1440. ((long (*)(unsigned long ulPort, \
  1441. unsigned char ucPins))ROM_GPIOTABLE[12])
  1442. #endif
  1443. #if defined(TARGET_IS_CC3200)
  1444. #define ROM_GPIOPinWrite \
  1445. ((void (*)(unsigned long ulPort, \
  1446. unsigned char ucPins, \
  1447. unsigned char ucVal))ROM_GPIOTABLE[13])
  1448. #endif
  1449. //*****************************************************************************
  1450. //
  1451. // Macros for calling ROM functions in the AES API.
  1452. //
  1453. //*****************************************************************************
  1454. #if defined(TARGET_IS_CC3200)
  1455. #define ROM_AESConfigSet \
  1456. ((void (*)(uint32_t ui32Base, \
  1457. uint32_t ui32Config))ROM_AESTABLE[0])
  1458. #endif
  1459. #if defined(TARGET_IS_CC3200)
  1460. #define ROM_AESKey1Set \
  1461. ((void (*)(uint32_t ui32Base, \
  1462. uint8_t *pui8Key, \
  1463. uint32_t ui32Keysize))ROM_AESTABLE[1])
  1464. #endif
  1465. #if defined(TARGET_IS_CC3200)
  1466. #define ROM_AESKey2Set \
  1467. ((void (*)(uint32_t ui32Base, \
  1468. uint8_t *pui8Key, \
  1469. uint32_t ui32Keysize))ROM_AESTABLE[2])
  1470. #endif
  1471. #if defined(TARGET_IS_CC3200)
  1472. #define ROM_AESKey3Set \
  1473. ((void (*)(uint32_t ui32Base, \
  1474. uint8_t *pui8Key))ROM_AESTABLE[3])
  1475. #endif
  1476. #if defined(TARGET_IS_CC3200)
  1477. #define ROM_AESIVSet \
  1478. ((void (*)(uint32_t ui32Base, \
  1479. uint8_t *pui8IVdata))ROM_AESTABLE[4])
  1480. #endif
  1481. #if defined(TARGET_IS_CC3200)
  1482. #define ROM_AESTagRead \
  1483. ((void (*)(uint32_t ui32Base, \
  1484. uint8_t *pui8TagData))ROM_AESTABLE[5])
  1485. #endif
  1486. #if defined(TARGET_IS_CC3200)
  1487. #define ROM_AESDataLengthSet \
  1488. ((void (*)(uint32_t ui32Base, \
  1489. uint64_t ui64Length))ROM_AESTABLE[6])
  1490. #endif
  1491. #if defined(TARGET_IS_CC3200)
  1492. #define ROM_AESAuthDataLengthSet \
  1493. ((void (*)(uint32_t ui32Base, \
  1494. uint32_t ui32Length))ROM_AESTABLE[7])
  1495. #endif
  1496. #if defined(TARGET_IS_CC3200)
  1497. #define ROM_AESDataReadNonBlocking \
  1498. ((bool (*)(uint32_t ui32Base, \
  1499. uint8_t *pui8Dest, \
  1500. uint8_t ui8Length))ROM_AESTABLE[8])
  1501. #endif
  1502. #if defined(TARGET_IS_CC3200)
  1503. #define ROM_AESDataRead \
  1504. ((void (*)(uint32_t ui32Base, \
  1505. uint8_t *pui8Dest, \
  1506. uint8_t ui8Length))ROM_AESTABLE[9])
  1507. #endif
  1508. #if defined(TARGET_IS_CC3200)
  1509. #define ROM_AESDataWriteNonBlocking \
  1510. ((bool (*)(uint32_t ui32Base, \
  1511. uint8_t *pui8Src, \
  1512. uint8_t ui8Length))ROM_AESTABLE[10])
  1513. #endif
  1514. #if defined(TARGET_IS_CC3200)
  1515. #define ROM_AESDataWrite \
  1516. ((void (*)(uint32_t ui32Base, \
  1517. uint8_t *pui8Src, \
  1518. uint8_t ui8Length))ROM_AESTABLE[11])
  1519. #endif
  1520. #if defined(TARGET_IS_CC3200)
  1521. #define ROM_AESDataProcess \
  1522. ((bool (*)(uint32_t ui32Base, \
  1523. uint8_t *pui8Src, \
  1524. uint8_t *pui8Dest, \
  1525. uint32_t ui32Length))ROM_AESTABLE[12])
  1526. #endif
  1527. #if defined(TARGET_IS_CC3200)
  1528. #define ROM_AESDataMAC \
  1529. ((bool (*)(uint32_t ui32Base, \
  1530. uint8_t *pui8Src, \
  1531. uint32_t ui32Length, \
  1532. uint8_t *pui8Tag))ROM_AESTABLE[13])
  1533. #endif
  1534. #if defined(TARGET_IS_CC3200)
  1535. #define ROM_AESDataProcessAE \
  1536. ((bool (*)(uint32_t ui32Base, \
  1537. uint8_t *pui8Src, \
  1538. uint8_t *pui8Dest, \
  1539. uint32_t ui32Length, \
  1540. uint8_t *pui8AuthSrc, \
  1541. uint32_t ui32AuthLength, \
  1542. uint8_t *pui8Tag))ROM_AESTABLE[14])
  1543. #endif
  1544. #if defined(TARGET_IS_CC3200)
  1545. #define ROM_AESIntStatus \
  1546. ((uint32_t (*)(uint32_t ui32Base, \
  1547. bool bMasked))ROM_AESTABLE[15])
  1548. #endif
  1549. #if defined(TARGET_IS_CC3200)
  1550. #define ROM_AESIntEnable \
  1551. ((void (*)(uint32_t ui32Base, \
  1552. uint32_t ui32IntFlags))ROM_AESTABLE[16])
  1553. #endif
  1554. #if defined(TARGET_IS_CC3200)
  1555. #define ROM_AESIntDisable \
  1556. ((void (*)(uint32_t ui32Base, \
  1557. uint32_t ui32IntFlags))ROM_AESTABLE[17])
  1558. #endif
  1559. #if defined(TARGET_IS_CC3200)
  1560. #define ROM_AESIntClear \
  1561. ((void (*)(uint32_t ui32Base, \
  1562. uint32_t ui32IntFlags))ROM_AESTABLE[18])
  1563. #endif
  1564. #if defined(TARGET_IS_CC3200)
  1565. #define ROM_AESIntRegister \
  1566. ((void (*)(uint32_t ui32Base, \
  1567. void(*pfnHandler)(void)))ROM_AESTABLE[19])
  1568. #endif
  1569. #if defined(TARGET_IS_CC3200)
  1570. #define ROM_AESIntUnregister \
  1571. ((void (*)(uint32_t ui32Base))ROM_AESTABLE[20])
  1572. #endif
  1573. #if defined(TARGET_IS_CC3200)
  1574. #define ROM_AESDMAEnable \
  1575. ((void (*)(uint32_t ui32Base, \
  1576. uint32_t ui32Flags))ROM_AESTABLE[21])
  1577. #endif
  1578. #if defined(TARGET_IS_CC3200)
  1579. #define ROM_AESDMADisable \
  1580. ((void (*)(uint32_t ui32Base, \
  1581. uint32_t ui32Flags))ROM_AESTABLE[22])
  1582. #endif
  1583. //*****************************************************************************
  1584. //
  1585. // Macros for calling ROM functions in the DES API.
  1586. //
  1587. //*****************************************************************************
  1588. #if defined(TARGET_IS_CC3200)
  1589. #define ROM_DESConfigSet \
  1590. ((void (*)(uint32_t ui32Base, \
  1591. uint32_t ui32Config))ROM_DESTABLE[0])
  1592. #endif
  1593. #if defined(TARGET_IS_CC3200)
  1594. #define ROM_DESDataRead \
  1595. ((void (*)(uint32_t ui32Base, \
  1596. uint8_t *pui8Dest, \
  1597. uint8_t ui8Length))ROM_DESTABLE[1])
  1598. #endif
  1599. #if defined(TARGET_IS_CC3200)
  1600. #define ROM_DESDataReadNonBlocking \
  1601. ((bool (*)(uint32_t ui32Base, \
  1602. uint8_t *pui8Dest, \
  1603. uint8_t ui8Length))ROM_DESTABLE[2])
  1604. #endif
  1605. #if defined(TARGET_IS_CC3200)
  1606. #define ROM_DESDataProcess \
  1607. ((bool (*)(uint32_t ui32Base, \
  1608. uint8_t *pui8Src, \
  1609. uint8_t *pui8Dest, \
  1610. uint32_t ui32Length))ROM_DESTABLE[3])
  1611. #endif
  1612. #if defined(TARGET_IS_CC3200)
  1613. #define ROM_DESDataWrite \
  1614. ((void (*)(uint32_t ui32Base, \
  1615. uint8_t *pui8Src, \
  1616. uint8_t ui8Length))ROM_DESTABLE[4])
  1617. #endif
  1618. #if defined(TARGET_IS_CC3200)
  1619. #define ROM_DESDataWriteNonBlocking \
  1620. ((bool (*)(uint32_t ui32Base, \
  1621. uint8_t *pui8Src, \
  1622. uint8_t ui8Length))ROM_DESTABLE[5])
  1623. #endif
  1624. #if defined(TARGET_IS_CC3200)
  1625. #define ROM_DESDMADisable \
  1626. ((void (*)(uint32_t ui32Base, \
  1627. uint32_t ui32Flags))ROM_DESTABLE[6])
  1628. #endif
  1629. #if defined(TARGET_IS_CC3200)
  1630. #define ROM_DESDMAEnable \
  1631. ((void (*)(uint32_t ui32Base, \
  1632. uint32_t ui32Flags))ROM_DESTABLE[7])
  1633. #endif
  1634. #if defined(TARGET_IS_CC3200)
  1635. #define ROM_DESIntClear \
  1636. ((void (*)(uint32_t ui32Base, \
  1637. uint32_t ui32IntFlags))ROM_DESTABLE[8])
  1638. #endif
  1639. #if defined(TARGET_IS_CC3200)
  1640. #define ROM_DESIntDisable \
  1641. ((void (*)(uint32_t ui32Base, \
  1642. uint32_t ui32IntFlags))ROM_DESTABLE[9])
  1643. #endif
  1644. #if defined(TARGET_IS_CC3200)
  1645. #define ROM_DESIntEnable \
  1646. ((void (*)(uint32_t ui32Base, \
  1647. uint32_t ui32IntFlags))ROM_DESTABLE[10])
  1648. #endif
  1649. #if defined(TARGET_IS_CC3200)
  1650. #define ROM_DESIntRegister \
  1651. ((void (*)(uint32_t ui32Base, \
  1652. void(*pfnHandler)(void)))ROM_DESTABLE[11])
  1653. #endif
  1654. #if defined(TARGET_IS_CC3200)
  1655. #define ROM_DESIntStatus \
  1656. ((uint32_t (*)(uint32_t ui32Base, \
  1657. bool bMasked))ROM_DESTABLE[12])
  1658. #endif
  1659. #if defined(TARGET_IS_CC3200)
  1660. #define ROM_DESIntUnregister \
  1661. ((void (*)(uint32_t ui32Base))ROM_DESTABLE[13])
  1662. #endif
  1663. #if defined(TARGET_IS_CC3200)
  1664. #define ROM_DESIVSet \
  1665. ((bool (*)(uint32_t ui32Base, \
  1666. uint8_t *pui8IVdata))ROM_DESTABLE[14])
  1667. #endif
  1668. #if defined(TARGET_IS_CC3200)
  1669. #define ROM_DESKeySet \
  1670. ((void (*)(uint32_t ui32Base, \
  1671. uint8_t *pui8Key))ROM_DESTABLE[15])
  1672. #endif
  1673. #if defined(TARGET_IS_CC3200)
  1674. #define ROM_DESDataLengthSet \
  1675. ((void (*)(uint32_t ui32Base, \
  1676. uint32_t ui32Length))ROM_DESTABLE[16])
  1677. #endif
  1678. //*****************************************************************************
  1679. //
  1680. // Macros for calling ROM functions in the SHAMD5 API.
  1681. //
  1682. //*****************************************************************************
  1683. #if defined(TARGET_IS_CC3200)
  1684. #define ROM_SHAMD5ConfigSet \
  1685. ((void (*)(uint32_t ui32Base, \
  1686. uint32_t ui32Mode))ROM_SHAMD5TABLE[0])
  1687. #endif
  1688. #if defined(TARGET_IS_CC3200)
  1689. #define ROM_SHAMD5DataProcess \
  1690. ((bool (*)(uint32_t ui32Base, \
  1691. uint8_t *pui8DataSrc, \
  1692. uint32_t ui32DataLength, \
  1693. uint8_t *pui8HashResult))ROM_SHAMD5TABLE[1])
  1694. #endif
  1695. #if defined(TARGET_IS_CC3200)
  1696. #define ROM_SHAMD5DataWrite \
  1697. ((void (*)(uint32_t ui32Base, \
  1698. uint8_t *pui8Src))ROM_SHAMD5TABLE[2])
  1699. #endif
  1700. #if defined(TARGET_IS_CC3200)
  1701. #define ROM_SHAMD5DataWriteNonBlocking \
  1702. ((bool (*)(uint32_t ui32Base, \
  1703. uint8_t *pui8Src))ROM_SHAMD5TABLE[3])
  1704. #endif
  1705. #if defined(TARGET_IS_CC3200)
  1706. #define ROM_SHAMD5DMADisable \
  1707. ((void (*)(uint32_t ui32Base))ROM_SHAMD5TABLE[4])
  1708. #endif
  1709. #if defined(TARGET_IS_CC3200)
  1710. #define ROM_SHAMD5DMAEnable \
  1711. ((void (*)(uint32_t ui32Base))ROM_SHAMD5TABLE[5])
  1712. #endif
  1713. #if defined(TARGET_IS_CC3200)
  1714. #define ROM_SHAMD5DataLengthSet \
  1715. ((void (*)(uint32_t ui32Base, \
  1716. uint32_t ui32Length))ROM_SHAMD5TABLE[6])
  1717. #endif
  1718. #if defined(TARGET_IS_CC3200)
  1719. #define ROM_SHAMD5HMACKeySet \
  1720. ((void (*)(uint32_t ui32Base, \
  1721. uint8_t *pui8Src))ROM_SHAMD5TABLE[7])
  1722. #endif
  1723. #if defined(TARGET_IS_CC3200)
  1724. #define ROM_SHAMD5HMACPPKeyGenerate \
  1725. ((void (*)(uint32_t ui32Base, \
  1726. uint8_t *pui8Key, \
  1727. uint8_t *pui8PPKey))ROM_SHAMD5TABLE[8])
  1728. #endif
  1729. #if defined(TARGET_IS_CC3200)
  1730. #define ROM_SHAMD5HMACPPKeySet \
  1731. ((void (*)(uint32_t ui32Base, \
  1732. uint8_t *pui8Src))ROM_SHAMD5TABLE[9])
  1733. #endif
  1734. #if defined(TARGET_IS_CC3200)
  1735. #define ROM_SHAMD5HMACProcess \
  1736. ((bool (*)(uint32_t ui32Base, \
  1737. uint8_t *pui8DataSrc, \
  1738. uint32_t ui32DataLength, \
  1739. uint8_t *pui8HashResult))ROM_SHAMD5TABLE[10])
  1740. #endif
  1741. #if defined(TARGET_IS_CC3200)
  1742. #define ROM_SHAMD5IntClear \
  1743. ((void (*)(uint32_t ui32Base, \
  1744. uint32_t ui32IntFlags))ROM_SHAMD5TABLE[11])
  1745. #endif
  1746. #if defined(TARGET_IS_CC3200)
  1747. #define ROM_SHAMD5IntDisable \
  1748. ((void (*)(uint32_t ui32Base, \
  1749. uint32_t ui32IntFlags))ROM_SHAMD5TABLE[12])
  1750. #endif
  1751. #if defined(TARGET_IS_CC3200)
  1752. #define ROM_SHAMD5IntEnable \
  1753. ((void (*)(uint32_t ui32Base, \
  1754. uint32_t ui32IntFlags))ROM_SHAMD5TABLE[13])
  1755. #endif
  1756. #if defined(TARGET_IS_CC3200)
  1757. #define ROM_SHAMD5IntRegister \
  1758. ((void (*)(uint32_t ui32Base, \
  1759. void(*pfnHandler)(void)))ROM_SHAMD5TABLE[14])
  1760. #endif
  1761. #if defined(TARGET_IS_CC3200)
  1762. #define ROM_SHAMD5IntStatus \
  1763. ((uint32_t (*)(uint32_t ui32Base, \
  1764. bool bMasked))ROM_SHAMD5TABLE[15])
  1765. #endif
  1766. #if defined(TARGET_IS_CC3200)
  1767. #define ROM_SHAMD5IntUnregister \
  1768. ((void (*)(uint32_t ui32Base))ROM_SHAMD5TABLE[16])
  1769. #endif
  1770. #if defined(TARGET_IS_CC3200)
  1771. #define ROM_SHAMD5ResultRead \
  1772. ((void (*)(uint32_t ui32Base, \
  1773. uint8_t *pui8Dest))ROM_SHAMD5TABLE[17])
  1774. #endif
  1775. //*****************************************************************************
  1776. //
  1777. // Macros for calling ROM functions in the CRC API.
  1778. //
  1779. //*****************************************************************************
  1780. #if defined(TARGET_IS_CC3200)
  1781. #define ROM_CRCConfigSet \
  1782. ((void (*)(uint32_t ui32Base, \
  1783. uint32_t ui32CRCConfig))ROM_CRCTABLE[0])
  1784. #endif
  1785. #if defined(TARGET_IS_CC3200)
  1786. #define ROM_CRCDataProcess \
  1787. ((uint32_t (*)(uint32_t ui32Base, \
  1788. void *puiDataIn, \
  1789. uint32_t ui32DataLength, \
  1790. uint32_t ui32Config))ROM_CRCTABLE[1])
  1791. #endif
  1792. #if defined(TARGET_IS_CC3200)
  1793. #define ROM_CRCDataWrite \
  1794. ((void (*)(uint32_t ui32Base, \
  1795. uint32_t ui32Data))ROM_CRCTABLE[2])
  1796. #endif
  1797. #if defined(TARGET_IS_CC3200)
  1798. #define ROM_CRCResultRead \
  1799. ((uint32_t (*)(uint32_t ui32Base))ROM_CRCTABLE[3])
  1800. #endif
  1801. #if defined(TARGET_IS_CC3200)
  1802. #define ROM_CRCSeedSet \
  1803. ((void (*)(uint32_t ui32Base, \
  1804. uint32_t ui32Seed))ROM_CRCTABLE[4])
  1805. #endif
  1806. //*****************************************************************************
  1807. //
  1808. // Macros for calling ROM functions in the SDHOST API.
  1809. //
  1810. //*****************************************************************************
  1811. #if defined(TARGET_IS_CC3200)
  1812. #define ROM_SDHostCmdReset \
  1813. ((void (*)(unsigned long ulBase))ROM_SDHOSTTABLE[0])
  1814. #endif
  1815. #if defined(TARGET_IS_CC3200)
  1816. #define ROM_SDHostInit \
  1817. ((void (*)(unsigned long ulBase))ROM_SDHOSTTABLE[1])
  1818. #endif
  1819. #if defined(TARGET_IS_CC3200)
  1820. #define ROM_SDHostCmdSend \
  1821. ((long (*)(unsigned long ulBase, \
  1822. unsigned long ulCmd, \
  1823. unsigned ulArg))ROM_SDHOSTTABLE[2])
  1824. #endif
  1825. #if defined(TARGET_IS_CC3200)
  1826. #define ROM_SDHostIntRegister \
  1827. ((void (*)(unsigned long ulBase, \
  1828. void (*pfnHandler)(void)))ROM_SDHOSTTABLE[3])
  1829. #endif
  1830. #if defined(TARGET_IS_CC3200)
  1831. #define ROM_SDHostIntUnregister \
  1832. ((void (*)(unsigned long ulBase))ROM_SDHOSTTABLE[4])
  1833. #endif
  1834. #if defined(TARGET_IS_CC3200)
  1835. #define ROM_SDHostIntEnable \
  1836. ((void (*)(unsigned long ulBase, \
  1837. unsigned long ulIntFlags))ROM_SDHOSTTABLE[5])
  1838. #endif
  1839. #if defined(TARGET_IS_CC3200)
  1840. #define ROM_SDHostIntDisable \
  1841. ((void (*)(unsigned long ulBase, \
  1842. unsigned long ulIntFlags))ROM_SDHOSTTABLE[6])
  1843. #endif
  1844. #if defined(TARGET_IS_CC3200)
  1845. #define ROM_SDHostIntStatus \
  1846. ((unsigned long (*)(unsigned long ulBase))ROM_SDHOSTTABLE[7])
  1847. #endif
  1848. #if defined(TARGET_IS_CC3200)
  1849. #define ROM_SDHostIntClear \
  1850. ((void (*)(unsigned long ulBase, \
  1851. unsigned long ulIntFlags))ROM_SDHOSTTABLE[8])
  1852. #endif
  1853. #if defined(TARGET_IS_CC3200)
  1854. #define ROM_SDHostRespStatus \
  1855. ((unsigned long (*)(unsigned long ulBase))ROM_SDHOSTTABLE[9])
  1856. #endif
  1857. #if defined(TARGET_IS_CC3200)
  1858. #define ROM_SDHostRespGet \
  1859. ((void (*)(unsigned long ulBase, \
  1860. unsigned long ulRespnse[4]))ROM_SDHOSTTABLE[10])
  1861. #endif
  1862. #if defined(TARGET_IS_CC3200)
  1863. #define ROM_SDHostBlockSizeSet \
  1864. ((void (*)(unsigned long ulBase, \
  1865. unsigned short ulBlkSize))ROM_SDHOSTTABLE[11])
  1866. #endif
  1867. #if defined(TARGET_IS_CC3200)
  1868. #define ROM_SDHostBlockCountSet \
  1869. ((void (*)(unsigned long ulBase, \
  1870. unsigned short ulBlkCount))ROM_SDHOSTTABLE[12])
  1871. #endif
  1872. #if defined(TARGET_IS_CC3200)
  1873. #define ROM_SDHostDataNonBlockingWrite \
  1874. ((tBoolean (*)(unsigned long ulBase, \
  1875. unsigned long ulData))ROM_SDHOSTTABLE[13])
  1876. #endif
  1877. #if defined(TARGET_IS_CC3200)
  1878. #define ROM_SDHostDataNonBlockingRead \
  1879. ((tBoolean (*)(unsigned long ulBase, \
  1880. unsigned long *pulData))ROM_SDHOSTTABLE[14])
  1881. #endif
  1882. #if defined(TARGET_IS_CC3200)
  1883. #define ROM_SDHostDataWrite \
  1884. ((void (*)(unsigned long ulBase, \
  1885. unsigned long ulData))ROM_SDHOSTTABLE[15])
  1886. #endif
  1887. #if defined(TARGET_IS_CC3200)
  1888. #define ROM_SDHostDataRead \
  1889. ((void (*)(unsigned long ulBase, \
  1890. unsigned long *ulData))ROM_SDHOSTTABLE[16])
  1891. #endif
  1892. #if defined(TARGET_IS_CC3200)
  1893. #define ROM_SDHostSetExpClk \
  1894. ((void (*)(unsigned long ulBase, \
  1895. unsigned long ulSDHostClk, \
  1896. unsigned long ulCardClk))ROM_SDHOSTTABLE[17])
  1897. #endif
  1898. //*****************************************************************************
  1899. //
  1900. // Macros for calling ROM functions in the PRCM API.
  1901. //
  1902. //*****************************************************************************
  1903. #if defined(TARGET_IS_CC3200)
  1904. #define ROM_PRCMMCUReset \
  1905. ((void (*)(tBoolean bIncludeSubsystem))ROM_PRCMTABLE[1])
  1906. #endif
  1907. #if defined(TARGET_IS_CC3200)
  1908. #define ROM_PRCMSysResetCauseGet \
  1909. ((unsigned long (*)(void))ROM_PRCMTABLE[2])
  1910. #endif
  1911. #if defined(TARGET_IS_CC3200)
  1912. #define ROM_PRCMPeripheralClkEnable \
  1913. ((void (*)(unsigned long ulPeripheral, \
  1914. unsigned long ulClkFlags))ROM_PRCMTABLE[3])
  1915. #endif
  1916. #if defined(TARGET_IS_CC3200)
  1917. #define ROM_PRCMPeripheralClkDisable \
  1918. ((void (*)(unsigned long ulPeripheral, \
  1919. unsigned long ulClkFlags))ROM_PRCMTABLE[4])
  1920. #endif
  1921. #if defined(TARGET_IS_CC3200)
  1922. #define ROM_PRCMPeripheralReset \
  1923. ((void (*)(unsigned long ulPeripheral))ROM_PRCMTABLE[5])
  1924. #endif
  1925. #if defined(TARGET_IS_CC3200)
  1926. #define ROM_PRCMPeripheralStatusGet \
  1927. ((tBoolean (*)(unsigned long ulPeripheral))ROM_PRCMTABLE[6])
  1928. #endif
  1929. #if defined(TARGET_IS_CC3200)
  1930. #define ROM_PRCMI2SClockFreqSet \
  1931. ((void (*)(unsigned long ulI2CClkFreq))ROM_PRCMTABLE[7])
  1932. #endif
  1933. #if defined(TARGET_IS_CC3200)
  1934. #define ROM_PRCMPeripheralClockGet \
  1935. ((unsigned long (*)(unsigned long ulPeripheral))ROM_PRCMTABLE[8])
  1936. #endif
  1937. #if defined(TARGET_IS_CC3200)
  1938. #define ROM_PRCMSleepEnter \
  1939. ((void (*)(void))ROM_PRCMTABLE[9])
  1940. #endif
  1941. #if defined(TARGET_IS_CC3200)
  1942. #define ROM_PRCMDeepSleepEnter \
  1943. ((void (*)(void))ROM_PRCMTABLE[10])
  1944. #endif
  1945. #if defined(TARGET_IS_CC3200)
  1946. #define ROM_PRCMSRAMRetentionEnable \
  1947. ((void (*)(unsigned long ulSramColSel, \
  1948. unsigned long ulFlags))ROM_PRCMTABLE[11])
  1949. #endif
  1950. #if defined(TARGET_IS_CC3200)
  1951. #define ROM_PRCMSRAMRetentionDisable \
  1952. ((void (*)(unsigned long ulSramColSel, \
  1953. unsigned long ulFlags))ROM_PRCMTABLE[12])
  1954. #endif
  1955. #if defined(TARGET_IS_CC3200)
  1956. #define ROM_PRCMLPDSEnter \
  1957. ((void (*)(void))ROM_PRCMTABLE[13])
  1958. #endif
  1959. #if defined(TARGET_IS_CC3200)
  1960. #define ROM_PRCMLPDSIntervalSet \
  1961. ((void (*)(unsigned long ulTicks))ROM_PRCMTABLE[14])
  1962. #endif
  1963. #if defined(TARGET_IS_CC3200)
  1964. #define ROM_PRCMLPDSWakeupSourceEnable \
  1965. ((void (*)(unsigned long ulLpdsWakeupSrc))ROM_PRCMTABLE[15])
  1966. #endif
  1967. #if defined(TARGET_IS_CC3200)
  1968. #define ROM_PRCMLPDSWakeupCauseGet \
  1969. ((unsigned long (*)(void))ROM_PRCMTABLE[16])
  1970. #endif
  1971. #if defined(TARGET_IS_CC3200)
  1972. #define ROM_PRCMLPDSWakeUpGPIOSelect \
  1973. ((void (*)(unsigned long ulGPIOPin, \
  1974. unsigned long ulType))ROM_PRCMTABLE[17])
  1975. #endif
  1976. #if defined(TARGET_IS_CC3200)
  1977. #define ROM_PRCMLPDSWakeupSourceDisable \
  1978. ((void (*)(unsigned long ulLpdsWakeupSrc))ROM_PRCMTABLE[18])
  1979. #endif
  1980. #if defined(TARGET_IS_CC3200)
  1981. #define ROM_PRCMHibernateEnter \
  1982. ((void (*)(void))ROM_PRCMTABLE[19])
  1983. #endif
  1984. #if defined(TARGET_IS_CC3200)
  1985. #define ROM_PRCMHibernateWakeupSourceEnable \
  1986. ((void (*)(unsigned long ulHIBWakupSrc))ROM_PRCMTABLE[20])
  1987. #endif
  1988. #if defined(TARGET_IS_CC3200)
  1989. #define ROM_PRCMHibernateWakeupCauseGet \
  1990. ((unsigned long (*)(void))ROM_PRCMTABLE[21])
  1991. #endif
  1992. #if defined(TARGET_IS_CC3200)
  1993. #define ROM_PRCMHibernateWakeUpGPIOSelect \
  1994. ((void (*)(unsigned long ulMultiGPIOBitMap, \
  1995. unsigned long ulType))ROM_PRCMTABLE[22])
  1996. #endif
  1997. #if defined(TARGET_IS_CC3200)
  1998. #define ROM_PRCMHibernateWakeupSourceDisable \
  1999. ((void (*)(unsigned long ulHIBWakupSrc))ROM_PRCMTABLE[23])
  2000. #endif
  2001. #if defined(TARGET_IS_CC3200)
  2002. #define ROM_PRCMHibernateIntervalSet \
  2003. ((void (*)(unsigned long long ullTicks))ROM_PRCMTABLE[24])
  2004. #endif
  2005. #if defined(TARGET_IS_CC3200)
  2006. #define ROM_PRCMSlowClkCtrGet \
  2007. ((unsigned long long (*)(void))ROM_PRCMTABLE[25])
  2008. #endif
  2009. #if defined(TARGET_IS_CC3200)
  2010. #define ROM_PRCMSlowClkCtrMatchSet \
  2011. ((void (*)(unsigned long long ullTicks))ROM_PRCMTABLE[26])
  2012. #endif
  2013. #if defined(TARGET_IS_CC3200)
  2014. #define ROM_PRCMSlowClkCtrMatchGet \
  2015. ((unsigned long long (*)(void))ROM_PRCMTABLE[27])
  2016. #endif
  2017. #if defined(TARGET_IS_CC3200)
  2018. #define ROM_PRCMOCRRegisterWrite \
  2019. ((void (*)(unsigned char ucIndex, \
  2020. unsigned long ulRegValue))ROM_PRCMTABLE[28])
  2021. #endif
  2022. #if defined(TARGET_IS_CC3200)
  2023. #define ROM_PRCMOCRRegisterRead \
  2024. ((unsigned long (*)(unsigned char ucIndex))ROM_PRCMTABLE[29])
  2025. #endif
  2026. #if defined(TARGET_IS_CC3200)
  2027. #define ROM_PRCMIntRegister \
  2028. ((void (*)(void (*pfnHandler)(void)))ROM_PRCMTABLE[30])
  2029. #endif
  2030. #if defined(TARGET_IS_CC3200)
  2031. #define ROM_PRCMIntUnregister \
  2032. ((void (*)(void))ROM_PRCMTABLE[31])
  2033. #endif
  2034. #if defined(TARGET_IS_CC3200)
  2035. #define ROM_PRCMIntEnable \
  2036. ((void (*)(unsigned long ulIntFlags))ROM_PRCMTABLE[32])
  2037. #endif
  2038. #if defined(TARGET_IS_CC3200)
  2039. #define ROM_PRCMIntDisable \
  2040. ((void (*)(unsigned long ulIntFlags))ROM_PRCMTABLE[33])
  2041. #endif
  2042. #if defined(TARGET_IS_CC3200)
  2043. #define ROM_PRCMIntStatus \
  2044. ((unsigned long (*)(void))ROM_PRCMTABLE[34])
  2045. #endif
  2046. #if defined(TARGET_IS_CC3200)
  2047. #define ROM_PRCMRTCInUseSet \
  2048. ((void (*)(void))ROM_PRCMTABLE[35])
  2049. #endif
  2050. #if defined(TARGET_IS_CC3200)
  2051. #define ROM_PRCMRTCInUseGet \
  2052. ((tBoolean (*)(void))ROM_PRCMTABLE[36])
  2053. #endif
  2054. #if defined(TARGET_IS_CC3200)
  2055. #define ROM_PRCMRTCSet \
  2056. ((void (*)(unsigned long ulSecs, \
  2057. unsigned short usMsec))ROM_PRCMTABLE[37])
  2058. #endif
  2059. #if defined(TARGET_IS_CC3200)
  2060. #define ROM_PRCMRTCGet \
  2061. ((void (*)(unsigned long *ulSecs, \
  2062. unsigned short *usMsec))ROM_PRCMTABLE[38])
  2063. #endif
  2064. #if defined(TARGET_IS_CC3200)
  2065. #define ROM_PRCMRTCMatchSet \
  2066. ((void (*)(unsigned long ulSecs, \
  2067. unsigned short usMsec))ROM_PRCMTABLE[39])
  2068. #endif
  2069. #if defined(TARGET_IS_CC3200)
  2070. #define ROM_PRCMRTCMatchGet \
  2071. ((void (*)(unsigned long *ulSecs, \
  2072. unsigned short *usMsec))ROM_PRCMTABLE[40])
  2073. #endif
  2074. #if defined(TARGET_IS_CC3200)
  2075. #define ROM_PRCMLPDSRestoreInfoSet \
  2076. ((void (*)(unsigned long ulRestoreSP, \
  2077. unsigned long ulRestorePC))ROM_PRCMTABLE[41])
  2078. #endif
  2079. //*****************************************************************************
  2080. //
  2081. // Macros for calling ROM functions in the HWSPINLOCK API.
  2082. //
  2083. //*****************************************************************************
  2084. #if defined(TARGET_IS_CC3200)
  2085. #define ROM_HwSpinLockAcquire \
  2086. ((void (*)(uint32_t ui32LockID))ROM_HWSPINLOCKTABLE[0])
  2087. #endif
  2088. #if defined(TARGET_IS_CC3200)
  2089. #define ROM_HwSpinLockTryAcquire \
  2090. ((int32_t (*)(uint32_t ui32LockID, \
  2091. uint32_t ui32Retry))ROM_HWSPINLOCKTABLE[1])
  2092. #endif
  2093. #if defined(TARGET_IS_CC3200)
  2094. #define ROM_HwSpinLockRelease \
  2095. ((void (*)(uint32_t ui32LockID))ROM_HWSPINLOCKTABLE[2])
  2096. #endif
  2097. #if defined(TARGET_IS_CC3200)
  2098. #define ROM_HwSpinLockTest \
  2099. ((uint32_t (*)(uint32_t ui32LockID, \
  2100. bool bCurrentStatus))ROM_HWSPINLOCKTABLE[3])
  2101. #endif
  2102. //*****************************************************************************
  2103. //
  2104. // Macros for calling ROM functions in the ADC API.
  2105. //
  2106. //*****************************************************************************
  2107. #if defined(TARGET_IS_CC3200)
  2108. #define ROM_ADCEnable \
  2109. ((void (*)(unsigned long ulBase))ROM_ADCTABLE[0])
  2110. #endif
  2111. #if defined(TARGET_IS_CC3200)
  2112. #define ROM_ADCDisable \
  2113. ((void (*)(unsigned long ulBase))ROM_ADCTABLE[1])
  2114. #endif
  2115. #if defined(TARGET_IS_CC3200)
  2116. #define ROM_ADCChannelEnable \
  2117. ((void (*)(unsigned long ulBase, \
  2118. unsigned long ulChannel))ROM_ADCTABLE[2])
  2119. #endif
  2120. #if defined(TARGET_IS_CC3200)
  2121. #define ROM_ADCChannelDisable \
  2122. ((void (*)(unsigned long ulBase, \
  2123. unsigned long ulChannel))ROM_ADCTABLE[3])
  2124. #endif
  2125. #if defined(TARGET_IS_CC3200)
  2126. #define ROM_ADCIntRegister \
  2127. ((void (*)(unsigned long ulBase, \
  2128. unsigned long ulChannel, \
  2129. void (*pfnHandler)(void)))ROM_ADCTABLE[4])
  2130. #endif
  2131. #if defined(TARGET_IS_CC3200)
  2132. #define ROM_ADCIntUnregister \
  2133. ((void (*)(unsigned long ulBase, \
  2134. unsigned long ulChannel))ROM_ADCTABLE[5])
  2135. #endif
  2136. #if defined(TARGET_IS_CC3200)
  2137. #define ROM_ADCIntEnable \
  2138. ((void (*)(unsigned long ulBase, \
  2139. unsigned long ulChannel, \
  2140. unsigned long ulIntFlags))ROM_ADCTABLE[6])
  2141. #endif
  2142. #if defined(TARGET_IS_CC3200)
  2143. #define ROM_ADCIntDisable \
  2144. ((void (*)(unsigned long ulBase, \
  2145. unsigned long ulChannel, \
  2146. unsigned long ulIntFlags))ROM_ADCTABLE[7])
  2147. #endif
  2148. #if defined(TARGET_IS_CC3200)
  2149. #define ROM_ADCIntStatus \
  2150. ((unsigned long (*)(unsigned long ulBase, \
  2151. unsigned long ulChannel))ROM_ADCTABLE[8])
  2152. #endif
  2153. #if defined(TARGET_IS_CC3200)
  2154. #define ROM_ADCIntClear \
  2155. ((void (*)(unsigned long ulBase, \
  2156. unsigned long ulChannel, \
  2157. unsigned long ulIntFlags))ROM_ADCTABLE[9])
  2158. #endif
  2159. #if defined(TARGET_IS_CC3200)
  2160. #define ROM_ADCDMAEnable \
  2161. ((void (*)(unsigned long ulBase, \
  2162. unsigned long ulChannel))ROM_ADCTABLE[10])
  2163. #endif
  2164. #if defined(TARGET_IS_CC3200)
  2165. #define ROM_ADCDMADisable \
  2166. ((void (*)(unsigned long ulBase, \
  2167. unsigned long ulChannel))ROM_ADCTABLE[11])
  2168. #endif
  2169. #if defined(TARGET_IS_CC3200)
  2170. #define ROM_ADCChannelGainSet \
  2171. ((void (*)(unsigned long ulBase, \
  2172. unsigned long ulChannel, \
  2173. unsigned char ucGain))ROM_ADCTABLE[12])
  2174. #endif
  2175. #if defined(TARGET_IS_CC3200)
  2176. #define ROM_ADCChannleGainGet \
  2177. ((unsigned char (*)(unsigned long ulBase, \
  2178. unsigned long ulChannel))ROM_ADCTABLE[13])
  2179. #endif
  2180. #if defined(TARGET_IS_CC3200)
  2181. #define ROM_ADCTimerConfig \
  2182. ((void (*)(unsigned long ulBase, \
  2183. unsigned long ulValue))ROM_ADCTABLE[14])
  2184. #endif
  2185. #if defined(TARGET_IS_CC3200)
  2186. #define ROM_ADCTimerEnable \
  2187. ((void (*)(unsigned long ulBase))ROM_ADCTABLE[15])
  2188. #endif
  2189. #if defined(TARGET_IS_CC3200)
  2190. #define ROM_ADCTimerDisable \
  2191. ((void (*)(unsigned long ulBase))ROM_ADCTABLE[16])
  2192. #endif
  2193. #if defined(TARGET_IS_CC3200)
  2194. #define ROM_ADCTimerReset \
  2195. ((void (*)(unsigned long ulBase))ROM_ADCTABLE[17])
  2196. #endif
  2197. #if defined(TARGET_IS_CC3200)
  2198. #define ROM_ADCTimerValueGet \
  2199. ((unsigned long (*)(unsigned long ulBase))ROM_ADCTABLE[18])
  2200. #endif
  2201. #if defined(TARGET_IS_CC3200)
  2202. #define ROM_ADCFIFOLvlGet \
  2203. ((unsigned char (*)(unsigned long ulBase, \
  2204. unsigned long ulChannel))ROM_ADCTABLE[19])
  2205. #endif
  2206. #if defined(TARGET_IS_CC3200)
  2207. #define ROM_ADCFIFORead \
  2208. ((unsigned long (*)(unsigned long ulBase, \
  2209. unsigned long ulChannel))ROM_ADCTABLE[20])
  2210. #endif
  2211. #endif // __ROM_H__