Uart.c.022i.opt_local_passes 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971
  1. Uart_GetVersionInfo (struct Std_VersionInfoType * VersionInfo)
  2. {
  3. <bb 2> :
  4. if (VersionInfo_2(D) == 0B)
  5. goto <bb 3>; [INV]
  6. else
  7. goto <bb 4>; [INV]
  8. <bb 3> :
  9. Det_ReportError (255, 0, 10, 3);
  10. goto <bb 5>; [INV]
  11. <bb 4> :
  12. VersionInfo_2(D)->vendorID = 43;
  13. VersionInfo_2(D)->moduleID = 255;
  14. VersionInfo_2(D)->sw_major_version = 1;
  15. VersionInfo_2(D)->sw_minor_version = 0;
  16. VersionInfo_2(D)->sw_patch_version = 0;
  17. <bb 5> :
  18. return;
  19. }
  20. Uart_GetStatus (uint8 Channel, uint32 * BytesTransfered, Uart_DataDirectionType TransferType)
  21. {
  22. uint8 CoreId;
  23. Uart_StatusType TempReturn;
  24. Uart_StatusType D.6442;
  25. int _1;
  26. <unnamed type> _2;
  27. Uart_StatusType _18;
  28. <bb 2> :
  29. TempReturn_5 = 4;
  30. CoreId_6 = 0;
  31. _1 = (int) CoreId_6;
  32. _2 = Uart_au8DriverStatus[_1];
  33. if (_2 == 0)
  34. goto <bb 3>; [INV]
  35. else
  36. goto <bb 4>; [INV]
  37. <bb 3> :
  38. Det_ReportError (255, 0, 9, 1);
  39. goto <bb 11>; [INV]
  40. <bb 4> :
  41. if (Channel_8(D) > 2)
  42. goto <bb 5>; [INV]
  43. else
  44. goto <bb 6>; [INV]
  45. <bb 5> :
  46. Det_ReportError (255, 0, 9, 2);
  47. goto <bb 11>; [INV]
  48. <bb 6> :
  49. if (BytesTransfered_9(D) == 0B)
  50. goto <bb 7>; [INV]
  51. else
  52. goto <bb 8>; [INV]
  53. <bb 7> :
  54. Det_ReportError (255, 0, 9, 3);
  55. goto <bb 11>; [INV]
  56. <bb 8> :
  57. if (TransferType_10(D) == 0)
  58. goto <bb 9>; [INV]
  59. else
  60. goto <bb 10>; [INV]
  61. <bb 9> :
  62. TempReturn_14 = Uart_Ipw_GetTransmitStatus (Channel_8(D), BytesTransfered_9(D));
  63. goto <bb 11>; [INV]
  64. <bb 10> :
  65. TempReturn_12 = Uart_Ipw_GetReceiveStatus (Channel_8(D), BytesTransfered_9(D));
  66. <bb 11> :
  67. # TempReturn_3 = PHI <TempReturn_5(3), TempReturn_5(5), TempReturn_5(7), TempReturn_14(9), TempReturn_12(10)>
  68. _18 = TempReturn_3;
  69. <bb 12> :
  70. <L12>:
  71. return _18;
  72. }
  73. Uart_AsyncSend (uint8 Channel, const uint8 * Buffer, uint32 BufferSize)
  74. {
  75. uint8 CoreId;
  76. Std_ReturnType TempReturn;
  77. Std_ReturnType D.6428;
  78. int _1;
  79. <unnamed type> _2;
  80. Std_ReturnType _17;
  81. <bb 2> :
  82. TempReturn_5 = 1;
  83. CoreId_6 = 0;
  84. _1 = (int) CoreId_6;
  85. _2 = Uart_au8DriverStatus[_1];
  86. if (_2 == 0)
  87. goto <bb 3>; [INV]
  88. else
  89. goto <bb 4>; [INV]
  90. <bb 3> :
  91. Det_ReportError (255, 0, 5, 1);
  92. goto <bb 11>; [INV]
  93. <bb 4> :
  94. if (Channel_8(D) > 2)
  95. goto <bb 5>; [INV]
  96. else
  97. goto <bb 6>; [INV]
  98. <bb 5> :
  99. Det_ReportError (255, 0, 5, 2);
  100. goto <bb 11>; [INV]
  101. <bb 6> :
  102. if (Buffer_9(D) == 0B)
  103. goto <bb 7>; [INV]
  104. else
  105. goto <bb 8>; [INV]
  106. <bb 7> :
  107. Det_ReportError (255, 0, 5, 3);
  108. goto <bb 11>; [INV]
  109. <bb 8> :
  110. if (BufferSize_10(D) == 0)
  111. goto <bb 9>; [INV]
  112. else
  113. goto <bb 10>; [INV]
  114. <bb 9> :
  115. Det_ReportError (255, 0, 5, 7);
  116. goto <bb 11>; [INV]
  117. <bb 10> :
  118. TempReturn_12 = Uart_StartAsyncSend (CoreId_6, Channel_8(D), Buffer_9(D), BufferSize_10(D));
  119. <bb 11> :
  120. # TempReturn_3 = PHI <TempReturn_5(3), TempReturn_5(5), TempReturn_5(7), TempReturn_5(9), TempReturn_12(10)>
  121. _17 = TempReturn_3;
  122. <bb 12> :
  123. <L12>:
  124. return _17;
  125. }
  126. Uart_AsyncReceive (uint8 Channel, uint8 * Buffer, uint32 BufferSize)
  127. {
  128. uint8 CoreId;
  129. Std_ReturnType TempReturn;
  130. Std_ReturnType D.6414;
  131. int _1;
  132. <unnamed type> _2;
  133. Std_ReturnType _17;
  134. <bb 2> :
  135. TempReturn_5 = 1;
  136. CoreId_6 = 0;
  137. _1 = (int) CoreId_6;
  138. _2 = Uart_au8DriverStatus[_1];
  139. if (_2 == 0)
  140. goto <bb 3>; [INV]
  141. else
  142. goto <bb 4>; [INV]
  143. <bb 3> :
  144. Det_ReportError (255, 0, 7, 1);
  145. goto <bb 11>; [INV]
  146. <bb 4> :
  147. if (Channel_8(D) > 2)
  148. goto <bb 5>; [INV]
  149. else
  150. goto <bb 6>; [INV]
  151. <bb 5> :
  152. Det_ReportError (255, 0, 7, 2);
  153. goto <bb 11>; [INV]
  154. <bb 6> :
  155. if (Buffer_9(D) == 0B)
  156. goto <bb 7>; [INV]
  157. else
  158. goto <bb 8>; [INV]
  159. <bb 7> :
  160. Det_ReportError (255, 0, 7, 3);
  161. goto <bb 11>; [INV]
  162. <bb 8> :
  163. if (BufferSize_10(D) == 0)
  164. goto <bb 9>; [INV]
  165. else
  166. goto <bb 10>; [INV]
  167. <bb 9> :
  168. Det_ReportError (255, 0, 7, 7);
  169. goto <bb 11>; [INV]
  170. <bb 10> :
  171. TempReturn_12 = Uart_StartAsyncReceive (CoreId_6, Channel_8(D), Buffer_9(D), BufferSize_10(D));
  172. <bb 11> :
  173. # TempReturn_3 = PHI <TempReturn_5(3), TempReturn_5(5), TempReturn_5(7), TempReturn_5(9), TempReturn_12(10)>
  174. _17 = TempReturn_3;
  175. <bb 12> :
  176. <L12>:
  177. return _17;
  178. }
  179. Uart_SyncReceive (uint8 Channel, uint8 * Buffer, uint32 BufferSize, uint32 Timeout)
  180. {
  181. uint8 CoreId;
  182. Std_ReturnType TempReturn;
  183. Std_ReturnType D.6400;
  184. int _1;
  185. <unnamed type> _2;
  186. Std_ReturnType _18;
  187. <bb 2> :
  188. TempReturn_5 = 1;
  189. CoreId_6 = 0;
  190. _1 = (int) CoreId_6;
  191. _2 = Uart_au8DriverStatus[_1];
  192. if (_2 == 0)
  193. goto <bb 3>; [INV]
  194. else
  195. goto <bb 4>; [INV]
  196. <bb 3> :
  197. Det_ReportError (255, 0, 6, 1);
  198. goto <bb 11>; [INV]
  199. <bb 4> :
  200. if (Channel_8(D) > 2)
  201. goto <bb 5>; [INV]
  202. else
  203. goto <bb 6>; [INV]
  204. <bb 5> :
  205. Det_ReportError (255, 0, 6, 2);
  206. goto <bb 11>; [INV]
  207. <bb 6> :
  208. if (Buffer_9(D) == 0B)
  209. goto <bb 7>; [INV]
  210. else
  211. goto <bb 8>; [INV]
  212. <bb 7> :
  213. Det_ReportError (255, 0, 6, 3);
  214. goto <bb 11>; [INV]
  215. <bb 8> :
  216. if (BufferSize_10(D) == 0)
  217. goto <bb 9>; [INV]
  218. else
  219. goto <bb 10>; [INV]
  220. <bb 9> :
  221. Det_ReportError (255, 0, 6, 7);
  222. goto <bb 11>; [INV]
  223. <bb 10> :
  224. TempReturn_13 = Uart_StartSyncReceive (CoreId_6, Channel_8(D), Buffer_9(D), BufferSize_10(D), Timeout_11(D));
  225. <bb 11> :
  226. # TempReturn_3 = PHI <TempReturn_5(3), TempReturn_5(5), TempReturn_5(7), TempReturn_5(9), TempReturn_13(10)>
  227. _18 = TempReturn_3;
  228. <bb 12> :
  229. <L12>:
  230. return _18;
  231. }
  232. Uart_SyncSend (uint8 Channel, const uint8 * Buffer, uint32 BufferSize, uint32 Timeout)
  233. {
  234. uint8 CoreId;
  235. Std_ReturnType TempReturn;
  236. Std_ReturnType D.6386;
  237. int _1;
  238. <unnamed type> _2;
  239. Std_ReturnType _18;
  240. <bb 2> :
  241. TempReturn_5 = 1;
  242. CoreId_6 = 0;
  243. _1 = (int) CoreId_6;
  244. _2 = Uart_au8DriverStatus[_1];
  245. if (_2 == 0)
  246. goto <bb 3>; [INV]
  247. else
  248. goto <bb 4>; [INV]
  249. <bb 3> :
  250. Det_ReportError (255, 0, 4, 1);
  251. goto <bb 11>; [INV]
  252. <bb 4> :
  253. if (Channel_8(D) > 2)
  254. goto <bb 5>; [INV]
  255. else
  256. goto <bb 6>; [INV]
  257. <bb 5> :
  258. Det_ReportError (255, 0, 4, 2);
  259. goto <bb 11>; [INV]
  260. <bb 6> :
  261. if (Buffer_9(D) == 0B)
  262. goto <bb 7>; [INV]
  263. else
  264. goto <bb 8>; [INV]
  265. <bb 7> :
  266. Det_ReportError (255, 0, 4, 3);
  267. goto <bb 11>; [INV]
  268. <bb 8> :
  269. if (BufferSize_10(D) == 0)
  270. goto <bb 9>; [INV]
  271. else
  272. goto <bb 10>; [INV]
  273. <bb 9> :
  274. Det_ReportError (255, 0, 4, 7);
  275. goto <bb 11>; [INV]
  276. <bb 10> :
  277. TempReturn_13 = Uart_StartSyncSend (CoreId_6, Channel_8(D), Buffer_9(D), BufferSize_10(D), Timeout_11(D));
  278. <bb 11> :
  279. # TempReturn_3 = PHI <TempReturn_5(3), TempReturn_5(5), TempReturn_5(7), TempReturn_5(9), TempReturn_13(10)>
  280. _18 = TempReturn_3;
  281. <bb 12> :
  282. <L12>:
  283. return _18;
  284. }
  285. Uart_SetBuffer (uint8 Channel, uint8 * Buffer, uint32 BufferSize, Uart_DataDirectionType Direction)
  286. {
  287. uint8 CoreId;
  288. Std_ReturnType TempReturn;
  289. Std_ReturnType D.6372;
  290. int _1;
  291. <unnamed type> _2;
  292. Std_ReturnType _18;
  293. <bb 2> :
  294. TempReturn_5 = 1;
  295. CoreId_6 = 0;
  296. _1 = (int) CoreId_6;
  297. _2 = Uart_au8DriverStatus[_1];
  298. if (_2 == 0)
  299. goto <bb 3>; [INV]
  300. else
  301. goto <bb 4>; [INV]
  302. <bb 3> :
  303. Det_ReportError (255, 0, 11, 1);
  304. goto <bb 11>; [INV]
  305. <bb 4> :
  306. if (Channel_8(D) > 2)
  307. goto <bb 5>; [INV]
  308. else
  309. goto <bb 6>; [INV]
  310. <bb 5> :
  311. Det_ReportError (255, 0, 11, 2);
  312. goto <bb 11>; [INV]
  313. <bb 6> :
  314. if (Buffer_9(D) == 0B)
  315. goto <bb 7>; [INV]
  316. else
  317. goto <bb 8>; [INV]
  318. <bb 7> :
  319. Det_ReportError (255, 0, 11, 3);
  320. goto <bb 11>; [INV]
  321. <bb 8> :
  322. if (BufferSize_10(D) == 0)
  323. goto <bb 9>; [INV]
  324. else
  325. goto <bb 10>; [INV]
  326. <bb 9> :
  327. Det_ReportError (255, 0, 11, 7);
  328. goto <bb 11>; [INV]
  329. <bb 10> :
  330. TempReturn_13 = Uart_StartSetBuffer (CoreId_6, Channel_8(D), Buffer_9(D), BufferSize_10(D), Direction_11(D));
  331. <bb 11> :
  332. # TempReturn_3 = PHI <TempReturn_5(3), TempReturn_5(5), TempReturn_5(7), TempReturn_5(9), TempReturn_13(10)>
  333. _18 = TempReturn_3;
  334. <bb 12> :
  335. <L12>:
  336. return _18;
  337. }
  338. Uart_Abort (uint8 Channel, Uart_DataDirectionType TransmissionType)
  339. {
  340. uint8 CoreId;
  341. Std_ReturnType TempReturn;
  342. Std_ReturnType D.6358;
  343. int _1;
  344. <unnamed type> _2;
  345. Std_ReturnType _16;
  346. <bb 2> :
  347. TempReturn_5 = 1;
  348. CoreId_6 = 0;
  349. _1 = (int) CoreId_6;
  350. _2 = Uart_au8DriverStatus[_1];
  351. if (_2 == 0)
  352. goto <bb 3>; [INV]
  353. else
  354. goto <bb 4>; [INV]
  355. <bb 3> :
  356. Det_ReportError (255, 0, 8, 1);
  357. goto <bb 9>; [INV]
  358. <bb 4> :
  359. if (Channel_8(D) > 2)
  360. goto <bb 5>; [INV]
  361. else
  362. goto <bb 6>; [INV]
  363. <bb 5> :
  364. Det_ReportError (255, 0, 8, 2);
  365. goto <bb 9>; [INV]
  366. <bb 6> :
  367. if (TransmissionType_9(D) == 0)
  368. goto <bb 7>; [INV]
  369. else
  370. goto <bb 8>; [INV]
  371. <bb 7> :
  372. TempReturn_13 = Uart_Ipw_AbortSendingData (Channel_8(D));
  373. goto <bb 9>; [INV]
  374. <bb 8> :
  375. TempReturn_11 = Uart_Ipw_AbortReceivingData (Channel_8(D));
  376. <bb 9> :
  377. # TempReturn_3 = PHI <TempReturn_5(3), TempReturn_5(5), TempReturn_13(7), TempReturn_11(8)>
  378. _16 = TempReturn_3;
  379. <bb 10> :
  380. <L9>:
  381. return _16;
  382. }
  383. Uart_GetBaudrate (uint8 Channel, uint32 * Baudrate)
  384. {
  385. uint8 CoreId;
  386. Std_ReturnType TempReturn;
  387. Std_ReturnType D.6347;
  388. int _1;
  389. <unnamed type> _2;
  390. Std_ReturnType _15;
  391. <bb 2> :
  392. TempReturn_5 = 1;
  393. CoreId_6 = 0;
  394. _1 = (int) CoreId_6;
  395. _2 = Uart_au8DriverStatus[_1];
  396. if (_2 == 0)
  397. goto <bb 3>; [INV]
  398. else
  399. goto <bb 4>; [INV]
  400. <bb 3> :
  401. Det_ReportError (255, 0, 3, 1);
  402. goto <bb 9>; [INV]
  403. <bb 4> :
  404. if (Channel_8(D) > 2)
  405. goto <bb 5>; [INV]
  406. else
  407. goto <bb 6>; [INV]
  408. <bb 5> :
  409. Det_ReportError (255, 0, 3, 2);
  410. goto <bb 9>; [INV]
  411. <bb 6> :
  412. if (Baudrate_9(D) == 0B)
  413. goto <bb 7>; [INV]
  414. else
  415. goto <bb 8>; [INV]
  416. <bb 7> :
  417. Det_ReportError (255, 0, 3, 3);
  418. goto <bb 9>; [INV]
  419. <bb 8> :
  420. Uart_Ipw_GetBaudrate (Channel_8(D), Baudrate_9(D));
  421. TempReturn_11 = 0;
  422. <bb 9> :
  423. # TempReturn_3 = PHI <TempReturn_5(3), TempReturn_5(5), TempReturn_5(7), TempReturn_11(8)>
  424. _15 = TempReturn_3;
  425. <bb 10> :
  426. <L9>:
  427. return _15;
  428. }
  429. Uart_SetBaudrate (uint8 Channel, Uart_BaudrateType Baudrate)
  430. {
  431. Uart_StatusType TransmitStatus;
  432. Uart_StatusType ReceiveStatus;
  433. uint8 CoreId;
  434. Std_ReturnType TempReturn;
  435. Std_ReturnType D.6336;
  436. int _1;
  437. <unnamed type> _2;
  438. int _3;
  439. int _4;
  440. long unsigned int _5;
  441. Std_ReturnType _22;
  442. <bb 2> :
  443. TempReturn_8 = 1;
  444. CoreId_9 = 0;
  445. _1 = (int) CoreId_9;
  446. _2 = Uart_au8DriverStatus[_1];
  447. if (_2 == 0)
  448. goto <bb 3>; [INV]
  449. else
  450. goto <bb 4>; [INV]
  451. <bb 3> :
  452. Det_ReportError (255, 0, 2, 1);
  453. goto <bb 10>; [INV]
  454. <bb 4> :
  455. if (Channel_11(D) > 2)
  456. goto <bb 5>; [INV]
  457. else
  458. goto <bb 6>; [INV]
  459. <bb 5> :
  460. Det_ReportError (255, 0, 2, 2);
  461. goto <bb 10>; [INV]
  462. <bb 6> :
  463. ReceiveStatus_13 = Uart_Ipw_GetReceiveStatus (Channel_11(D), 0B);
  464. TransmitStatus_15 = Uart_Ipw_GetTransmitStatus (Channel_11(D), 0B);
  465. if (ReceiveStatus_13 == 1)
  466. goto <bb 8>; [INV]
  467. else
  468. goto <bb 7>; [INV]
  469. <bb 7> :
  470. if (TransmitStatus_15 == 1)
  471. goto <bb 8>; [INV]
  472. else
  473. goto <bb 9>; [INV]
  474. <bb 8> :
  475. Det_ReportError (255, 0, 2, 6);
  476. goto <bb 10>; [INV]
  477. <bb 9> :
  478. _3 = (int) CoreId_9;
  479. _4 = (int) Channel_11(D);
  480. _5 = Uart_au32ClockFrequency[_3][_4];
  481. TempReturn_18 = Uart_Ipw_SetBaudrate (Channel_11(D), Baudrate_16(D), _5);
  482. <bb 10> :
  483. # TempReturn_6 = PHI <TempReturn_8(3), TempReturn_8(5), TempReturn_8(8), TempReturn_18(9)>
  484. _22 = TempReturn_6;
  485. <bb 11> :
  486. <L10>:
  487. return _22;
  488. }
  489. Uart_Deinit ()
  490. {
  491. uint8 CoreId;
  492. uint8 u8ChLoop;
  493. int _1;
  494. <unnamed type> _2;
  495. int _3;
  496. const struct Uart_ConfigType * _4;
  497. int _5;
  498. const struct Uart_ChannelConfigType * _6;
  499. unsigned char _7;
  500. int _8;
  501. unsigned char u8ChLoop.1_9;
  502. int _10;
  503. <bb 2> :
  504. u8ChLoop_14 = 0;
  505. CoreId_15 = 0;
  506. CoreId_16 = 0;
  507. _1 = (int) CoreId_16;
  508. _2 = Uart_au8DriverStatus[_1];
  509. if (_2 != 1)
  510. goto <bb 3>; [INV]
  511. else
  512. goto <bb 4>; [INV]
  513. <bb 3> :
  514. Det_ReportError (255, 0, 1, 1);
  515. goto <bb 8>; [INV]
  516. <bb 4> :
  517. u8ChLoop_18 = 0;
  518. goto <bb 6>; [INV]
  519. <bb 5> :
  520. _3 = (int) CoreId_16;
  521. _4 = Uart_apConfig[_3];
  522. _5 = (int) u8ChLoop_11;
  523. _6 = _4->Configs[_5];
  524. _7 = _6->UartChannelId;
  525. Uart_Ipw_Deinit (_7);
  526. _8 = (int) CoreId_16;
  527. Uart_au8DriverStatus[_8] = 0;
  528. u8ChLoop.1_9 = u8ChLoop_11;
  529. u8ChLoop_22 = u8ChLoop.1_9 + 1;
  530. <bb 6> :
  531. # u8ChLoop_11 = PHI <u8ChLoop_18(4), u8ChLoop_22(5)>
  532. if (u8ChLoop_11 <= 2)
  533. goto <bb 5>; [INV]
  534. else
  535. goto <bb 7>; [INV]
  536. <bb 7> :
  537. _10 = (int) CoreId_16;
  538. Uart_apConfig[_10] = 0B;
  539. <bb 8> :
  540. return;
  541. }
  542. Uart_Init (const struct Uart_ConfigType * Config)
  543. {
  544. uint8 Channel;
  545. uint8 CoreId;
  546. uint8 u8ChLoop;
  547. int _1;
  548. <unnamed type> _2;
  549. int _3;
  550. int _4;
  551. const struct Uart_ConfigType * _5;
  552. int _6;
  553. const struct Uart_ConfigType * _7;
  554. int _8;
  555. const struct Uart_ChannelConfigType * _9;
  556. int _10;
  557. const struct Uart_ConfigType * _11;
  558. int _12;
  559. const struct Uart_ChannelConfigType * _13;
  560. int _14;
  561. const struct Uart_ConfigType * _15;
  562. int _16;
  563. const struct Uart_ChannelConfigType * _17;
  564. const struct Uart_Ipw_HwConfigType * _18;
  565. int _19;
  566. const struct Uart_ConfigType * _20;
  567. int _21;
  568. const struct Uart_ChannelConfigType * _22;
  569. int _23;
  570. int _24;
  571. long unsigned int _25;
  572. int _26;
  573. unsigned char u8ChLoop.0_27;
  574. <bb 2> :
  575. CoreId_32 = 0;
  576. _1 = (int) CoreId_32;
  577. _2 = Uart_au8DriverStatus[_1];
  578. if (_2 != 0)
  579. goto <bb 3>; [INV]
  580. else
  581. goto <bb 4>; [INV]
  582. <bb 3> :
  583. Det_ReportError (255, 0, 0, 4);
  584. goto <bb 11>; [INV]
  585. <bb 4> :
  586. if (Config_34(D) != 0B)
  587. goto <bb 5>; [INV]
  588. else
  589. goto <bb 6>; [INV]
  590. <bb 5> :
  591. Det_ReportError (255, 0, 0, 9);
  592. goto <bb 11>; [INV]
  593. <bb 6> :
  594. _3 = (int) CoreId_32;
  595. _4 = (int) CoreId_32;
  596. _5 = Uart_pxPBcfgVariantPredefined[_3];
  597. Uart_apConfig[_4] = _5;
  598. u8ChLoop_36 = 0;
  599. goto <bb 10>; [INV]
  600. <bb 7> :
  601. _6 = (int) CoreId_32;
  602. _7 = Uart_apConfig[_6];
  603. _8 = (int) u8ChLoop_28;
  604. _9 = _7->Configs[_8];
  605. if (_9 != 0B)
  606. goto <bb 8>; [INV]
  607. else
  608. goto <bb 9>; [INV]
  609. <bb 8> :
  610. _10 = (int) CoreId_32;
  611. _11 = Uart_apConfig[_10];
  612. _12 = (int) u8ChLoop_28;
  613. _13 = _11->Configs[_12];
  614. Channel_37 = _13->UartChannelId;
  615. _14 = (int) CoreId_32;
  616. _15 = Uart_apConfig[_14];
  617. _16 = (int) u8ChLoop_28;
  618. _17 = _15->Configs[_16];
  619. _18 = _17->UartChannelConfig;
  620. Uart_Ipw_Init (Channel_37, _18);
  621. _19 = (int) CoreId_32;
  622. _20 = Uart_apConfig[_19];
  623. _21 = (int) u8ChLoop_28;
  624. _22 = _20->Configs[_21];
  625. _23 = (int) CoreId_32;
  626. _24 = (int) Channel_37;
  627. _25 = _22->ChannelClockFrequency;
  628. Uart_au32ClockFrequency[_23][_24] = _25;
  629. _26 = (int) CoreId_32;
  630. Uart_au8DriverStatus[_26] = 1;
  631. <bb 9> :
  632. u8ChLoop.0_27 = u8ChLoop_28;
  633. u8ChLoop_41 = u8ChLoop.0_27 + 1;
  634. <bb 10> :
  635. # u8ChLoop_28 = PHI <u8ChLoop_36(6), u8ChLoop_41(9)>
  636. if (u8ChLoop_28 <= 2)
  637. goto <bb 7>; [INV]
  638. else
  639. goto <bb 11>; [INV]
  640. <bb 11> :
  641. return;
  642. }
  643. Uart_StartSetBuffer (uint8 CoreId, uint8 Channel, uint8 * Buffer, uint32 BufferSize, Uart_DataDirectionType Direction)
  644. {
  645. Std_ReturnType TempReturn;
  646. Std_ReturnType D.6313;
  647. Std_ReturnType _11;
  648. <bb 2> :
  649. TempReturn_2 = 1;
  650. if (Direction_3(D) == 0)
  651. goto <bb 3>; [INV]
  652. else
  653. goto <bb 4>; [INV]
  654. <bb 3> :
  655. Uart_Ipw_SetTxBuffer (Channel_5(D), Buffer_6(D), BufferSize_7(D));
  656. goto <bb 5>; [INV]
  657. <bb 4> :
  658. Uart_Ipw_SetRxBuffer (Channel_5(D), Buffer_6(D), BufferSize_7(D));
  659. <bb 5> :
  660. TempReturn_10 = 0;
  661. _11 = TempReturn_10;
  662. <bb 6> :
  663. <L3>:
  664. return _11;
  665. }
  666. Uart_StartAsyncSend (uint8 CoreId, uint8 Channel, const uint8 * Buffer, uint32 BufferSize)
  667. {
  668. Std_ReturnType TempReturn;
  669. Std_ReturnType D.6308;
  670. <unnamed type> _1;
  671. Std_ReturnType _13;
  672. <bb 2> :
  673. TempReturn_4 = 1;
  674. _1 = Uart_Ipw_GetTransmitStatus (Channel_6(D), 0B);
  675. if (_1 == 1)
  676. goto <bb 3>; [INV]
  677. else
  678. goto <bb 4>; [INV]
  679. <bb 3> :
  680. Det_ReportError (255, 0, 5, 6);
  681. goto <bb 5>; [INV]
  682. <bb 4> :
  683. TempReturn_11 = Uart_Ipw_AsyncSend (Channel_6(D), Buffer_8(D), BufferSize_9(D));
  684. <bb 5> :
  685. # TempReturn_2 = PHI <TempReturn_4(3), TempReturn_11(4)>
  686. _13 = TempReturn_2;
  687. <bb 6> :
  688. <L3>:
  689. return _13;
  690. }
  691. Uart_StartAsyncReceive (uint8 CoreId, uint8 Channel, uint8 * Buffer, uint32 BufferSize)
  692. {
  693. Std_ReturnType TempReturn;
  694. Std_ReturnType D.6303;
  695. <unnamed type> _1;
  696. Std_ReturnType _13;
  697. <bb 2> :
  698. TempReturn_4 = 1;
  699. _1 = Uart_Ipw_GetReceiveStatus (Channel_6(D), 0B);
  700. if (_1 == 1)
  701. goto <bb 3>; [INV]
  702. else
  703. goto <bb 4>; [INV]
  704. <bb 3> :
  705. Det_ReportError (255, 0, 7, 6);
  706. goto <bb 5>; [INV]
  707. <bb 4> :
  708. TempReturn_11 = Uart_Ipw_AsyncReceive (Channel_6(D), Buffer_8(D), BufferSize_9(D));
  709. <bb 5> :
  710. # TempReturn_2 = PHI <TempReturn_4(3), TempReturn_11(4)>
  711. _13 = TempReturn_2;
  712. <bb 6> :
  713. <L3>:
  714. return _13;
  715. }
  716. Uart_StartSyncSend (uint8 CoreId, uint8 Channel, const uint8 * Buffer, uint32 BufferSize, uint32 Timeout)
  717. {
  718. Std_ReturnType TempReturn;
  719. Std_ReturnType D.6298;
  720. <unnamed type> _1;
  721. Std_ReturnType _16;
  722. <bb 2> :
  723. TempReturn_4 = 1;
  724. _1 = Uart_Ipw_GetTransmitStatus (Channel_6(D), 0B);
  725. if (_1 == 1)
  726. goto <bb 3>; [INV]
  727. else
  728. goto <bb 4>; [INV]
  729. <bb 3> :
  730. Det_ReportError (255, 0, 4, 6);
  731. goto <bb 6>; [INV]
  732. <bb 4> :
  733. TempReturn_12 = Uart_Ipw_SyncSend (Channel_6(D), Buffer_8(D), BufferSize_9(D), Timeout_10(D));
  734. if (TempReturn_12 == 6)
  735. goto <bb 5>; [INV]
  736. else
  737. goto <bb 6>; [INV]
  738. <bb 5> :
  739. Det_ReportRuntimeError (255, 0, 4, 8);
  740. TempReturn_14 = 1;
  741. <bb 6> :
  742. # TempReturn_2 = PHI <TempReturn_4(3), TempReturn_12(4), TempReturn_14(5)>
  743. _16 = TempReturn_2;
  744. <bb 7> :
  745. <L5>:
  746. return _16;
  747. }
  748. Uart_StartSyncReceive (uint8 CoreId, uint8 Channel, uint8 * Buffer, uint32 BufferSize, uint32 Timeout)
  749. {
  750. Std_ReturnType TempReturn;
  751. Std_ReturnType D.6291;
  752. <unnamed type> _1;
  753. Std_ReturnType _16;
  754. <bb 2> :
  755. TempReturn_4 = 1;
  756. _1 = Uart_Ipw_GetReceiveStatus (Channel_6(D), 0B);
  757. if (_1 == 1)
  758. goto <bb 3>; [INV]
  759. else
  760. goto <bb 4>; [INV]
  761. <bb 3> :
  762. Det_ReportError (255, 0, 6, 6);
  763. goto <bb 6>; [INV]
  764. <bb 4> :
  765. TempReturn_12 = Uart_Ipw_SyncReceive (Channel_6(D), Buffer_8(D), BufferSize_9(D), Timeout_10(D));
  766. if (TempReturn_12 == 6)
  767. goto <bb 5>; [INV]
  768. else
  769. goto <bb 6>; [INV]
  770. <bb 5> :
  771. Det_ReportRuntimeError (255, 0, 6, 8);
  772. TempReturn_14 = 1;
  773. <bb 6> :
  774. # TempReturn_2 = PHI <TempReturn_4(3), TempReturn_12(4), TempReturn_14(5)>
  775. _16 = TempReturn_2;
  776. <bb 7> :
  777. <L5>:
  778. return _16;
  779. }