esm.h 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917
  1. /** @file esm.h
  2. * @brief Error Signaling Module Driver Header File
  3. * @date 29.May.2013
  4. * @version 03.05.02
  5. *
  6. * This file contains:
  7. * - Definitions
  8. * - Types
  9. * .
  10. * which are relevant for the Esm driver.
  11. */
  12. /* (c) Texas Instruments 2009-2013, All rights reserved. */
  13. #ifndef __ESM_H__
  14. #define __ESM_H__
  15. #include "reg_esm.h"
  16. /* USER CODE BEGIN (0) */
  17. /* USER CODE END */
  18. /* ESM General Definitions */
  19. /** @def esmGROUP1
  20. * @brief Alias name for ESM group 1
  21. *
  22. * This is an alias name for the ESM group 1.
  23. *
  24. * @note This value should be used for API argument @a group
  25. */
  26. #define esmGROUP1 0U
  27. /** @def esmGROUP2
  28. * @brief Alias name for ESM group 2
  29. *
  30. * This is an alias name for the ESM group 2.
  31. *
  32. * @note This value should be used for API argument @a group
  33. */
  34. #define esmGROUP2 1U
  35. /** @def esmGROUP3
  36. * @brief Alias name for ESM group 3
  37. *
  38. * This is an alias name for the ESM group 3.
  39. *
  40. * @note This value should be used for API argument @a group
  41. */
  42. #define esmGROUP3 2U
  43. /** @def esmCHANNEL0
  44. * @brief Alias name for ESM group x channel 0
  45. *
  46. * This is an alias name for the ESM group x channel 0.
  47. *
  48. * @note This value should be used for API argument @a channel
  49. */
  50. #define esmCHANNEL0 0x0000000000000001ULL
  51. /** @def esmCHANNEL1
  52. * @brief Alias name for ESM group x channel 1
  53. *
  54. * This is an alias name for the ESM group x channel 1.
  55. *
  56. * @note This value should be used for API argument @a channel
  57. */
  58. #define esmCHANNEL1 0x0000000000000002ULL
  59. /** @def esmCHANNEL2
  60. * @brief Alias name for ESM group x channel 2
  61. *
  62. * This is an alias name for the ESM group x channel 2.
  63. *
  64. * @note This value should be used for API argument @a channel
  65. */
  66. #define esmCHANNEL2 0x0000000000000004ULL
  67. /** @def esmCHANNEL3
  68. * @brief Alias name for ESM group x channel 3
  69. *
  70. * This is an alias name for the ESM group x channel 3.
  71. *
  72. * @note This value should be used for API argument @a channel
  73. */
  74. #define esmCHANNEL3 0x0000000000000008ULL
  75. /** @def esmCHANNEL4
  76. * @brief Alias name for ESM group x channel 4
  77. *
  78. * This is an alias name for the ESM group x channel 4.
  79. *
  80. * @note This value should be used for API argument @a channel
  81. */
  82. #define esmCHANNEL4 0x0000000000000010ULL
  83. /** @def esmCHANNEL5
  84. * @brief Alias name for ESM group x channel 5
  85. *
  86. * This is an alias name for the ESM group x channel 5.
  87. *
  88. * @note This value should be used for API argument @a channel
  89. */
  90. #define esmCHANNEL5 0x0000000000000020ULL
  91. /** @def esmCHANNEL6
  92. * @brief Alias name for ESM group x channel 6
  93. *
  94. * This is an alias name for the ESM group x channel 6.
  95. *
  96. * @note This value should be used for API argument @a channel
  97. */
  98. #define esmCHANNEL6 0x0000000000000040ULL
  99. /** @def esmCHANNEL7
  100. * @brief Alias name for ESM group x channel 7
  101. *
  102. * This is an alias name for the ESM group x channel 7.
  103. *
  104. * @note This value should be used for API argument @a channel
  105. */
  106. #define esmCHANNEL7 0x0000000000000080ULL
  107. /** @def esmCHANNEL8
  108. * @brief Alias name for ESM group x channel 8
  109. *
  110. * This is an alias name for the ESM group x channel 8.
  111. *
  112. * @note This value should be used for API argument @a channel
  113. */
  114. #define esmCHANNEL8 0x0000000000000100ULL
  115. /** @def esmCHANNEL9
  116. * @brief Alias name for ESM group x channel 9
  117. *
  118. * This is an alias name for the ESM group x channel 9.
  119. *
  120. * @note This value should be used for API argument @a channel
  121. */
  122. #define esmCHANNEL9 0x0000000000000200ULL
  123. /** @def esmCHANNEL10
  124. * @brief Alias name for ESM group x channel 10
  125. *
  126. * This is an alias name for the ESM group x channel 10.
  127. *
  128. * @note This value should be used for API argument @a channel
  129. */
  130. #define esmCHANNEL10 0x0000000000000400ULL
  131. /** @def esmCHANNEL11
  132. * @brief Alias name for ESM group x channel 11
  133. *
  134. * This is an alias name for the ESM group x channel 11.
  135. *
  136. * @note This value should be used for API argument @a channel
  137. */
  138. #define esmCHANNEL11 0x0000000000000800ULL
  139. /** @def esmCHANNEL12
  140. * @brief Alias name for ESM group x channel 12
  141. *
  142. * This is an alias name for the ESM group x channel 12.
  143. *
  144. * @note This value should be used for API argument @a channel
  145. */
  146. #define esmCHANNEL12 0x0000000000001000ULL
  147. /** @def esmCHANNEL13
  148. * @brief Alias name for ESM group x channel 13
  149. *
  150. * This is an alias name for the ESM group x channel 13.
  151. *
  152. * @note This value should be used for API argument @a channel
  153. */
  154. #define esmCHANNEL13 0x0000000000002000ULL
  155. /** @def esmCHANNEL14
  156. * @brief Alias name for ESM group x channel 14
  157. *
  158. * This is an alias name for the ESM group x channel 14.
  159. *
  160. * @note This value should be used for API argument @a channel
  161. */
  162. #define esmCHANNEL14 0x0000000000004000ULL
  163. /** @def esmCHANNEL15
  164. * @brief Alias name for ESM group x channel 15
  165. *
  166. * This is an alias name for the ESM group x channel 15.
  167. *
  168. * @note This value should be used for API argument @a channel
  169. */
  170. #define esmCHANNEL15 0x0000000000008000ULL
  171. /** @def esmCHANNEL16
  172. * @brief Alias name for ESM group x channel 16
  173. *
  174. * This is an alias name for the ESM group x channel 16.
  175. *
  176. * @note This value should be used for API argument @a channel
  177. */
  178. #define esmCHANNEL16 0x0000000000010000ULL
  179. /** @def esmCHANNEL17
  180. * @brief Alias name for ESM group x channel 17
  181. *
  182. * This is an alias name for the ESM group x channel 17.
  183. *
  184. * @note This value should be used for API argument @a channel
  185. */
  186. #define esmCHANNEL17 0x0000000000020000ULL
  187. /** @def esmCHANNEL18
  188. * @brief Alias name for ESM group x channel 18
  189. *
  190. * This is an alias name for the ESM group x channel 18.
  191. *
  192. * @note This value should be used for API argument @a channel
  193. */
  194. #define esmCHANNEL18 0x0000000000040000ULL
  195. /** @def esmCHANNEL19
  196. * @brief Alias name for ESM group x channel 19
  197. *
  198. * This is an alias name for the ESM group x channel 19.
  199. *
  200. * @note This value should be used for API argument @a channel
  201. */
  202. #define esmCHANNEL19 0x0000000000080000ULL
  203. /** @def esmCHANNEL20
  204. * @brief Alias name for ESM group x channel 20
  205. *
  206. * This is an alias name for the ESM group x channel 20.
  207. *
  208. * @note This value should be used for API argument @a channel
  209. */
  210. #define esmCHANNEL20 0x0000000000100000ULL
  211. /** @def esmCHANNEL21
  212. * @brief Alias name for ESM group x channel 21
  213. *
  214. * This is an alias name for the ESM group x channel 21.
  215. *
  216. * @note This value should be used for API argument @a channel
  217. */
  218. #define esmCHANNEL21 0x0000000000200000ULL
  219. /** @def esmCHANNEL22
  220. * @brief Alias name for ESM group x channel 22
  221. *
  222. * This is an alias name for the ESM group x channel 22.
  223. *
  224. * @note This value should be used for API argument @a channel
  225. */
  226. #define esmCHANNEL22 0x0000000000400000ULL
  227. /** @def esmCHANNEL23
  228. * @brief Alias name for ESM group x channel 23
  229. *
  230. * This is an alias name for the ESM group x channel 23.
  231. *
  232. * @note This value should be used for API argument @a channel
  233. */
  234. #define esmCHANNEL23 0x0000000000800000ULL
  235. /** @def esmCHANNEL24
  236. * @brief Alias name for ESM group x channel 24
  237. *
  238. * This is an alias name for the ESM group x channel 24.
  239. *
  240. * @note This value should be used for API argument @a channel
  241. */
  242. #define esmCHANNEL24 0x0000000001000000ULL
  243. /** @def esmCHANNEL25
  244. * @brief Alias name for ESM group x channel 25
  245. *
  246. * This is an alias name for the ESM group x channel 25.
  247. *
  248. * @note This value should be used for API argument @a channel
  249. */
  250. #define esmCHANNEL25 0x0000000002000000ULL
  251. /** @def esmCHANNEL26
  252. * @brief Alias name for ESM group x channel 26
  253. *
  254. * This is an alias name for the ESM group x channel 26.
  255. *
  256. * @note This value should be used for API argument @a channel
  257. */
  258. #define esmCHANNEL26 0x0000000004000000ULL
  259. /** @def esmCHANNEL27
  260. * @brief Alias name for ESM group x channel 27
  261. *
  262. * This is an alias name for the ESM group x channel 27.
  263. *
  264. * @note This value should be used for API argument @a channel
  265. */
  266. #define esmCHANNEL27 0x0000000008000000ULL
  267. /** @def esmCHANNEL28
  268. * @brief Alias name for ESM group x channel 28
  269. *
  270. * This is an alias name for the ESM group x channel 28.
  271. *
  272. * @note This value should be used for API argument @a channel
  273. */
  274. #define esmCHANNEL28 0x0000000010000000ULL
  275. /** @def esmCHANNEL29
  276. * @brief Alias name for ESM group x channel 29
  277. *
  278. * This is an alias name for the ESM group x channel 29.
  279. *
  280. * @note This value should be used for API argument @a channel
  281. */
  282. #define esmCHANNEL29 0x0000000020000000ULL
  283. /** @def esmCHANNEL30
  284. * @brief Alias name for ESM group x channel 30
  285. *
  286. * This is an alias name for the ESM group x channel 30.
  287. *
  288. * @note This value should be used for API argument @a channel
  289. */
  290. #define esmCHANNEL30 0x0000000040000000ULL
  291. /** @def esmCHANNEL31
  292. * @brief Alias name for ESM group x channel 31
  293. *
  294. * This is an alias name for the ESM group x channel 31.
  295. *
  296. * @note This value should be used for API argument @a channel
  297. */
  298. #define esmCHANNEL31 0x0000000080000000ULL
  299. /** @def esmCHANNEL32
  300. * @brief Alias name for ESM group x channel 32
  301. *
  302. * This is an alias name for the ESM group x channel 32.
  303. *
  304. * @note This value should be used for API argument @a channel
  305. */
  306. #define esmCHANNEL32 0x0000000100000000ULL
  307. /** @def esmCHANNEL33
  308. * @brief Alias name for ESM group x channel 33
  309. *
  310. * This is an alias name for the ESM group x channel 33.
  311. *
  312. * @note This value should be used for API argument @a channel
  313. */
  314. #define esmCHANNEL33 0x0000000200000000ULL
  315. /** @def esmCHANNEL34
  316. * @brief Alias name for ESM group x channel 34
  317. *
  318. * This is an alias name for the ESM group x channel 34.
  319. *
  320. * @note This value should be used for API argument @a channel
  321. */
  322. #define esmCHANNEL34 0x0000000400000000ULL
  323. /** @def esmCHANNEL35
  324. * @brief Alias name for ESM group x channel 35
  325. *
  326. * This is an alias name for the ESM group x channel 35.
  327. *
  328. * @note This value should be used for API argument @a channel
  329. */
  330. #define esmCHANNEL35 0x0000000800000000ULL
  331. /** @def esmCHANNEL36
  332. * @brief Alias name for ESM group x channel 36
  333. *
  334. * This is an alias name for the ESM group x channel 36.
  335. *
  336. * @note This value should be used for API argument @a channel
  337. */
  338. #define esmCHANNEL36 0x0000001000000000ULL
  339. /** @def esmCHANNEL37
  340. * @brief Alias name for ESM group x channel 37
  341. *
  342. * This is an alias name for the ESM group x channel 37.
  343. *
  344. * @note This value should be used for API argument @a channel
  345. */
  346. #define esmCHANNEL37 0x0000002000000000ULL
  347. /** @def esmCHANNEL38
  348. * @brief Alias name for ESM group x channel 38
  349. *
  350. * This is an alias name for the ESM group x channel 38.
  351. *
  352. * @note This value should be used for API argument @a channel
  353. */
  354. #define esmCHANNEL38 0x0000004000000000ULL
  355. /** @def esmCHANNEL39
  356. * @brief Alias name for ESM group x channel 39
  357. *
  358. * This is an alias name for the ESM group x channel 39.
  359. *
  360. * @note This value should be used for API argument @a channel
  361. */
  362. #define esmCHANNEL39 0x0000008000000000ULL
  363. /** @def esmCHANNEL40
  364. * @brief Alias name for ESM group x channel 40
  365. *
  366. * This is an alias name for the ESM group x channel 40.
  367. *
  368. * @note This value should be used for API argument @a channel
  369. */
  370. #define esmCHANNEL40 0x0000010000000000ULL
  371. /** @def esmCHANNEL41
  372. * @brief Alias name for ESM group x channel 41
  373. *
  374. * This is an alias name for the ESM group x channel 41.
  375. *
  376. * @note This value should be used for API argument @a channel
  377. */
  378. #define esmCHANNEL41 0x0000020000000000ULL
  379. /** @def esmCHANNEL42
  380. * @brief Alias name for ESM group x channel 42
  381. *
  382. * This is an alias name for the ESM group x channel 42.
  383. *
  384. * @note This value should be used for API argument @a channel
  385. */
  386. #define esmCHANNEL42 0x0000040000000000ULL
  387. /** @def esmCHANNEL43
  388. * @brief Alias name for ESM group x channel 43
  389. *
  390. * This is an alias name for the ESM group x channel 43.
  391. *
  392. * @note This value should be used for API argument @a channel
  393. */
  394. #define esmCHANNEL43 0x0000080000000000ULL
  395. /** @def esmCHANNEL44
  396. * @brief Alias name for ESM group x channel 44
  397. *
  398. * This is an alias name for the ESM group x channel 44.
  399. *
  400. * @note This value should be used for API argument @a channel
  401. */
  402. #define esmCHANNEL44 0x0000100000000000ULL
  403. /** @def esmCHANNEL45
  404. * @brief Alias name for ESM group x channel 45
  405. *
  406. * This is an alias name for the ESM group x channel 45.
  407. *
  408. * @note This value should be used for API argument @a channel
  409. */
  410. #define esmCHANNEL45 0x0000200000000000ULL
  411. /** @def esmCHANNEL46
  412. * @brief Alias name for ESM group x channel 46
  413. *
  414. * This is an alias name for the ESM group x channel 46.
  415. *
  416. * @note This value should be used for API argument @a channel
  417. */
  418. #define esmCHANNEL46 0x0000400000000000ULL
  419. /** @def esmCHANNEL47
  420. * @brief Alias name for ESM group x channel 47
  421. *
  422. * This is an alias name for the ESM group x channel 47.
  423. *
  424. * @note This value should be used for API argument @a channel
  425. */
  426. #define esmCHANNEL47 0x0000800000000000ULL
  427. /** @def esmCHANNEL48
  428. * @brief Alias name for ESM group x channel 48
  429. *
  430. * This is an alias name for the ESM group x channel 48.
  431. *
  432. * @note This value should be used for API argument @a channel
  433. */
  434. #define esmCHANNEL48 0x0001000000000000ULL
  435. /** @def esmCHANNEL49
  436. * @brief Alias name for ESM group x channel 49
  437. *
  438. * This is an alias name for the ESM group x channel 49.
  439. *
  440. * @note This value should be used for API argument @a channel
  441. */
  442. #define esmCHANNEL49 0x0002000000000000ULL
  443. /** @def esmCHANNEL50
  444. * @brief Alias name for ESM group x channel 50
  445. *
  446. * This is an alias name for the ESM group x channel 50.
  447. *
  448. * @note This value should be used for API argument @a channel
  449. */
  450. #define esmCHANNEL50 0x0004000000000000ULL
  451. /** @def esmCHANNEL51
  452. * @brief Alias name for ESM group x channel 51
  453. *
  454. * This is an alias name for the ESM group x channel 51.
  455. *
  456. * @note This value should be used for API argument @a channel
  457. */
  458. #define esmCHANNEL51 0x0008000000000000ULL
  459. /** @def esmCHANNEL52
  460. * @brief Alias name for ESM group x channel 52
  461. *
  462. * This is an alias name for the ESM group x channel 52.
  463. *
  464. * @note This value should be used for API argument @a channel
  465. */
  466. #define esmCHANNEL52 0x0010000000000000ULL
  467. /** @def esmCHANNEL53
  468. * @brief Alias name for ESM group x channel 53
  469. *
  470. * This is an alias name for the ESM group x channel 53.
  471. *
  472. * @note This value should be used for API argument @a channel
  473. */
  474. #define esmCHANNEL53 0x0020000000000000ULL
  475. /** @def esmCHANNEL54
  476. * @brief Alias name for ESM group x channel 54
  477. *
  478. * This is an alias name for the ESM group x channel 54.
  479. *
  480. * @note This value should be used for API argument @a channel
  481. */
  482. #define esmCHANNEL54 0x0040000000000000ULL
  483. /** @def esmCHANNEL55
  484. * @brief Alias name for ESM group x channel 55
  485. *
  486. * This is an alias name for the ESM group x channel 55.
  487. *
  488. * @note This value should be used for API argument @a channel
  489. */
  490. #define esmCHANNEL55 0x0080000000000000ULL
  491. /** @def esmCHANNEL56
  492. * @brief Alias name for ESM group x channel 56
  493. *
  494. * This is an alias name for the ESM group x channel 56.
  495. *
  496. * @note This value should be used for API argument @a channel
  497. */
  498. #define esmCHANNEL56 0x0100000000000000ULL
  499. /** @def esmCHANNEL57
  500. * @brief Alias name for ESM group x channel 57
  501. *
  502. * This is an alias name for the ESM group x channel 57.
  503. *
  504. * @note This value should be used for API argument @a channel
  505. */
  506. #define esmCHANNEL57 0x0200000000000000ULL
  507. /** @def esmCHANNEL58
  508. * @brief Alias name for ESM group x channel 58
  509. *
  510. * This is an alias name for the ESM group x channel 58.
  511. *
  512. * @note This value should be used for API argument @a channel
  513. */
  514. #define esmCHANNEL58 0x0400000000000000ULL
  515. /** @def esmCHANNEL59
  516. * @brief Alias name for ESM group x channel 59
  517. *
  518. * This is an alias name for the ESM group x channel 59.
  519. *
  520. * @note This value should be used for API argument @a channel
  521. */
  522. #define esmCHANNEL59 0x0800000000000000ULL
  523. /** @def esmCHANNEL60
  524. * @brief Alias name for ESM group x channel 60
  525. *
  526. * This is an alias name for the ESM group x channel 60.
  527. *
  528. * @note This value should be used for API argument @a channel
  529. */
  530. #define esmCHANNEL60 0x1000000000000000ULL
  531. /** @def esmCHANNEL61
  532. * @brief Alias name for ESM group x channel 61
  533. *
  534. * This is an alias name for the ESM group x channel 61.
  535. *
  536. * @note This value should be used for API argument @a channel
  537. */
  538. #define esmCHANNEL61 0x2000000000000000ULL
  539. /** @def esmCHANNEL62
  540. * @brief Alias name for ESM group x channel 62
  541. *
  542. * This is an alias name for the ESM group x channel 62.
  543. *
  544. * @note This value should be used for API argument @a channel
  545. */
  546. #define esmCHANNEL62 0x4000000000000000ULL
  547. /** @def esmCHANNEL63
  548. * @brief Alias name for ESM group x channel 63
  549. *
  550. * This is an alias name for the ESM group x channel 63.
  551. *
  552. * @note This value should be used for API argument @a channel
  553. */
  554. #define esmCHANNEL63 0x8000000000000000ULL
  555. /** @typedef esmSelfTestFlag_t
  556. * @brief ESM Self-Test Status Type Definition
  557. *
  558. * This type is used to represent ESM Self-Test Status.
  559. */
  560. typedef enum esmSelfTestFlag
  561. {
  562. esmSelfTest_Passed = 0U,
  563. esmSelfTest_Active = 1U,
  564. esmSelfTest_NotStarted = 2U,
  565. esmSelfTest_Failed = 3U
  566. }esmSelfTestFlag_t;
  567. /* Configuration registers */
  568. typedef struct esm_config_reg
  569. {
  570. uint32 CONFIG_EPENASET1;
  571. uint32 CONFIG_INTENASET1;
  572. uint32 CONFIG_INTLVLSET1;
  573. uint32 CONFIG_LTCPRELOAD;
  574. uint32 CONFIG_KEY;
  575. uint32 CONFIG_EPENASET4;
  576. uint32 CONFIG_INTENASET4;
  577. uint32 CONFIG_INTLVLSET4;
  578. } esm_config_reg_t;
  579. /* Configuration registers initial value */
  580. #define ESM_EPENASET1_CONFIGVALUE (0U << 31U)\
  581. | (0U << 30U)\
  582. | (0U << 29U)\
  583. | (0U << 28U)\
  584. | (0U << 27U)\
  585. | (0U << 26U)\
  586. | (0U << 25U)\
  587. | (0U << 24U)\
  588. | (0U << 23U)\
  589. | (0U << 22U)\
  590. | (0U << 21U)\
  591. | (0U << 20U)\
  592. | (0U << 19U)\
  593. | (0U << 18U)\
  594. | (0U << 17U)\
  595. | (0U << 16U)\
  596. | (0U << 15U)\
  597. | (0U << 14U)\
  598. | (0U << 13U)\
  599. | (0U << 12U)\
  600. | (0U << 11U)\
  601. | (0U << 10U)\
  602. | (0U << 9U)\
  603. | (0U << 8U)\
  604. | (0U << 7U)\
  605. | (0U << 6U)\
  606. | (0U << 5U)\
  607. | (0U << 4U)\
  608. | (0U << 3U)\
  609. | (0U << 2U)\
  610. | (0U << 1U)\
  611. | (0U)
  612. #define ESM_INTENASET1_CONFIGVALUE (0U << 31U)\
  613. | (0U << 30U)\
  614. | (0U << 29U)\
  615. | (0U << 28U)\
  616. | (0U << 27U)\
  617. | (0U << 26U)\
  618. | (0U << 25U)\
  619. | (0U << 24U)\
  620. | (0U << 23U)\
  621. | (0U << 22U)\
  622. | (0U << 21U)\
  623. | (0U << 20U)\
  624. | (0U << 19U)\
  625. | (0U << 18U)\
  626. | (0U << 17U)\
  627. | (0U << 16U)\
  628. | (0U << 15U)\
  629. | (0U << 14U)\
  630. | (0U << 13U)\
  631. | (0U << 12U)\
  632. | (0U << 11U)\
  633. | (0U << 10U)\
  634. | (0U << 9U)\
  635. | (0U << 8U)\
  636. | (0U << 7U)\
  637. | (0U << 6U)\
  638. | (0U << 5U)\
  639. | (0U << 4U)\
  640. | (0U << 3U)\
  641. | (0U << 2U)\
  642. | (0U << 1U)\
  643. | (0U)
  644. #define ESM_INTLVLSET1_CONFIGVALUE (0U << 31U)\
  645. | (0U << 30U)\
  646. | (0U << 29U)\
  647. | (0U << 28U)\
  648. | (0U << 27U)\
  649. | (0U << 26U)\
  650. | (0U << 25U)\
  651. | (0U << 24U)\
  652. | (0U << 23U)\
  653. | (0U << 22U)\
  654. | (0U << 21U)\
  655. | (0U << 20U)\
  656. | (0U << 19U)\
  657. | (0U << 18U)\
  658. | (0U << 17U)\
  659. | (0U << 16U)\
  660. | (0U << 15U)\
  661. | (0U << 14U)\
  662. | (0U << 13U)\
  663. | (0U << 12U)\
  664. | (0U << 11U)\
  665. | (0U << 10U)\
  666. | (0U << 9U)\
  667. | (0U << 8U)\
  668. | (0U << 7U)\
  669. | (0U << 6U)\
  670. | (0U << 5U)\
  671. | (0U << 4U)\
  672. | (0U << 3U)\
  673. | (0U << 2U)\
  674. | (0U << 1U)\
  675. | (0U)
  676. #define ESM_LTCPRELOAD_CONFIGVALUE 16384U - 1U
  677. #define ESM_KEY_CONFIGVALUE 0U
  678. #define ESM_EPENASET4_CONFIGVALUE (0U << 31U)\
  679. | (0U << 30U)\
  680. | (0U << 29U)\
  681. | (0U << 28U)\
  682. | (0U << 27U)\
  683. | (0U << 26U)\
  684. | (0U << 25U)\
  685. | (0U << 24U)\
  686. | (0U << 23U)\
  687. | (0U << 22U)\
  688. | (0U << 21U)\
  689. | (0U << 20U)\
  690. | (0U << 19U)\
  691. | (0U << 18U)\
  692. | (0U << 17U)\
  693. | (0U << 16U)\
  694. | (0U << 15U)\
  695. | (0U << 14U)\
  696. | (0U << 13U)\
  697. | (0U << 12U)\
  698. | (0U << 11U)\
  699. | (0U << 10U)\
  700. | (0U << 9U)\
  701. | (0U << 8U)\
  702. | (0U << 7U)\
  703. | (0U << 6U)\
  704. | (0U << 5U)\
  705. | (0U << 4U)\
  706. | (0U << 3U)\
  707. | (0U << 2U)\
  708. | (0U << 1U)\
  709. | (0U)
  710. #define ESM_INTENASET4_CONFIGVALUE (0U << 31U)\
  711. | (0U << 30U)\
  712. | (0U << 29U)\
  713. | (0U << 28U)\
  714. | (0U << 27U)\
  715. | (0U << 26U)\
  716. | (0U << 25U)\
  717. | (0U << 24U)\
  718. | (0U << 23U)\
  719. | (0U << 22U)\
  720. | (0U << 21U)\
  721. | (0U << 20U)\
  722. | (0U << 19U)\
  723. | (0U << 18U)\
  724. | (0U << 17U)\
  725. | (0U << 16U)\
  726. | (0U << 15U)\
  727. | (0U << 14U)\
  728. | (0U << 13U)\
  729. | (0U << 12U)\
  730. | (0U << 11U)\
  731. | (0U << 10U)\
  732. | (0U << 9U)\
  733. | (0U << 8U)\
  734. | (0U << 7U)\
  735. | (0U << 6U)\
  736. | (0U << 5U)\
  737. | (0U << 4U)\
  738. | (0U << 3U)\
  739. | (0U << 2U)\
  740. | (0U << 1U)\
  741. | (0U)
  742. #define ESM_INTLVLSET4_CONFIGVALUE (0U << 31U)\
  743. | (0U << 30U)\
  744. | (0U << 29U)\
  745. | (0U << 28U)\
  746. | (0U << 27U)\
  747. | (0U << 26U)\
  748. | (0U << 25U)\
  749. | (0U << 24U)\
  750. | (0U << 23U)\
  751. | (0U << 22U)\
  752. | (0U << 21U)\
  753. | (0U << 20U)\
  754. | (0U << 19U)\
  755. | (0U << 18U)\
  756. | (0U << 17U)\
  757. | (0U << 16U)\
  758. | (0U << 15U)\
  759. | (0U << 14U)\
  760. | (0U << 13U)\
  761. | (0U << 12U)\
  762. | (0U << 11U)\
  763. | (0U << 10U)\
  764. | (0U << 9U)\
  765. | (0U << 8U)\
  766. | (0U << 7U)\
  767. | (0U << 6U)\
  768. | (0U << 5U)\
  769. | (0U << 4U)\
  770. | (0U << 3U)\
  771. | (0U << 2U)\
  772. | (0U << 1U)\
  773. | (0U)
  774. /* USER CODE BEGIN (1) */
  775. /* USER CODE END */
  776. /**
  777. * @defgroup ESM ESM
  778. * @brief Error Signaling Module.
  779. *
  780. * The ESM module aggregates device errors and provides internal and external error response based on error severity.
  781. *
  782. * Related Files
  783. * - reg_esm.h
  784. * - esm.h
  785. * - esm.c
  786. * @addtogroup ESM
  787. * @{
  788. */
  789. /* Esm Interface Functions */
  790. void esmInit(void);
  791. uint32 esmError(void);
  792. void esmEnableError(uint64 channels);
  793. void esmDisableError(uint64 channels);
  794. void esmTriggerErrorPinReset(void);
  795. void esmActivateNormalOperation(void);
  796. void esmEnableInterrupt(uint64 channels);
  797. void esmDisableInterrupt(uint64 channels);
  798. void esmSetInterruptLevel(uint64 channels, uint64 flags);
  799. void esmClearStatus(uint32 group, uint64 channels);
  800. void esmClearStatusBuffer(uint64 channels);
  801. void esmSetCounterPreloadValue(uint32 value);
  802. uint64 esmGetStatus(uint32 group, uint64 channels);
  803. uint64 esmGetStatusBuffer(uint64 channels);
  804. esmSelfTestFlag_t esmEnterSelfTest(void);
  805. esmSelfTestFlag_t esmSelfTestStatus(void);
  806. boolean esmSelfTest(void);
  807. void esmGetConfigValue(esm_config_reg_t *config_reg, config_value_type_t type);
  808. /** @fn void esmGroup1Notification(uint32 channel)
  809. * @brief Interrupt callback
  810. * @param[in] channel - Group 1 channel
  811. *
  812. * This is a callback that is provided by the application and is called upon
  813. * an interrupt. The parameter passed to the callback is group 1 channel caused the interrupt.
  814. */
  815. void esmGroup1Notification(uint32 channel);
  816. /** @fn void esmGroup2Notification(uint32 channel)
  817. * @brief Interrupt callback
  818. * @param[in] channel - Group 2 channel
  819. *
  820. * This is a callback that is provided by the application and is called upon
  821. * an interrupt. The parameter passed to the callback is group 2 channel caused the interrupt.
  822. */
  823. void esmGroup2Notification(uint32 channel);
  824. /**@}*/
  825. /* USER CODE BEGIN (2) */
  826. /* USER CODE END */
  827. #endif