1 2 3 4 5 6 7 8
9
10 package ti.catalog.msp430.init;
11
12 import xdc.rov.ViewInfo;
13
14 @Template("./Boot.xdt")
15
16 metaonly module Boot
17 {
18 metaonly struct ModuleView {
19 Bool disableWatchdog;
20 UInt watchdogAddress;
21 Bool configureDCO;
22 }
23
24 @Facet
25 metaonly config ViewInfo.Instance rovViewInfo =
26 ViewInfo.create({
27 viewMap: [
28 [
29 'Module',
30 {
31 type: ViewInfo.MODULE,
32 viewInitFxn: 'viewInitModule',
33 structName: 'ModuleView'
34 }
35 ],
36 ]
37 });
38
39 /*!
40 * Watchdog disable flag; default is true.
41 *
42 * Set to false to not automatically disable the watchdog timer.
43 */
44 config Bool disableWatchdog = true;
45
46 /*!
47 * Watchdog control register address; default for MSP430F54xx and
48 * MSP430F552x.
49 *
50 * Change for other devices.
51 */
52 config UInt watchdogAddress = 0x15c;
53
54 /*!
55 * Configure DCO flag; default is false.
56 *
57 * Set to true to initialize DCO at boot.
58 */
59 config Bool configureDCO = false;
60
61 /*!
62 * Code section that Boot module code is in.
63 *
64 * To place this section into a memory segment yourself, add the
65 * following to your configuration file:
66 *
67 * @p(code)
68 * Program.sectMap[Boot.bootCodeSection] = new Program.SectionSpec();
69 * Program.sectMap[Boot.bootCodeSection].loadSegment = "yourBootCodeMemorySegment";
70 * @p
71 *
72 * or to place the code at a specific address:
73 *
74 * @p(code)
75 * Program.sectMap[Boot.bootCodeSection] = new Program.SectionSpec();
76 * Program.sectMap[Boot.bootCodeSection].loadAdress = yourBootCodeAddress;
77 * @p
78 *
79 */
80 readonly config String bootCodeSection = ".bootCodeSection";
81
82 };