Port_Ipw.c.017i.build_ssa_passes 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671
  1. Port_Ipw_RefreshPortDirection (const struct Port_ConfigType * pConfigPtr)
  2. {
  3. uint16 PinPad;
  4. uint16 u16PinIndex;
  5. uint16 u16NumPins;
  6. <bb 2> :
  7. u16NumPins = pConfigPtr->u16NumPins;
  8. u16PinIndex = 0;
  9. goto <bb 12>; [INV]
  10. <bb 3> :
  11. _1 = pConfigPtr->pUsedPadConfig;
  12. _2 = (unsigned int) u16PinIndex;
  13. _3 = _2 * 20;
  14. _4 = _1 + _3;
  15. _5 = _4->bDC;
  16. _6 = ~_5;
  17. if (_6 != 0)
  18. goto <bb 4>; [INV]
  19. else
  20. goto <bb 11>; [INV]
  21. <bb 4> :
  22. _7 = pConfigPtr->pUsedPadConfig;
  23. _8 = (unsigned int) u16PinIndex;
  24. _9 = _8 * 20;
  25. _10 = _7 + _9;
  26. _11 = _10->bGPIO;
  27. if (_11 != 0)
  28. goto <bb 5>; [INV]
  29. else
  30. goto <bb 11>; [INV]
  31. <bb 5> :
  32. _12 = pConfigPtr->pUsedPadConfig;
  33. _13 = (unsigned int) u16PinIndex;
  34. _14 = _13 * 20;
  35. _15 = _12 + _14;
  36. PinPad = _15->Pin;
  37. _16 = pConfigPtr->pUsedPadConfig;
  38. _17 = (unsigned int) u16PinIndex;
  39. _18 = _17 * 20;
  40. _19 = _16 + _18;
  41. _20 = _19->ePadDir;
  42. if (_20 == 2)
  43. goto <bb 6>; [INV]
  44. else
  45. goto <bb 7>; [INV]
  46. <bb 6> :
  47. _21 = PinPad >> 5;
  48. _22 = (long unsigned int) _21;
  49. _23 = Port_au32PortCiGpioBaseAddr[_22];
  50. _24 = (long unsigned int) PinPad;
  51. _25 = _24 & 31;
  52. _26 = 1 << _25;
  53. Port_Ci_Port_Ip_SetPDDR (_23, _26);
  54. goto <bb 11>; [INV]
  55. <bb 7> :
  56. _27 = pConfigPtr->pUsedPadConfig;
  57. _28 = (unsigned int) u16PinIndex;
  58. _29 = _28 * 20;
  59. _30 = _27 + _29;
  60. _31 = _30->ePadDir;
  61. if (_31 == 1)
  62. goto <bb 9>; [INV]
  63. else
  64. goto <bb 8>; [INV]
  65. <bb 8> :
  66. _32 = pConfigPtr->pUsedPadConfig;
  67. _33 = (unsigned int) u16PinIndex;
  68. _34 = _33 * 20;
  69. _35 = _32 + _34;
  70. _36 = _35->ePadDir;
  71. if (_36 == 3)
  72. goto <bb 9>; [INV]
  73. else
  74. goto <bb 11>; [INV]
  75. <bb 9> :
  76. _37 = PinPad >> 5;
  77. _38 = (long unsigned int) _37;
  78. _39 = Port_au32PortCiGpioBaseAddr[_38];
  79. _40 = (long unsigned int) PinPad;
  80. _41 = _40 & 31;
  81. _42 = 1 << _41;
  82. Port_Ci_Port_Ip_ClearPDDR (_39, _42);
  83. _43 = pConfigPtr->pUsedPadConfig;
  84. _44 = (unsigned int) u16PinIndex;
  85. _45 = _44 * 20;
  86. _46 = _43 + _45;
  87. _47 = _46->ePadDir;
  88. if (_47 == 3)
  89. goto <bb 10>; [INV]
  90. else
  91. goto <bb 11>; [INV]
  92. <bb 10> :
  93. _48 = PinPad >> 5;
  94. _49 = (long unsigned int) _48;
  95. _50 = Port_au32PortCiGpioBaseAddr[_49];
  96. _51 = (long unsigned int) PinPad;
  97. _52 = _51 & 31;
  98. _53 = 1 << _52;
  99. Port_Ci_Port_Ip_SetPIDR (_50, _53);
  100. <bb 11> :
  101. u16PinIndex.3_54 = u16PinIndex;
  102. u16PinIndex = u16PinIndex.3_54 + 1;
  103. <bb 12> :
  104. if (u16PinIndex < u16NumPins)
  105. goto <bb 3>; [INV]
  106. else
  107. goto <bb 13>; [INV]
  108. <bb 13> :
  109. return;
  110. }
  111. Port_Ipw_SetGpioPadOutput (Port_PinType PinIndex, const struct Port_ConfigType * pConfigPtr)
  112. {
  113. uint8 u8LocalPDO;
  114. uint16 Pin;
  115. <bb 2> :
  116. _1 = pConfigPtr->pUsedPadConfig;
  117. _2 = PinIndex * 20;
  118. _3 = _1 + _2;
  119. Pin = _3->Pin;
  120. _4 = pConfigPtr->pUsedPadConfig;
  121. _5 = PinIndex * 20;
  122. _6 = _4 + _5;
  123. u8LocalPDO = _6->u8PDO;
  124. if (u8LocalPDO == 1)
  125. goto <bb 3>; [INV]
  126. else
  127. goto <bb 4>; [INV]
  128. <bb 3> :
  129. _7 = Pin >> 5;
  130. _8 = (long unsigned int) _7;
  131. _9 = Port_au32PortCiGpioBaseAddr[_8];
  132. _10 = (long unsigned int) Pin;
  133. _11 = _10 & 31;
  134. _12 = 1 << _11;
  135. Port_Ci_Port_Ip_SetPSOR (_9, _12);
  136. goto <bb 6>; [INV]
  137. <bb 4> :
  138. if (u8LocalPDO == 0)
  139. goto <bb 5>; [INV]
  140. else
  141. goto <bb 6>; [INV]
  142. <bb 5> :
  143. _13 = Pin >> 5;
  144. _14 = (long unsigned int) _13;
  145. _15 = Port_au32PortCiGpioBaseAddr[_14];
  146. _16 = (long unsigned int) Pin;
  147. _17 = _16 & 31;
  148. _18 = 1 << _17;
  149. Port_Ci_Port_Ip_SetPCOR (_15, _18);
  150. <bb 6> :
  151. return;
  152. }
  153. Port_Ipw_SetGpioDirChangeability (uint16 PadID, boolean bStatus)
  154. {
  155. uint16 u16PinDirFlagWord;
  156. uint8 u8PinBitOffset;
  157. <bb 2> :
  158. SchM_Enter_Port_PORT_EXCLUSIVE_AREA_00 ();
  159. _1 = (unsigned char) PadID;
  160. u8PinBitOffset = _1 & 15;
  161. _2 = (unsigned char) PadID;
  162. _3 = _2 >> 4;
  163. _4 = (int) _3;
  164. u16PinDirFlagWord = Port_Ipw_au16GpioDirChangeability[_4];
  165. if (bStatus != 0)
  166. goto <bb 3>; [INV]
  167. else
  168. goto <bb 4>; [INV]
  169. <bb 3> :
  170. _5 = (int) u8PinBitOffset;
  171. _6 = 1 << _5;
  172. _7 = (short unsigned int) _6;
  173. u16PinDirFlagWord = u16PinDirFlagWord | _7;
  174. goto <bb 5>; [INV]
  175. <bb 4> :
  176. _8 = (int) u8PinBitOffset;
  177. _9 = 1 << _8;
  178. _10 = (short unsigned int) _9;
  179. _11 = ~_10;
  180. u16PinDirFlagWord = u16PinDirFlagWord & _11;
  181. <bb 5> :
  182. _12 = (unsigned char) PadID;
  183. _13 = _12 >> 4;
  184. _14 = (int) _13;
  185. Port_Ipw_au16GpioDirChangeability[_14] = u16PinDirFlagWord;
  186. SchM_Exit_Port_PORT_EXCLUSIVE_AREA_00 ();
  187. return;
  188. }
  189. Port_Ipw_SetPinMode (Port_PinType PinIndex, Port_PinModeType PinMode, const struct Port_ConfigType * pConfigPtr)
  190. {
  191. Port_PinDirectionType ePadDirection;
  192. uint32 u32LocalPCR;
  193. uint16 u16PinDescBitOffset;
  194. uint16 u16PinDescWord;
  195. Port_PinModeType PinCfgRegValue;
  196. uint16 PinPad;
  197. Std_ReturnType PinModeError;
  198. Std_ReturnType D.5867;
  199. <bb 2> :
  200. PinModeError = 0;
  201. _1 = pConfigPtr->pUsedPadConfig;
  202. _2 = PinIndex * 20;
  203. _3 = _1 + _2;
  204. PinPad = _3->Pin;
  205. PinCfgRegValue = PinMode;
  206. if (PinMode > 7)
  207. goto <bb 3>; [INV]
  208. else
  209. goto <bb 4>; [INV]
  210. <bb 3> :
  211. PinModeError = 13;
  212. goto <bb 13>; [INV]
  213. <bb 4> :
  214. ePadDirection = 0;
  215. u16PinDescBitOffset = PinPad & 15;
  216. _4 = (int) PinMode;
  217. _5 = PinPad >> 4;
  218. _6 = (int) _5;
  219. u16PinDescWord = Port_au16PinDescription[_4][_6];
  220. _7 = (int) u16PinDescWord;
  221. _8 = (int) u16PinDescBitOffset;
  222. _9 = _7 >> _8;
  223. _10 = _9 & 1;
  224. if (_10 != 0)
  225. goto <bb 5>; [INV]
  226. else
  227. goto <bb 12>; [INV]
  228. <bb 5> :
  229. _11 = (int) PinMode;
  230. if (_11 == 1)
  231. goto <bb 6>; [INV]
  232. else
  233. goto <bb 10>; [INV]
  234. <bb 6> :
  235. <L3>:
  236. Port_Ipw_SetGpioDirChangeability (PinPad, 1);
  237. _12 = pConfigPtr->pUsedPadConfig;
  238. _13 = PinIndex * 20;
  239. _14 = _12 + _13;
  240. ePadDirection = _14->ePadDir;
  241. if (ePadDirection != 1)
  242. goto <bb 7>; [INV]
  243. else
  244. goto <bb 9>; [INV]
  245. <bb 7> :
  246. if (ePadDirection != 3)
  247. goto <bb 8>; [INV]
  248. else
  249. goto <bb 9>; [INV]
  250. <bb 8> :
  251. Port_Ipw_SetGpioPadOutput (PinIndex, pConfigPtr);
  252. <bb 9> :
  253. Port_Ipw_SetPinDirection (PinIndex, ePadDirection, pConfigPtr);
  254. goto <bb 11>; [INV]
  255. <bb 10> :
  256. <L8>:
  257. Port_Ipw_SetGpioDirChangeability (PinPad, 0);
  258. <bb 11> :
  259. _15 = PinPad >> 5;
  260. _16 = (long unsigned int) _15;
  261. _17 = Port_au32PortCiPortBaseAddr[_16];
  262. _18 = (long unsigned int) PinPad;
  263. _19 = _18 & 31;
  264. u32LocalPCR = Port_Ci_Port_Ip_ReadPCR (_17, _19);
  265. u32LocalPCR = u32LocalPCR & 4294965503;
  266. _20 = (long unsigned int) PinCfgRegValue;
  267. _21 = _20 << 8;
  268. u32LocalPCR = u32LocalPCR | _21;
  269. _22 = PinPad >> 5;
  270. _23 = (long unsigned int) _22;
  271. _24 = Port_au32PortCiPortBaseAddr[_23];
  272. _25 = (long unsigned int) PinPad;
  273. _26 = _25 & 31;
  274. Port_Ci_Port_Ip_SetPCR (_24, _26, u32LocalPCR);
  275. goto <bb 13>; [INV]
  276. <bb 12> :
  277. PinModeError = 13;
  278. <bb 13> :
  279. D.5867 = PinModeError;
  280. <bb 14> :
  281. <L13>:
  282. return D.5867;
  283. }
  284. Port_Ipw_SetPinDirection (Port_PinType PinIndex, Port_PinDirectionType eDirection, const struct Port_ConfigType * pConfigPtr)
  285. {
  286. uint16 u16PinChangeDirFlagWord;
  287. uint8 u8PinDescBitOffset;
  288. Std_ReturnType PinDirError;
  289. uint16 Pin;
  290. Std_ReturnType D.5855;
  291. <bb 2> :
  292. _1 = pConfigPtr->pUsedPadConfig;
  293. _2 = PinIndex * 20;
  294. _3 = _1 + _2;
  295. Pin = _3->Pin;
  296. PinDirError = 0;
  297. _4 = (unsigned char) Pin;
  298. u8PinDescBitOffset = _4 & 15;
  299. _5 = Pin >> 4;
  300. _6 = (unsigned char) _5;
  301. _7 = (int) _6;
  302. u16PinChangeDirFlagWord = Port_Ipw_au16GpioDirChangeability[_7];
  303. _8 = pConfigPtr->pUsedPadConfig;
  304. _9 = PinIndex * 20;
  305. _10 = _8 + _9;
  306. _11 = _10->bDC;
  307. if (_11 != 0)
  308. goto <bb 4>; [INV]
  309. else
  310. goto <bb 3>; [INV]
  311. <bb 3> :
  312. _12 = (int) u8PinDescBitOffset;
  313. _13 = 1 << _12;
  314. _14 = (short unsigned int) _13;
  315. _15 = u16PinChangeDirFlagWord & _14;
  316. if (_15 != 0)
  317. goto <bb 4>; [INV]
  318. else
  319. goto <bb 11>; [INV]
  320. <bb 4> :
  321. if (eDirection == 2)
  322. goto <bb 5>; [INV]
  323. else
  324. goto <bb 6>; [INV]
  325. <bb 5> :
  326. _16 = Pin >> 5;
  327. _17 = (long unsigned int) _16;
  328. _18 = Port_au32PortCiGpioBaseAddr[_17];
  329. _19 = (long unsigned int) Pin;
  330. _20 = _19 & 31;
  331. _21 = 1 << _20;
  332. Port_Ci_Port_Ip_SetPDDR (_18, _21);
  333. goto <bb 10>; [INV]
  334. <bb 6> :
  335. if (eDirection == 1)
  336. goto <bb 8>; [INV]
  337. else
  338. goto <bb 7>; [INV]
  339. <bb 7> :
  340. if (eDirection == 3)
  341. goto <bb 8>; [INV]
  342. else
  343. goto <bb 10>; [INV]
  344. <bb 8> :
  345. _22 = Pin >> 5;
  346. _23 = (long unsigned int) _22;
  347. _24 = Port_au32PortCiGpioBaseAddr[_23];
  348. _25 = (long unsigned int) Pin;
  349. _26 = _25 & 31;
  350. _27 = 1 << _26;
  351. Port_Ci_Port_Ip_ClearPDDR (_24, _27);
  352. if (eDirection == 3)
  353. goto <bb 9>; [INV]
  354. else
  355. goto <bb 10>; [INV]
  356. <bb 9> :
  357. _28 = Pin >> 5;
  358. _29 = (long unsigned int) _28;
  359. _30 = Port_au32PortCiGpioBaseAddr[_29];
  360. _31 = (long unsigned int) Pin;
  361. _32 = _31 & 31;
  362. _33 = 1 << _32;
  363. Port_Ci_Port_Ip_SetPIDR (_30, _33);
  364. <bb 10> :
  365. goto <bb 12>; [INV]
  366. <bb 11> :
  367. PinDirError = 1;
  368. <bb 12> :
  369. D.5855 = PinDirError;
  370. <bb 13> :
  371. <L12>:
  372. return D.5855;
  373. }
  374. Port_Ipw_Init (const struct Port_ConfigType * pConfigPtr)
  375. {
  376. uint8 u8Port;
  377. uint8 u8NumDigFilterPorts;
  378. uint16 u16PinIndex;
  379. <bb 2> :
  380. u8NumDigFilterPorts = pConfigPtr->u8NumDigitalFilterPorts;
  381. u16PinIndex = 0;
  382. goto <bb 4>; [INV]
  383. <bb 3> :
  384. _1 = pConfigPtr->pDigitalFilterConfig;
  385. _2 = (unsigned int) u16PinIndex;
  386. _3 = _2 * 8;
  387. _4 = _1 + _3;
  388. u8Port = _4->u8Port;
  389. _5 = (int) u8Port;
  390. _6 = Port_au32PortCiPortBaseAddr[_5];
  391. _7 = pConfigPtr->pDigitalFilterConfig;
  392. _8 = (unsigned int) u16PinIndex;
  393. _9 = _8 * 8;
  394. _10 = _7 + _9;
  395. Port_Ci_Port_Ip_ConfigDigitalFilter (_6, _10);
  396. _11 = (int) u8Port;
  397. _12 = Port_au32PortCiPortBaseAddr[_11];
  398. _13 = pConfigPtr->pDigitalFilterConfig;
  399. _14 = (unsigned int) u16PinIndex;
  400. _15 = _14 * 8;
  401. _16 = _13 + _15;
  402. _17 = _16->u32PinMask;
  403. Port_Ci_Port_Ip_SetDFER (_12, _17);
  404. u16PinIndex.0_18 = u16PinIndex;
  405. u16PinIndex = u16PinIndex.0_18 + 1;
  406. <bb 4> :
  407. _19 = (short unsigned int) u8NumDigFilterPorts;
  408. if (u16PinIndex < _19)
  409. goto <bb 3>; [INV]
  410. else
  411. goto <bb 5>; [INV]
  412. <bb 5> :
  413. _20 = pConfigPtr->IpConfigPtr;
  414. Port_Ci_Port_Ip_Init (13, _20);
  415. Port_Ipw_Init_UnusedPins (pConfigPtr);
  416. u16PinIndex = 0;
  417. goto <bb 7>; [INV]
  418. <bb 6> :
  419. _21 = (int) u16PinIndex;
  420. Port_Ipw_au16GpioDirChangeability[_21] = 0;
  421. u16PinIndex.1_22 = u16PinIndex;
  422. u16PinIndex = u16PinIndex.1_22 + 1;
  423. <bb 7> :
  424. if (u16PinIndex <= 8)
  425. goto <bb 6>; [INV]
  426. else
  427. goto <bb 8>; [INV]
  428. <bb 8> :
  429. return;
  430. }
  431. Port_Ipw_Init_UnusedPins (const struct Port_ConfigType * pConfigPtr)
  432. {
  433. Port_PinDirectionType eLocalPDDIR;
  434. uint32 u32LocalPCR;
  435. uint8 u8LocalPDO;
  436. uint16 u16NumUnusedPins;
  437. uint16 u16PinIndex;
  438. <bb 2> :
  439. u16NumUnusedPins = pConfigPtr->u16NumUnusedPins;
  440. _1 = pConfigPtr->pUnusedPadConfig;
  441. u8LocalPDO = _1->u8PDO;
  442. _2 = pConfigPtr->pUnusedPadConfig;
  443. u32LocalPCR = _2->u32PCR;
  444. _3 = pConfigPtr->pUnusedPadConfig;
  445. eLocalPDDIR = _3->ePadDir;
  446. u16PinIndex = 0;
  447. goto <bb 12>; [INV]
  448. <bb 3> :
  449. if (eLocalPDDIR == 2)
  450. goto <bb 4>; [INV]
  451. else
  452. goto <bb 9>; [INV]
  453. <bb 4> :
  454. if (u8LocalPDO == 1)
  455. goto <bb 5>; [INV]
  456. else
  457. goto <bb 6>; [INV]
  458. <bb 5> :
  459. _4 = pConfigPtr->pUnusedPads;
  460. _5 = (unsigned int) u16PinIndex;
  461. _6 = _5 * 2;
  462. _7 = _4 + _6;
  463. _8 = *_7;
  464. _9 = _8 >> 5;
  465. _10 = (long unsigned int) _9;
  466. _11 = Port_au32PortCiGpioBaseAddr[_10];
  467. _12 = pConfigPtr->pUnusedPads;
  468. _13 = (unsigned int) u16PinIndex;
  469. _14 = _13 * 2;
  470. _15 = _12 + _14;
  471. _16 = *_15;
  472. _17 = (long unsigned int) _16;
  473. _18 = _17 & 31;
  474. _19 = 1 << _18;
  475. Port_Ci_Port_Ip_SetPSOR (_11, _19);
  476. goto <bb 8>; [INV]
  477. <bb 6> :
  478. if (u8LocalPDO == 0)
  479. goto <bb 7>; [INV]
  480. else
  481. goto <bb 8>; [INV]
  482. <bb 7> :
  483. _20 = pConfigPtr->pUnusedPads;
  484. _21 = (unsigned int) u16PinIndex;
  485. _22 = _21 * 2;
  486. _23 = _20 + _22;
  487. _24 = *_23;
  488. _25 = _24 >> 5;
  489. _26 = (long unsigned int) _25;
  490. _27 = Port_au32PortCiGpioBaseAddr[_26];
  491. _28 = pConfigPtr->pUnusedPads;
  492. _29 = (unsigned int) u16PinIndex;
  493. _30 = _29 * 2;
  494. _31 = _28 + _30;
  495. _32 = *_31;
  496. _33 = (long unsigned int) _32;
  497. _34 = _33 & 31;
  498. _35 = 1 << _34;
  499. Port_Ci_Port_Ip_SetPCOR (_27, _35);
  500. <bb 8> :
  501. _36 = pConfigPtr->pUnusedPads;
  502. _37 = (unsigned int) u16PinIndex;
  503. _38 = _37 * 2;
  504. _39 = _36 + _38;
  505. _40 = *_39;
  506. _41 = _40 >> 5;
  507. _42 = (long unsigned int) _41;
  508. _43 = Port_au32PortCiGpioBaseAddr[_42];
  509. _44 = pConfigPtr->pUnusedPads;
  510. _45 = (unsigned int) u16PinIndex;
  511. _46 = _45 * 2;
  512. _47 = _44 + _46;
  513. _48 = *_47;
  514. _49 = (long unsigned int) _48;
  515. _50 = _49 & 31;
  516. _51 = 1 << _50;
  517. Port_Ci_Port_Ip_SetPDDR (_43, _51);
  518. goto <bb 11>; [INV]
  519. <bb 9> :
  520. _52 = pConfigPtr->pUnusedPads;
  521. _53 = (unsigned int) u16PinIndex;
  522. _54 = _53 * 2;
  523. _55 = _52 + _54;
  524. _56 = *_55;
  525. _57 = _56 >> 5;
  526. _58 = (long unsigned int) _57;
  527. _59 = Port_au32PortCiGpioBaseAddr[_58];
  528. _60 = pConfigPtr->pUnusedPads;
  529. _61 = (unsigned int) u16PinIndex;
  530. _62 = _61 * 2;
  531. _63 = _60 + _62;
  532. _64 = *_63;
  533. _65 = (long unsigned int) _64;
  534. _66 = _65 & 31;
  535. _67 = 1 << _66;
  536. Port_Ci_Port_Ip_ClearPDDR (_59, _67);
  537. if (eLocalPDDIR == 3)
  538. goto <bb 10>; [INV]
  539. else
  540. goto <bb 11>; [INV]
  541. <bb 10> :
  542. _68 = pConfigPtr->pUnusedPads;
  543. _69 = (unsigned int) u16PinIndex;
  544. _70 = _69 * 2;
  545. _71 = _68 + _70;
  546. _72 = *_71;
  547. _73 = _72 >> 5;
  548. _74 = (long unsigned int) _73;
  549. _75 = Port_au32PortCiGpioBaseAddr[_74];
  550. _76 = pConfigPtr->pUnusedPads;
  551. _77 = (unsigned int) u16PinIndex;
  552. _78 = _77 * 2;
  553. _79 = _76 + _78;
  554. _80 = *_79;
  555. _81 = (long unsigned int) _80;
  556. _82 = _81 & 31;
  557. _83 = 1 << _82;
  558. Port_Ci_Port_Ip_SetPIDR (_75, _83);
  559. <bb 11> :
  560. _84 = pConfigPtr->pUnusedPads;
  561. _85 = (unsigned int) u16PinIndex;
  562. _86 = _85 * 2;
  563. _87 = _84 + _86;
  564. _88 = *_87;
  565. _89 = _88 >> 5;
  566. _90 = (long unsigned int) _89;
  567. _91 = Port_au32PortCiPortBaseAddr[_90];
  568. _92 = pConfigPtr->pUnusedPads;
  569. _93 = (unsigned int) u16PinIndex;
  570. _94 = _93 * 2;
  571. _95 = _92 + _94;
  572. _96 = *_95;
  573. _97 = (long unsigned int) _96;
  574. _98 = _97 & 31;
  575. Port_Ci_Port_Ip_SetPCR (_91, _98, u32LocalPCR);
  576. u16PinIndex.2_99 = u16PinIndex;
  577. u16PinIndex = u16PinIndex.2_99 + 1;
  578. <bb 12> :
  579. if (u16PinIndex < u16NumUnusedPins)
  580. goto <bb 3>; [INV]
  581. else
  582. goto <bb 13>; [INV]
  583. <bb 13> :
  584. return;
  585. }