This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP432P4011:MSP432P4011

Guru**** 2036780 points
Other Parts Discussed in Thread: UNIFLASH, MSP-FET, CC1120
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/853125/msp432p4011-msp432p4011

器件型号:MSP432P4011

您好!

刷写 MSP-EXP432P4111 (SWD)时没有问题、但使用 MSP432P4011绑定定制板时确实有问题。 具有六个 PCB 的闪存首次成功、第一次成功。 我们使用包括 MSP432P4011RGC 在内的最小组件组装了1个 PCB (请参阅图片)。 这个只成功了一次! PCB 为2层(顶层-底层)、编程使用 SWD 来完成! 原因可能是什么? UniFlash 第一次无法识别芯片! 软件中没有用于"锁定"芯片的代码! 还有一点令人困惑的是、这些引脚的手动状态上拉和下拉、但 MSP-EXP432P4111似乎没有?

请提供建议? 这是软件问题还是硬件问题(4层中的2层)

我们可以通过某种方式擦除芯片、然后重试闪存吗?

   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是否意味着您成功管理 MSP-EXP432P4111编程的映像   与您刷写定制板的映像相同?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、不完全是、我使用 MSP432P4111的源代码作为模板、并添加/修改/修改了新的板级文件、以套件 msp432p4011。 当然、我无法验证我是否正确执行了所有这些操作、因为我没有什么可与之比较的!

    回想一下、首次编程似乎成功了、它甚至在'main'打开了调试。 第二次它不再识别芯片! VCORE 在 VCC=3V3时的测量值为59、5mV。

    此外、使用 UniFlash (版本5.1.0)不会带来拯救!

    此致、Laurent

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我假设 VCORE 具有您第一次达到 main 的预期电压?  

    不确定这是否会产生实际影响、但如果您使用  的是 MSP432P4011、为什么您从  MSP432P4111 文件开始?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    因为没有来自 msp432p4011的样片。 由于这些处理器非常相似、4011是4111、没有 LCD! 但是、我确实注意到、在这种情况下需要更改多个文件。 那么、您是否建议创建一个空的4011项目、然后将所有应用程序文件从4111传输到4011项目?

    我看到 VCORE (引脚9)非常低、大约为3 - 59、5mV、我猜会这么低?  如果我查看参考手册表5-19、这一切都将变低!

    我使用向导只使用 main.c 创建了最小的 empty 的"new CCS project"。 目前还不幸运!   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这里也是原理图的一部分。 我们仅使用 msp432p4011组件及其运行所需的组件组装了一个 PCB! 上拉和下拉电阻器为10k。 但我注意到、在 LaunchPad-4111上、它们根本不存在? 我还注意到 Keil 建议使用100k 而不是10k。 TI 文档不提供任何价值?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您能否突出显示您实际安装在电路板上的组件?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、只有方形中的所有组件都被称为"主 uC"。 左上方的上拉/下拉均为100k

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    -要排除大多数潜在的代码问题、您是否能够从 MSP432P4011 SDK (http://dev.ti.com/tirex/explore/node?node=AAOYIurCTJ8LLIFxOLzTng__z-lQYNj__LATEST&search=debug)中运行空示例、并查看您是否在其中看到相同的结果。  

    但我想这是一个硬件问题。 VCORE 应为1.2V 或1.4V、具体取决于模式等、这表示焊接可能不是最佳。 零部件是由装配体安装还是由您在内部安装?  

    您是否能够在电路板上进行探测、以查看您是否在其他引脚上具有预期的电压?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们将进行此练习! 明天回来!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、如果我尝试在 MSP-EXP432P4111-Launchpad 上运行该工具、该工具会很好地指示其 MCU 在实际中命名 MSP432P4111的错误。 如果我尝试在我们的定制硬件上运行、我会遇到一个无法识别目标的错误! 明天、我们将组装一个非常精确的新 PCB、看看会发生什么情况!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    有任何进展吗?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们为 MCU 4011创建了一个具有最低硬件的新电路板。 当我连接到 MSFET+Adptr 并运行 Uniflash 时、它确实识别了 MSP432P4011。 在此过程中、我检查了 VCORE 为1.22V、我猜这是可以的! 但是、SWDIOTMS 和 SWCLKTCK 的上拉和下拉电阻卡在1、66V。 我们设法使用 CCS 进行下载、但当我们单步执行代码时、它会在第二步后"挂起"。 之后不再连接、也无法识别! 我们使用 PT=260C 的红外焊接30秒 实际测量 T = 245C。

    上拉/下拉电阻器的值应该是多少? TI 没有提供任何价值? 我们是否应该使用上拉/下拉?  

    我们也对 表6-87 vesrus 表4-5感到困惑。

    稍后回来、首先尝试查看 MCU 是否已"锁定"  

    此致、Laurent

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这里、我们再次制作了"样条"板、以使事情正常工作! 未安装其它组件。 电源为外部3V3。 如果使用 MSP-FET + ADPTR、则开关设置为"感应"。  

    从这一点出发、我们需要知道:

    1) 1)是否需要左上角的电阻器(SWDIO、SWCLK 和 TDO_SWO)? 如果是、有什么价值?

    2) 2)首次上电后、在任何闪存之前、我们测量 VCORE = 1、22V。 是这样吗?

    3) 3)是否可以是在首次刷写后加载 MCU 的软件? 如果我们是第一次启动调试会话、然后尝试单步执行、我们会发现问题。 第二步后、它崩溃、我们无法再连接! VCORE 在这之后只有几 mV、每次启动!

    Regads、Laurent

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    1) 1)阅读 http://www.ti.com/lit/ds/symlink/msp432p4111.pdf 中的注释至6.12.24。 从原理图中可以看到、只有 R5安装了一个10k  

    2) 2)是的

    3) 3)听起来有点奇怪。 无论您尝试调试的程序如何、都会发生这种情况吗? 如果您尚未使用 SDK 中的空示例进行测试、请使用该示例。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    确切地说、这是您的包装材料吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    可能会有所帮助的地方! 我们使用了具有以下设置的 IR 焊接系统:

    -3C/秒上升至180C (最高浸泡设置)并保持90秒。
    -上升至 PT 260C 并保持30秒(测得的峰值温度约为245C)
    -用6C/S 冷却至50°C

    在上一个 PCB 之前、我们今天进行了测试、然后测试了:
    -connect GND
    -connect 3V3
    测量 VCORE --> 1.22V
    UniFlash 识别 MCU -> MSP432P4011
    能够闪存、但在闪存后 VCORE = 12MV

    我们今天做的最后一个 PCB、然后进行了测试:
    -connect GND
    -connect 3V3
    测量 VCORE --> 10mV
    UniFlash 无法识别 MCU

    此致、Laurent

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    无论您尝试调试的程序如何、都会发生这种情况吗? 据我所知、不能在软件中关闭 Vcore (因为 MCU 在此电源上运行)  

    或者、您是否可以意外地尝试打开直流/直流转换器、并且由于 VSW Pn 未连接、因此您不会获得任何电压? LDO 和 DCDC 并联放置、但如果选择了 DCDC、我不知道 LDO 是否已开启。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗯、我认为这是一个真正的问题! 我还注意到、仅焊接组件后、使用 IR 焊接轨迹< 260C 时、VCORE 仍可< 10mV、就像使用3V3为 MTU 加电一样。 我注意到包含这些 MCU 的袋子已于2018年4月20日关闭、并于2019年4月1日由我们打开! 全部原因可能是在125°C 的温度下、8小时内未烘烤!

    PS:我想、如果您想使用直流/直流转换器、您需要在软件中进行配置吗? 默认不是! 是这样吗?

    此致、

    劳伦特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、使用 DCDC 需要软件设置。 我提到它的原因是、如果您在闪存之前和闪存之后具有正确的 Vcore、这可能是(获取得太远)原因

    如果您使用预制的器件安装电路板、我们期待您的结果。 我在 CC1120上使用的第一个数据包上看到了类似的问题、需要进行预烘烤。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、今天我们试了一款"烘焙"的 msp432p4011IRGC (64引脚)、结果是一样的! CCS 识别芯片、连接、下载代码并启动调试器以等待'main'。 我们已断开连接、无需执行任何进一步的调试操作。 结果是无法再次进行连接、VCORE 变为3、36mV。 不过、我们可以提及"新"芯片与之前的芯片批次相同、日期为2018年4月20日! 我们使用的电路板(PCB)仅装配了 msp432p4011所需的组件。 该项目基于 SDK MSP432 3.30.0.13和 BLE 插件3.20.0.24中的'OAD_firmware_update_MSP432P4111_tirtos_ccs'。 此外、还对板文件进行了调整  

    明天我们希望收到另一批"新"芯片! 我们将重试。

    此致、

    劳伦特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、我从示例项目复制了 SDK BLE 插件"3.20.0.24"中的"oad_firmware_update_MSP_EXP432P4111_tirtos_ccs"。

    我将所有代码转换为与我们的目标"MSP432P4011"相匹配的代码! 我还想在项目文件中删除一些对 MSP432P4111的引用!

    我能做到以下几点:

    此致、

    劳伦特

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、我们已经达到了可以重复编程和调试 HF/LF 示例的状态。 我对 custom_MSP432P4011.c/.h 和 Board.h 进行了多处更改 我放弃了所有不使用/不需要的东西。 正如我在 syscgf 中看到的、仅配置了使用的内容。 这是正确的方法吗?

    我包含符合先前发送原理图 的文件、有人可能会看到其他错误?

    使用预定义的"_RGC_PKG_"为 MSP432P4011构建、否则为"x_RGC_PKG_" MSP-EXP432P4111 LaunchPad。  

    "板.h"

    /*
     *版权所有(c) 2017-2018、德州仪器(TI)公司
     *保留所有权利。
     *
     *以源代码和二进制形式重新分发和使用、有无
     *如果满足以下条件、则允许进行修改
     符合*:
     *
     ** 源代码的重新分发必须保留上述版权
     *  注意、此条件列表和以下免责声明。
     *
     * *二进制形式的再发行必须复制上述版权
     *  请注意、中的此条件列表和以下免责声明
     *  随分发提供的文档和/或其他材料。
     *
     * *德州仪器公司的名称和名称均不相同
     *  其贡献者可用于认可或推广衍生产品
     *  未经特定的事先书面许可。
     *
     *本软件由版权所有者和贡献者"按原样"提供
     *以及任何明示或暗示的保证、包括但不限于:
     *特定适销性和适用性的隐含保证
     *不承认目的。 在任何情况下、版权所有者不得或
     *派遣国应对任何直接、间接、偶然、特殊、
     *典型或必然的损害(包括但不限于
     *采购替代货物或服务;丧失使用、数据或利润;
     *或业务中断)、无论原因是什么以及任何责任理论、
     *无论是合同、严格责任还是侵权行为(包括疏忽或)
     *否则)因使用本软件而以任何方式产生、
     *即使被告知可能会发生此类损坏。
     *
    #ifndef __Board_H
    #define __Board_H
    #ifdef __cplusplus
    extern "C"{
    #endif
    //#include
    //#include
    #include
    #include
    //#include
    #include
    #include
    #include
    #include
    #define Board_initGeneral       MSP432P4011_initGeneral
    #define Board_GPIO_LED_ON       MSP432P4011_GPIO_LED_ON
    #define Board_GPIO_LED_OFF      MSP432P4011_GPIO_LED_OFF
    #define Board_GPIO_LED0        MSP432P4011_GPIO_LED1
    #define Board_GPIO_LED1        MSP432P4011_GPIO_RGBLED_RED
    #define Board_GPIO_LED2        MSP432P4011_GPIO_RGBLED_GREEN
    #define Board_GPIO_LED3        MSP432P4011_GPIO_RGBLED_BLUE
    #define Board_GPIO_BUTTON0      MSP432P4011_GPIO_S1
    #define Board_GPIO_Button1      MSP432P4011_GPIO_S2
    #define Board_I2C_B0         MSP432P4011_I2CB0
    #ifndef _RGC_PKG_
    #define Board_I2C_TMP         MSP432P4011_I2CB1
    #endif
    #define Board_NVS_meta        MSP432P4011_NVSMSP4320
    #define Board_NVS_OAD         MSP432P4011_NVSMSP4321
    #define Board_SD0           MSP432P4011_SDSPI0
    #define Board_SDFatFS0        MSP432P4011_SDSPI0
    #define Board_SPI0          MSP432P4011_SPIB0
    #define Board_SPI1          MSP432P4011_SPIB2
    #define Board_SPI2          MSP432P4011_SPIB3
    #define Board_SPI3          MSP432P4011_SPIB4
    #define Board_SPI_CS1         MSP432P4011_SPI_CS1
    #define Board_SPI_CS2         MSP432P4011_SPI_CS2
    // SAP SNP UART 接口
    #ifndef _RGC_PKG_
    #define Board_UART0          MSP432P4011_UARTA2
    其他
    #define Board_UART0          MSP432P4011_UARTA0
    #define Board_UART1          MSP432P4011_UARTA1
    #define Board_UART2          MSP432P4011_UARTA2
    #endif
    #define Board_WATCHDOG0        MSP432P4011_watchdog
    /*特定于电路板的 I2C 地址*/
    #define Board_TMP_ADDR        (0x40)
    #define Board_sensors_BP_TMP_ADDR  Board_TMP_ADDR
    #define Board_TPL0401_ADDR      (0x40)
    /* BLE 定义*/
    #define Board_BLE_RESET        MSP432P4011_BLE_RESET
    #define Board_BLE_MRDY         MSP432P4011_BLE_MRDY
    #define Board_BLE_SRDY         MSP432P4011_BLE_SRDY
    #define Board_GPIO_TP14        MSP432P4011_GPIO_TP14
    #define Board_GPIO_TP15        MSP432P4011_GPIO_TP15
    #ifdef __cplusplus
    #endif
    #endif /*__Board_H */
    --------------------------------------------------------------------
    "custom_MSP432P4011.h"

    /*
    *版权所有(c) 2017、德州仪器(TI)公司
    *保留所有权利。
    *
    *以源代码和二进制形式重新分发和使用、有无
    *如果满足以下条件、则允许进行修改
    符合*:
    *
    **源代码的重新分发必须保留上述版权
    *注意、此条件列表和以下免责声明。
    *
    **二进制形式的再发行必须复制上述版权
    *请注意、中的此条件列表和以下免责声明
    *随分发提供的文档和/或其他材料。
    *
    **德州仪器公司的名称和名称均不相同
    *其贡献者可用于认可或推广衍生产品
    *未经特定的事先书面许可。
    *
    *本软件由版权所有者和贡献者"按原样"提供
    *以及任何明示或暗示的保证、包括但不限于:
    *特定适销性和适用性的隐含保证
    *不承认目的。 在任何情况下、版权所有者不得或
    *派遣国应对任何直接、间接、偶然、特殊、
    *典型或必然的损害(包括但不限于
    *采购替代货物或服务;丧失使用、数据或利润;
    *或业务中断)、无论原因是什么以及任何责任理论、
    *无论是合同、严格责任还是侵权行为(包括疏忽或)
    *否则)因使用本软件而以任何方式产生、
    *即使被告知可能会发生此类损坏。
    *
    /**========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    *@文件 MSP432P4011.h
    *
    *@MSP432P4011特定于电路板的 API 简介
    *
    * MSP432P4011头文件应包含在应用程序中、如所示
    *如下:
    *@代码
    *#include
    *@尾码
    *
    *====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    *
    #ifndef __MSP432P4011_H
    #define __MSP432P4011_H

    #ifdef __cplusplus
    extern "C"{
    #endif

    MSP432P4011上的/* LED 为高电平有效。 *
    #define MSP432P4011_GPIO_LED_OFF (0)
    #define MSP432P4011_GPIO_LED_ON (1)

    /*!
    *@def MSP432P4011_GPIOName
    *@MSP432P4011开发板上 GPIO 名称的简要枚举
    *
    #ifndef _RGC_PKG_
    typedef 枚举 MSP432P4011_GPIOName{
    MSP432P4011_GPIO_S1 = 0、
    MSP432P4011_GPIO_S2、
    MSP432P4011_BLE_SRDY、
    MSP432P4011_BLE_MRDY、
    MSP432P4011_BLE_RESET、
    MSP432P4011_GPIO_LED1、
    MSP432P4011_GPIO_RGBLED_RED、
    MSP432P4011_GPIO_RGBLED_GREEN、
    MSP432P4011_GPIO_RGBLED_BLUE、
    MSP432P4011_GPIOCOUNT
    } MSP432P4011_GPIOName;
    其他
    typedef 枚举 MSP432P4011_GPIOName{
    MSP432P4011_BLE_SRDY、
    MSP432P4011_BLE_MRDY、
    MSP432P4011_BLE_RESET、
    MSP432P4011_GPIO_TP14、
    MSP432P4011_GPIO_TP15、
    MSP432P4011_GPIOCOUNT
    } MSP432P4011_GPIOName;

    #endif

    /*!
    *@def MSP432P4011_I2CName
    *@MSP432P4011开发板上 I2C 名称的简要枚举
    *
    typedef 枚举 MSP432P4011_I2CName{
    #ifndef _RGC_PKG_
    MSP432P4011_I2CB0 = 0、
    MSP432P4011_I2CB1、
    其他
    MSP432P4011_I2CB0 = 0、
    #endif
    MSP432P4011_I2CCOUNT
    } MSP432P4011_I2CName;

    /*!
    *@def MSP432P4011_I2CSlaveName
    *@MSP432P4011开发板上 I2CSlave 名称的简要枚举
    *
    typedef enum MSP432P4011_I2CSlaveName{
    MSP432P4011_I2CSLAVEB0 = 0、

    MSP432P4011_I2CSLAVECOUNT
    } MSP432P4011_I2CSlaveName;

    /*!
    *@def MSP432P4011_NVSName
    *@MSP432P4011开发板上 NVS 名称的简要枚举
    *
    typedef 枚举 MSP432P4011_NVSName{
    MSP432P4011_NVSMSP4320 = 0、
    MSP432P4011_NVSMSP4321 = 1、

    MSP432P4011_NVSCOUNT
    } MSP432P4011_NVSName;

    /*!
    *@def MSP432P4011_SDFatFName
    *@MSP432P4011开发板上 SDFatFS 名称的简要枚举
    *
    typedef enum MSP432P4011_SDFatFName{
    MSP432P4011_SDFatFS0 = 0、

    MSP432P4011_SDFatFSCOUNT
    }MSP432P4011_SDFatFName;

    /*!
    *@def MSP432P4011_SDName
    *@MSP432P4011开发板上 SD 名称的简要枚举
    *
    typedef 枚举 MSP432P4011_SDName{
    MSP432P4011_SDSPI0 = 0、

    MSP432P4011_SDCOUNT
    } MSP432P4011_SDName;
    /*!
    *@def MSP432P4011_SPIName
    *@MSP432P4011开发板上 SPI 名称的简要枚举
    *
    typedef enum MSP432P4011_SPIName{
    MSP432P4011_SPIB0 = 0、
    MSP432P4011_SPIB2、
    MSP432P4011_SPIB3、
    MSP432P4011_SPIB4、

    MSP432P4011_SPICOUNT
    } MSP432P4011_SPIName;

    /*!
    *@def MSP432P4011_UARTName
    *@MSP432P4011开发板上 UART 名称的简要枚举
    *
    typedef 枚举 MSP432P4011_UARTName{
    MSP432P4011_UARTA0 = 0、
    #ifdef _RGC_PKG_
    MSP432P4011_UARTA1、
    #endif
    MSP432P4011_UARTA2、

    MSP432P4011_UARTCOUNT
    }MSP432P4011_UARTName;

    /*!
    *@def MSP432P4011_WatchdogName
    *@MSP432P4011开发板上看门狗名称的简要枚举
    *
    typedef enum MSP432P4011_WatchdogName{
    MSP432P4011_Watchdog = 0、

    MSP432P4011_WATCHDOGCOUNT
    } MSP432P4011_WatchdogName;

    /*!
    *@简要初始化通用板特定设置
    *
    *此函数用于初始化通用板特定设置。
    *
    extern void MSP432P4011_initGeneral (void);

    #ifdef __cplusplus

    #endif

    #endif /*__MSP432P4011_H */

    ----------------------------------------------------------------------

    custom_MSP432P4011.c

    /*
    *版权所有(c) 2017、德州仪器(TI)公司
    *保留所有权利。
    *
    *以源代码和二进制形式重新分发和使用、有无
    *如果满足以下条件、则允许进行修改
    符合*:
    *
    **源代码的重新分发必须保留上述版权
    *注意、此条件列表和以下免责声明。
    *
    **二进制形式的再发行必须复制上述版权
    *请注意、中的此条件列表和以下免责声明
    *随分发提供的文档和/或其他材料。
    *
    **德州仪器公司的名称和名称均不相同
    *其贡献者可用于认可或推广衍生产品
    *未经特定的事先书面许可。
    *
    *本软件由版权所有者和贡献者"按原样"提供
    *以及任何明示或暗示的保证、包括但不限于:
    *特定适销性和适用性的隐含保证
    *不承认目的。 在任何情况下、版权所有者不得或
    *派遣国应对任何直接、间接、偶然、特殊、
    *典型或必然的损害(包括但不限于
    *采购替代货物或服务;丧失使用、数据或利润;
    *或业务中断)、无论原因是什么以及任何责任理论、
    *无论是合同、严格责任还是侵权行为(包括疏忽或)
    *否则)因使用本软件而以任何方式产生、
    *即使被告知可能会发生此类损坏。
    *

    /*
    *==== MSP432P4011.c ===
    *此文件负责为设置特定于电路板的项目
    * MSP432P4011电路板。
    *

    #include
    #include
    #include
    #include

    #include
    #include

    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include

    #include

    #if defined (__TI_Compiler_version__)
    #pragma DATA_ALIGN (dmaControlTable、256)
    #Elif defined (_IAR_systems_icc_)
    #pragma DATA_alignment=256
    #Elif defined (_GNU_)
    __attribute__((对齐(256)))
    #endif
    静态 DMA_ControlTable dmaControlTable[16];

    /*
    *==== dmaErrorHwi ====
    *这是 uDMA 错误中断的处理程序。
    *
    静态空 dmaErrorHwi (uintptr_t arg)

    int status = map_dma_getErrorStatus();
    map_dma_clearErrorStatus();

    /*禁止未使用的变量警告*/
    (无效)地位;

    while (1);

    UDMAMSP432_Object udmaMSP432Object;

    CONST UDMAMSP432_HWAttrs udmaMSP432HWAttrs ={
    .controlBaseAddr =(void *) dmaControlTable、
    .dmaErrorFxn =(UDMAMSP432_ErrorFxn) dmaErrorHwi、
    .intNum = INT_DMA_ERR、
    .intPriority =(~0)
    };

    CONST UDMAMSP432_Config UDMAMSP432_CONFIG ={
    .object = udmaMSP432Object、
    hwAttrs =&udmaMSP432HWAttrs
    };

    /*
    *========================================= Display =================================================
    *
    #include
    #include
    #define MAXPRINTLEN 1024

    DisplayUart_Object displayUartObject;

    静态 char displayBuf[MAXPRINTLEN];

    const DisplayUart_HWAttrs displayUartHWAttrs ={
    #ifndef _RGC_PKG_
    uartIdx = MSP432P4011_UARTA0、
    其他
    uartIdx = MSP432P4011_UARTA2、
    #endif
    .budrate = 115200、
    .mutexTimeout =(unsigned int)(-1)、
    strBuf = displayBuf、
    strBufLen = MAXPRINTLEN
    };

    #ifndef Board_display_use_uart_ansi
    #define Board_display_use_UART_ANSI 0
    #endif

    const Display_Config Display_config[]={

    # IF (Board_display_use_uart_ansi)
    .fxnTablePtr =&DisplayUartAnsi_fxnTable、
    # else /*默认为最小 UART、不放置光标*/
    .fxnTablePtr =&DisplayUartMin_fxnTable、
    # endif
    .object =显示 UartObject (&D)、
    hwAttrs =&displayUartHWAttrs

    };

    const uint_least8_t Display_count = sizeof (Display_config)/sizeof (Display_Config);

    /*
    *==== MSP432P4011_initGeneral ===
    *
    void MSP432P4011_initGeneral (void)

    power_init();

    /*
    *========================================= GPIO ===========================================
    *
    #include
    #include

    /*
    *引脚配置阵列
    *注意:引脚配置的顺序必须与之前的顺序一致
    *在 MSP432P4011.h 中定义
    *注意:不用于中断的引脚应放置在的末尾
    *数组。 回调数组到的回调条目可以省略
    *减少内存使用。
    *
    GPIO_PinConfig gpioPinConfigs[]=

    #ifndef _RGC_PKG_
    /*输入引脚*/
    /* MSP432P4011_S1 *
    GPIOMSP432_P1_1 | GPIO_CFG_IN_pu | GPIO_CFG_IN_INT_RISING、

    /* MSP432P4011_S2 */
    GPIOMSP432_P1_4 | GPIO_CFG_IN_pu | GPIO_CFG_IN_INT_RISING、

    /* MSP432P4011_SRDY */
    GPIOMSP432_P2_5 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH
    | GPIO_CFG_OUT_HIGH、
    /* MSP432P4011_MRDY */
    GPIOMSP432_P6_0 | GPIO_CFG_IN_pu、

    /* MSP432P4011_RESET */
    GPIOMSP432_P6_7 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH
    | GPIO_CFG_OUT_HIGH、

    /*输出引脚*/
    /* MSP432P4011_LED1 */
    GPIOMSP432_P1_0 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH
    | GPIO_CFG_OUT_LOW、

    /* MSP432P4011_RGBLED_RED */
    GPIOMSP432_P2_0 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH
    | GPIO_CFG_OUT_LOW、

    /*
    * MSP432P4011_LED_GREEN 和 MSP432P4011_LED_BLUE 用于
    * PWM 示例。 如果要控制、请取消注释以下行
    *使用 GPIO 驱动程序的 LED。
    *
    /* MSP432P4011_RGBLED_GREEN *
    GPIOMSP432_P2_1 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH
    | GPIO_CFG_OUT_LOW、

    /* MSP432P4011_RGBLED_BLUE */
    GPIOMSP432_P2_2 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH
    | GPIO_CFG_OUT_LOW、

    其他
    /* MSP432P4011_SRDY TP11 */
    GPIOMSP432_P1_5 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH
    | GPIO_CFG_OUT_HIGH、
    /* MSP432P4011_MRDY TP12 */
    GPIOMSP432_P8_0 | GPIO_CFG_IN_pu、

    /* MSP432P4011_BLE_RESET */
    GPIOMSP432_P1_4 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH
    | GPIO_CFG_OUT_HIGH、

    /* MSP432P4011_GPIO_TP14 */
    GPIOMSP432_PJ_4 | GPIO_CFG_OUTPUT | GPIO_CFG_OUT_STR_LOW
    | GPIO_CFG_OUT_HIGH、

    /* MSP432P4011_GPIO_TP15 */
    GPIOMSP432_P7_3 | GPIO_CFG_OUTPUT | GPIO_CFG_OUT_STR_LOW
    | GPIO_CFG_OUT_HIGH、

    #endif
    };

    /*
    *回调函数指针数的数组
    *注意:引脚配置的顺序必须与之前的顺序一致
    *在 MSP432P4011.h 中定义
    *注意:在到的回调数组中可以省略不用于中断的引脚
    *减少内存使用量(如果放置在 gpioPinConfigs 数组的末尾)。
    *
    GPIO_CallbackFxn gpioCallbackFunctions[]=

    #ifndef _RGC_PKG_
    /* MSP432P4011_S1 *
    null、
    /* MSP432P4011_S2 */
    null、
    /* MSP432P4011_SRDY */
    null、
    /* MSP432P4011_MRDY */
    null、
    /* MSP432P4011_RESET */
    null、
    /* MSP432P4011_LED1 */
    null、
    /* MSP432P4011__RGBLED_RED */
    null、
    /* MSP432P4011_RGBLED_GREEN *
    null、
    /* MSP432P4011_RGBLED_BLUE */
    null
    其他
    /* MSP432P4011_SRDY */
    null、
    /* MSP432P4011_MRDY */
    null、
    /* MSP432P4011_BLE_RESET */
    null、
    /* MSP432P4011_GPIO_TP14 */
    null、
    /* MSP432P4011_GPIO_TP15 */
    null
    #endif
    };

    CONST GPIOMSP432_Config GPIOMSP432_CONFIG ={
    .pinConfigs =(GPIO_PinConfig *) gpioPinConfigs、
    .callback =(GPIO_CallbackFxn *) gpioCallbackFuncions、
    numberOfPinConfigs = sizeof (gpioPinConfigs)/sizeof (GPIO_PinConfig)、
    numberOfCallbacks = sizeof (gpioCallbackFuncions)/sizeof (GPIO_CallbackFxn)、
    .intPriority =(~0)
    };

    /*
    *========================================= I2C ================================================
    *
    #include
    #include

    I2CMSP432_Object i2cMSP432Objects[MSP432P4011_I2CCOUNT;
    #ifndef _RGC_PKG
    #define Periph_BASE ((uint32_t) 0x40000000)/*!<外设起始地址*/
    #define EUSCI_B1_BASE (Periph_BASE +0x00002400)/*!<模块 EUSCI_B1寄存器的基地址*
    #endif

    CONST I2CMSP432_HWAttrsV1 i2cMSP432HWAttrs[MSP432P4011_I2CCOUNT ={
    #ifndef _RGC_PKG_

    baseAddr = EUSCI_B0_BASE、
    .intNum = INT_EUSCIB0、
    .intPriority =(~0)、
    时钟源= EUSCI_B_I2C_CLOCKSOURCE_SMCLK、
    .dataPin = I2CMSP432_P1_6_UCB0SDA、
    clkPin = I2CMSP432_P1_7_UCB.S
    }、

    baseAddr = EUSCI_B1_base、
    .intNum = INT_EUSCIB1、
    .intPriority =(~0)、
    时钟源= EUSCI_B_I2C_CLOCKSOURCE_SMCLK、
    .dataPin = I2CMSP432_P6_4_UCB1SDA、
    clkPin = I2CMSP432_P6_5_UCB.S

    其他

    baseAddr = EUSCI_B0_BASE、
    .intNum = INT_EUSCIB0、
    .intPriority =(~0)、
    时钟源= EUSCI_B_I2C_CLOCKSOURCE_SMCLK、
    .dataPin = I2CMSP432_P1_6_UCB0SDA、
    clkPin = I2CMSP432_P1_7_UCB.S

    #endif
    };

    CONST I2C_Config I2C_CONFIG[MSP432P4011_I2CCOUNT ={
    #ifndef _RGC_PKG_

    fxnTablePtr =&I2CMSP432_fxnTable、
    .object =&i2cMSP432Objects[MSP432P4011_I2CB0]、
    hwAttrs =&i2cMSP432HWAttrs[MSP432P4011_I2CB0]
    }、

    fxnTablePtr =&I2CMSP432_fxnTable、
    .object =&i2cMSP432Objects[MSP432P4011_I2CB1]、
    hwAttrs =&i2cMSP432HWAttrs[MSP432P4011_I2CB1]

    其他

    fxnTablePtr =&I2CMSP432_fxnTable、
    .object =&i2cMSP432Objects[MSP432P4011_I2CB0]、
    hwAttrs =&i2cMSP432HWAttrs[MSP432P4011_I2CB0]

    #endif
    };

    const uint_least8_t I2C_count = MSP432P4011_I2CCOUNT;

    /*
    *========================================= NVS ================================================
    *
    #include
    #include
    #include "oad_parameters.h"

    /*
    *保留用于 NVS 驱动程序的闪存扇区
    *方法是放置一个未初始化的字节数组
    *位于所需的闪存地址。
    *将未初始化的数组放置在基址
    *
    #pragma LOCATION (SNP_CODE、NVS_OAD_BASE);
    #pragma NOINIT (SNP_CODE);
    uint8_t SNP_CODE[OAD_REGARE_SIZE];

    #pragma LOCATION (metaBuf、NVS_meta_base);
    pragma NOINIT (metaBuf);
    char metaBuf[OAD_meta_size];

    NVSMSP432_Object nvsMSP432Objects[MSP432P4011_NVSCOUNT];

    CONST NVSMSP432_HWAttrs nvsMSP432HWAttrs[MSP432P4011_NVSCOUNT]={

    regionBase =(void *) metaBuf、
    regionSize = OAD_meta_size、
    }、

    regionBase =(void *) SNP_CODE、
    regionSize = OAD_REGION、
    }、
    };

    CONST NVS_Config NVS_CONFIG[MSP432P4011_NVSCOUNT]={

    fxnTablePtr =&NVSMSP432_fxnTable、
    .object =_nvsMSP432Objects[MSP432P4011_NVSMSP4320]、
    hwAttrs =&nvsMSP432HWAttrs[MSP432P4011_NVSMSP4320]、
    }、

    fxnTablePtr =&NVSMSP432_fxnTable、
    .object =_nvsMSP432Objects[MSP432P4011_NVSMSP4321]、
    hwAttrs =&nvsMSP432HWAttrs[MSP432P4011_NVSMSP4321]、
    }、
    };

    const uint_least8_t NVS_count = MSP432P4011_NVSCOUNT;
    /*
    *========================================= 电源================================================
    *
    CONST PowerMSP432_ConfigV1 PowerMSP432_CONFIG ={
    policyInitFxn =&PowerMSP432_initPolicy、
    policyFxn =&PowerMSP432_sleepPolicy、
    .initialPerfLevel = 2、
    .enablePolicy = true、
    .enablePerf = true、
    .enableParking = true
    };

    /*
    *========================================= SPI ========================================================
    *
    #include
    #include

    SPIMSP432DMA_Object spiMSP432DMAObjects[MSP432P4011_SPICOUNT];

    /*
    *注意:SD 驱动程序可使用以下 SPI 实例进行通信
    *通过 SPI 使用 SD 卡。 下面的'DEFaultTxBufValue'域被设定为0xFF
    以满足 SDSPI 驱动程序要求。
    *
    CONST SPIMSP432DMA_HWAttrsV1 spiMSP432DMAHWAttrs[MSP432P4011_SPICOUNT]={

    baseAddr = EUSCI_B0_BASE、
    .bitOrder = EUSCI_B_SPI_MSB_FIRST、
    时钟源= EUSCI_B_SPI_CLOCKSOURCE_SMCLK、
    defaultTxBufValue = 0xFF、
    .dmaIntNum = INT_DMA_INT1、
    .intPriority =(~0)、
    .rxDMAChannelIndex = DMA_CH1_EUSCIB0RX0、
    TxDMAChannelIndex = DMA_CH0_EUSCIB0TX0、
    clkPin = SPIMSP432DMA_P1_5_UCB0CLK、
    simoPin = SPIMSP432DMA_P1_6_UCB0SIMO、
    .somiPin = SPIMSP432DMA_P1_7_UCB0SOMI、
    STEPIN = SPIMSP432DMA_P1_4_UCB0STE、
    .pinMode = EUSCI_SPI_3引脚、
    .minDmaTransferSize = 10
    }、

    baseAddr = EUSCI_B2_base、
    .bitOrder = EUSCI_B_SPI_MSB_FIRST、
    时钟源= EUSCI_B_SPI_CLOCKSOURCE_SMCLK、
    defaultTxBufValue = 0xFF、
    .dmaIntNum = INT_DMA_INT2、
    .intPriority =(~0)、
    .rxDMAChannelIndex = DMA_CH5_EUSCIB2RX0、
    TxDMAChannelIndex = DMA_CH4_EUSCIB2TX0、
    clkPin = SPIMSP432DMA_P3_5_UCB2CLK、
    simoPin = SPIMSP432DMA_P3_6_UCB2SIMO、
    .somiPin = SPIMSP432DMA_P3_7_UCB2SOMI、
    .stebin = SPIMSP432DMA_P3_4_UCB2STE、
    .pinMode = EUSCI_SPI_3引脚、
    .minDmaTransferSize = 10
    }、

    baseAddr = EUSCI_A1_base、
    .bitOrder = EUSCI_A_SPI_MSB_FIRST、
    时钟源= EUSCI_A_SPI_CLOCKSOURCE_SMCLK、
    defaultTxBufValue = 0xFF、
    .dmaIntNum = INT_DMA_INT2、
    .intPriority =(~0)、
    .rxDMAChannelIndex = DMA_CH3_EUSCIA1RX、
    TxDMAChannelIndex = DMA_CH2_EUSCIA1TX、
    clkPin = SPIMSP432DMA_P2_5_UCA1CLK、
    simoPin = SPIMSP432DMA_P2_6_UCA1SIMO、
    .somiPin = SPIMSP432DMA_P2_7_UCA1SOMI、
    .stebin = SPIMSP432DMA_P2_3_UCA1STE、
    .pinMode = EUSCI_SPI_4PIN_UCxSTE_ACTIVE_LOW、
    .minDmaTransferSize = 10
    }、

    baseAddr = EUSCI_B2_base、
    .bitOrder = EUSCI_B_SPI_MSB_FIRST、
    时钟源= EUSCI_B_SPI_CLOCKSOURCE_SMCLK、
    defaultTxBufValue = 0xFF、
    .dmaIntNum = INT_DMA_INT3、
    .intPriority =(~0)、
    .rxDMAChannelIndex = DMA_CH5_EUSCIB2RX0、
    TxDMAChannelIndex = DMA_CH4_EUSCIB2TX0、
    clkPin = SPIMSP432DMA_P3_5_UCB2CLK、
    simoPin = SPIMSP432DMA_P3_6_UCB2SIMO、
    .somiPin = SPIMSP432DMA_P3_7_UCB2SOMI、
    .stebin = SPIMSP432DMA_P2_4_UCB2STE、
    .pinMode = EUSCI_SPI_4PIN_UCxSTE_ACTIVE_LOW、
    .minDmaTransferSize = 10

    };

    CONST SPI_Config SPI_CONFIG[MSP432P4011_SPICOUNT]={

    .fxnTablePtr =&SPIMSP432DMA_fxnTable、
    .object =&spiMSP432DMAObjects[MSP432P4011_SPIB0]、
    hwAttrs =&spiMSP432DMAHWAttrs[MSP432P4011_SPIB0]
    }、

    .fxnTablePtr =&SPIMSP432DMA_fxnTable、
    .object =&spiMSP432DMAObjects[MSP432P4011_SPIB2]、
    hwAttrs =&spiMSP432DMAHWAttrs[MSP432P4011_SPIB2]
    }、

    .fxnTablePtr =&SPIMSP432DMA_fxnTable、
    .object =&spiMSP432DMAObjects[MSP432P4011_SPIB3]、
    hwAttrs =&spiMSP432DMAHWAttrs[MSP432P4011_SPIB3]
    }、

    .fxnTablePtr =&SPIMSP432DMA_fxnTable、
    .object =&spiMSP432DMAObjects[MSP432P4011_SPIB4]、
    hwAttrs =&spiMSP432DMAHWAttrs[MSP432P4011_SPIB4]

    };

    const uint_least8_t SPI_count = MSP432P4011_SPICOUNT;

    /*
    *========================================= UART ========================================================
    *
    #include
    #include

    UARTMSP432_Object uartMSP432Objects[MSP432P4011_UARTCOUNT];
    unsigned char uartMSP432RingBuffer[MSP432P4011_UARTCOUNT][32];

    /*
    *波特率分频器是使用 MSP432波特率确定的
    *计算器
    * software-dl.ti.com/.../index.html
    *
    CONST UARTMSP432_BudrateConfig uartMSP432Budrates []={
    /*{波特率、输入时钟、预分频器、UCBRFx、UCBRSx、 过采样}*/

    .outputBudrate = 115200、
    .inputClockFreq = 24000000、
    .prescalar = 13、
    hwRegUCBRFx = 0、
    hwRegUCBRSx = 37、
    过采样= 1.
    }、
    {115200、12000000、6、8、32、 1}、
    {115200、6000000、3、4、2、 1}、
    {115200、3000000、1、10、0、 1}、
    {9600、24000000、156、4、0、 1}、
    {9600、12000000、78、2、0、 1}、
    {9600、6000000、39、1、0、 1}、
    {9600、3000000、19、8、85、 1}、
    {9600、32768、3、0、146、 0}
    };

    CONST UARTMSP432_HWAttrsV1 uartMSP432HWAttrs[MSP432P4011_UARTCOUNT]={

    baseAddr = EUSCI_A0_BASE、
    .intNum = INT_EUSCIA0、
    .intPriority =(~0)、
    时钟源= EUSCI_A_UART_CLOCKSOURCE_SMCLK、
    .bitOrder = EUSCI_A_UART_LSB_FIRST、
    numBudrateEntry 尝试次数= sizeof (uartMSP432Budrates)/
    sizeof (UARTMSP432_BudrateConfig)、
    .budrateLUT = uartMSP432Budrates、
    .ringBufPtr = uartMSP432RingBuffer[MSP432P4011_UARTA0]、
    .ringBufSize = sizeof (uartMSP432RingBuffer[MSP432P4011_UARTA0])、
    .rxPin = UARTMSP432_P1_2_UCA0RXD、
    txPin = UARTMSP432_P1_3_UCA0TXD、
    errorFxn =空
    }、
    #ifdef _RGC_PKG_

    baseAddr = EUSCI_A1_base、
    .intNum = INT_EUSCIA1、
    .intPriority =(~0)、
    时钟源= EUSCI_A_UART_CLOCKSOURCE_SMCLK、
    .bitOrder = EUSCI_A_UART_LSB_FIRST、
    numBudrateEntry 尝试次数= sizeof (uartMSP432Budrates)/
    sizeof (UARTMSP432_BudrateConfig)、
    .budrateLUT = uartMSP432Budrates、
    .ringBufPtr = uartMSP432RingBuffer[MSP432P4011_UARTA1]、
    .ringBufSize = sizeof (uartMSP432RingBuffer[MSP432P4011_UARTA1])、
    .rxPin = UARTMSP432_P2_2_UCA1RXD、
    txPin = UARTMSP432_P2_3_UCA1TXD、
    errorFxn =空
    }、
    #endif

    baseAddr = EUSCI_A2_base、
    .intNum = INT_EUSCIA2、
    .intPriority =(~0)、
    时钟源= EUSCI_A_UART_CLOCKSOURCE_SMCLK、
    .bitOrder = EUSCI_A_UART_LSB_FIRST、
    numBudrateEntry 尝试次数= sizeof (uartMSP432Budrates)/
    sizeof (UARTMSP432_BudrateConfig)、
    .budrateLUT = uartMSP432Budrates、
    .ringBufPtr = uartMSP432RingBuffer[MSP432P4011_UARTA2]、
    .ringBufSize = sizeof (uartMSP432RingBuffer[MSP432P4011_UARTA2])、
    .rxPin = UARTMSP432_P3_2_UCA2RXD、
    TxPin = UARTMSP432_P3_3_UCA2TXD、
    errorFxn =空

    };

    CONST UART_Config UART_CONFIG[MSP432P4011_UARTCOUNT]={

    .fxnTablePtr =&UARTMSP432_fxnTable、
    .object = uartMSP432Objects[MSP432P4011_UARTA0]、
    hwAttrs = uartMSP432HWAttrs[MSP432P4011_UARTA0]
    }、
    #ifdef _RGC_PKG_

    .fxnTablePtr =&UARTMSP432_fxnTable、
    .object = uartMSP432Objects[MSP432P4011_UARTA1]、
    hwAttrs = uartMSP432HWAttrs[MSP432P4011_UARTA1]
    }、
    #endif

    .fxnTablePtr =&UARTMSP432_fxnTable、
    .object = uartMSP432Objects[MSP432P4011_UARTA2]、
    hwAttrs = uartMSP432HWAttrs[MSP432P4011_UARTA2]

    };

    const uint_least8_t UART_count = MSP432P4011_UARTCOUNT;

    /*
    *========================================= 看门狗=========================================
    *
    #include
    #include

    WatchdogMSP432_Object WatchdogMSP432Objects[MSP432P4011_WATCHDOGCOUNT];

    const WatchdogMSP432_HWAttrs
    WatchdogMSP432HWAttrs[MSP432P4011_WATCHDOGCOUNT]={

    baseAddr = WDT_A_base、
    .intNum = INT_WDT_A、
    .intPriority =(~0)、
    时钟源= WDT_A_CLOCKSOURCE_SMCLK、
    时钟分频器= WDT_A_CLOCKDIVIDER_8192K

    };

    CONST Watchdog_Config Watchdog_config[MSP432P4011_WATCHDOGCOUNT]={

    fxnTablePtr =&WatchdogMSP432_fxnTable、
    .object =&watchdogMSP432Objects[MSP432P4011_watchdog]、
    hwAttrs =&watchdogMSP432HWAttrs[MSP432P4011_watchdog]

    };

    const uint_least8_t Watchdog_count = MSP432P4011_WATCHDOGCOUNT;

    此致、Laurent