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.

[参考译文] CCS/MSP432P401R:代码集成问题

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/836318/ccs-msp432p401r-issue-with-code-integration

器件型号:MSP432P401R
主题中讨论的其他器件: CC3120CC3120BOOST

工具/软件:Code Composer Studio

CCS/MSP432P401R:将碰撞传感器、转速计代码集成到 WiFi 模块中的问题 MSP432P401R Launchpad 和 CC3120中的实验20

你(们)好

当碰撞传感器和转速计集成到 WIFI 模块中时、我面临一些问题。 两个部件都无法正常工作。 Pthread 在 wifi 模块中非常令人困惑、您能向我们展示一下方法、以便我能够将这两个部分集成到 wifi 模块中。

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

    尊敬的 Myo:

    我们将对此进行研究、并尽快返回给您。

    BR、

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

    大家好、Myo Min Paing、

    您可以在此处了解有关 pthread 的信息--> http://processors.wiki.ti.com/index.php/SYS/BIOS_POSIX_Thread_%28pthread%29_Support

    在尝试将所有内容整合在一起之前、我建议您一次执行一个步骤。 从 SDK 中的"empty"项目开始、使一个传感器正常工作。 然后让另一个传感器处理单独的"空"项目。 完成此操作后、集成这两个传感器、使两个传感器协同工作。 然后、您应该尝试将其与 network_terminal 示例集成。

    BR、

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

    你好、Seong

    好的、非常感谢。 我正在了解这一点。 同时、我是否可以知道 POSIX 线程是否能够以与 MSP432P401R 相同的低延迟支持电机、碰撞传感器和转速计的计时器和中断? 切换之前为这些传感器和电机创建的计时器和中断非常不方便。

    此致

    最小值

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

    你好、Seong

    当我将碰撞传感器添加到实验20程序时、它不起作用。 是否可以在不更改我在 MSP432P401R 中创建的原始现有程序计时器和中断的情况下集成这些程序? 我怀疑 MSP432和 CC3120中的计时器之间存在一些冲突。  

    此致

    最小值

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

    您好、Min、

    MSP432计时器独立于 CC3120运行。 这两个器件仅通过 SPI (默认)和一些 GPIO 进行连接、以进行复位和中断。 CC3120 Booster Pack 可能会尝试使用您最初用于传感器和电机的引脚。 确保您的应用中器件之间没有引脚冲突。

    Jesu

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

    你(们)好

    感谢您提供信息。 我想我错了 CC3120。 实际情况是构建 TI-RSLK 的 Lab20。 在 Lab20之前、TimerA 及其实际模块使用其 CCS 内置库、如下所示。 我已经使用计时器 A 来实现转速计和电机 PWM。  

    将 MSP432SDK 库导入 Lab20后、我遇到一个问题、即在通过 lab20 wifi 模块通过所需的头文件和.c 文件传输后、MSP432SDK 库 TimerA 在某种程度上与 CCS 内置库中的 TimerA 不兼容。 此外、该库中实现了 POSIX 线程。 那么、我的问题是、我是否仍然可以继续使用 TimerA 中内置的 CCS 在 Lab20 WIFI 模块中实现、以及是否有其他建议可以使 Timer A 在集成中按预期工作? 最后一个问题是、我的碰撞传感器使用的端口在中断中的优先级低于 TimerA。 那么、您是否有任何想法使我的碰撞传感器的优先级高于 timerA?  

    此致

    最小值

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

    您好、Min、

    我不熟悉您关注的实验。 请包含该实验的链接、以便我了解您要实现的目标。 此外、您是否将 CCS 项目基于 SDK 示例?

    Jesu

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

    你(们)好

    请在此处查找 WiFi 链接。 http://www.ti.com/lit/zip/slac767

    此致

    最小值

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

    您好、Min、

    这似乎类似于网络终端示例。 我不知道您正在关注哪些实验、但可以在我们的 SDK wifi 插件中找到此示例的最新版本。 有一个与 MSP432 + CC3120开箱即用的网络终端示例。 我建议您尝试运行 此插件中的示例

    Jesu

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

    你(们)好  

    请忽略前面提到的内容。 现在你的建议偏离了我希望实现的目标。 这是有关 MSP432SDK 插件的问题。 您是否对 TI-RSLK (机器人系统学习套件)有任何了解? 它使用 MSP432P401R Launchpad 和 CC3120升压。 它具有转速计、碰撞传感器右侧。 很抱歉、我忘记了提到我最初使用  tirslkmaze 项目 来处理我的电机、碰撞传感器和转速计项目。  现在我的问题是在 Wifi 实验20之前、我已经使用 tirslkmaze 项目在碰撞开关和转速计上实现了所有功能。 我现在能够将电机单元集成到 WIFI 模块中、这意味着我能够从云端控制我的机器人并运行电机。  

    但是、当我想改变方向时(例如从前进转向左)、我会遇到问题。 原因是在我之前在 tirslkmaze 项目的 Lab13 Motor (Using Timers)中实现的 Motor_Init()中出现优先级问题具有更高的优先级。 当我在 Lab20中实现了该 Motor_Init()时,我不会持续接收来自云的数据。 如果没有此 Motor_Init()函数,我就能够从云中连续接收数据。

    您可以在以下代码中看到我在 while (1)内实现了 Motor_Init()作为最后一个函数调用(以红色突出显示)。 在这个函数之后、循环被终止并且程序永久停留在那个函数中。 如果在 while (1)之外调用此函数、则无法完全接收来自云的数据。 您能不能就如何在 POSIX 线程中实现此 Motor_Init()提供建议? 或者我看到了实现 TI-RTOS 的 SYS/BIOS 线程。 它具有 Hwi、Swi、任务和后台线程、具有此优先级顺序。 因此、如果您是此领域的专业人士、请提供建议。 谢谢。

    void mainThread (void * args)

    int32_t retc = 0;

    /* Thread vars */
    pthread_t spawn_thread =(pthread_t) NULL;
    pthread_attr_t pAttrs_spawn;
    struct sched_param primParam;

    /*外设参数和句柄*/
    UART_Handle tUartHnstle;

    /*清除 lockUDID */
    memset (&App_CB.lockUID[0]、0x00、sizeof (App_CB.lockUDID));

    /*使用 CC3x20接口初始化 SlNetSock 层*/
    SlNetIf 初始化(0);
    SlNetif_add (SLNETIF_ID_1、"CC3220"、(const SlNetIf Config_t *)&SlNetIfConfigWifi、SLNET_IF_WIFI_PRIO);

    SlNetSock_init (0);
    SlNetUtil_init (0);

    /*用作 GPIO 的 Init 引脚*/
    GPIO_init();
    /* Init SPI、用于 M4和 NWP 之间的通信*/
    spi_init();

    /*配置 UART */
    tUartHalfl = InitTerm ();
    /*从 LPDS 依赖项中删除 UART 接收*/
    UART_CONTROL (tUartHnLD、UART_CMD_RXDISABLE、空);

    /*创建 sl_Task */
    pthread_attr_init (&pAttrs_spawn);
    priParam.sched_priority = sawn_task_priority;
    retc = pthread_attr_setschedparam (&pAttrs_spawn、&priParam);
    retc |= pthread_attr_setstacksize (&pAttrs_spawn、task_stack_size);
    retc |= pthread_attr_setdetachstate (&pAttrs_sprawn、pthread_create_detachstate);

    retc = pthread_create (&spawn_thread、&pAttrs_spawn、sl_Task、NULL);

    如果(retc!= 0)

    UART_PRINT ("无法创建 simplelink 任务\n\r");
    while (1);//插入错误处理

    /*开始允许主机在打印应用程序横幅时读回 MAC 地址*/
    retc = sl_Start (0、0、0);
    如果(retc < 0)

    /*句柄错误*/
    UART_PRINT ("\n sl_Start Failed\n");
    while (1);//插入错误处理

    /*将器件信息输出到 UART 终端*/
    retc = DisplayAppBanner (application_name、application_version);

    retc = sl_Stop (sl_stop_timeout);
    如果(retc < 0)

    /*句柄错误*/
    UART_PRINT ("\n SL_Stop 失败\n");
    while (1);

    App_CB.initState = 0;
    APP_CB.apConnectionState = WiFi_if_Connect ();

    /*主应用程序循环*/
    while (1)

    APP_CB.resetApplication = false;


    执行{
    retc = getWeather();

    MOTOR_Init();//  此电机初始化遇到问题,导致高优先级,调用后一直卡在该位置
    }while (*i ='0'&&*j ='r');


    if (*i ='1'&&*j ='r'){
    Motor_Stop ();
    UART_PRINT ("成功向右移动\n"\});
    Motor_Right (200、2000);

    否则,如果(*i ='2'&&*j ='r'){
    Motor_Stop ();
    UART_PRINT ("左移成功\n"\});
    MOTOR_LEFT (200、2000);

    否则,如果(*i ='3'&&*j ='r'){
    Motor_Stop ();
    UART_PRINT ("成功前进\n"\});
    Motor_Forward (2000.2000);


    此致  

    最小值

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

    您好、Min、

    没问题。 通常、您需要初始化开始中的所有内容、然后设置任务并启动调度程序。 那么、您似乎遇到了调度问题。 您可能有一个具有更高优先级的任务、就像您说过的那样、从不会阻止其他任务运行。 您可以使用 我们的 ROV 查看器来验证这一点。 有一个任务选项卡将告诉您每个任务的状态(例如、被阻止、正在运行...)。 确定该任务后、您应实施某种机制、使其进入睡眠状态、或使 IPC 发出信号以发送任务。

    Jesu

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

    你(们)好

    感谢您的建议。 我将尝试它。 同时、我还有几个问题需要澄清。 POSIX 线程是否用于任务实现? 因为我要实现碰撞传感器和转速计、所以我需要在它上面使用 Hwi 中断线程吗? 还是 Swi 线程? 还是仅任务线程就足以处理和实现实时运行? 我在这里的计划是在从数据库云获取数据时让电机移动、数据库云将在两个单独的任务线程上运行。 转速计和碰撞传感器将被执行为中断。 您是否有任何建议?

    此致

    最小值

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

    您好、Min、

    POSIX 线程基本上是任务。 命名规则因您使用的软件而异。 如果您使用 FreeRTOS、它们将其称为任务-但在表面上是相同的。  

    如果您刚刚开始、我建议您只使用任务来简化。 从调度的角度来看、Hwi 具有比 Swi 更高的优先级、最后是任务、但您仍然可以使所有任务都只处理任务。

    Jesu

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

    你(们)好

    感谢您提供信息。 我现在巧妙地开发了两个线程:一个用于电机、一个用于网络以接收数据。 但是 、我很难一起运行线程。 只有我在电机线程上设置睡眠模式、然后网络线程才能工作。 之后、两个线程在 ROV 中停止运行(被阻止)、空闲函数正在运行。 您之前提到过 IPC。 我是否可以知道该函数是什么以及如何控制它?

    此致

    最小值

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

    您好、Min、

    您可以通过 google 进行进程间通信以了解更多相关信息。 它基本上是一种同步线程的方法、以便为它们分配运行的时间。 要了解详情、您还可以观看 TI-RTOS 技术讲座系列。 特别是第2.9课、它可以帮助您同步线程。

    Jesu

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

    你(们)好

    在从电机中更改引脚后、电机能够与 WIFI 程序集成、从而导致引脚冲突。 但是、它确实具有延迟、并且很难使用睡眠模式的 pthread 实现实时。 我刚才在同一个线程中包含了电机。  

    现在、我面临中断主题的挑战。 我为碰撞传感器创建了一个新的线程。 但按下时无法触发碰撞传感器。 ROV 当前有错误、无法看到。 但有一个提示显示、当碰撞传感器被触发时、WiFi 程序停止运行并永久卡住。 下面的代码显示了我的碰撞开关 Init 和 IRQ 处理程序函数。 那么、您是否有任何建议可以使其正常工作? 在 Lab14 (tirslkmaze 项目)中单独测试时、它可以正常工作。  

    void BumpInt_Init (void){//(*任务)(uint8_t)){
    //将其作为实验14的一部分编写
    P4->SEL0 &=~0xAD;
    P4->SEL1 &=~0xAD;
    P4->DIR &=~0xAD;
    P4->REN |= 0xAD;
    P4->OUT |= 0xAD;
    P4->IES |= 0xAD;
    P4->IFG &=~0xAD;
    P4->IE |= 0xAD;
    NVIC->IP[9]=(NVIC->IP[9]和0xFF00FFFF)|0x00400000;
    NVIC->ISER[1]= 0x00000040;
    //EnableInterrupts ();
    }
    
    
    //读取6个开关的当前状态
    //返回6位正逻辑结果(0至63)
    //位5 Bump5
    //位4 Bump4
    //位3 Bump2
    
    //位1 Bump1
    //位0 Bump0
    
    uint8_t Bump3 (void)
    //将其作为实验14的一部分编写
    //int 读取=&(0xED);
    返回(P4->IN & 0xED);//替换此行
    }
    //我们不关心关键段/竞争条件
    //触控触发,下降沿
    空 Port4_IRQHandler (空){
    //将其作为实验14的一部分编写
    uint8_t status;
    状态= P4->IV;
    //P4->IFG &=~0xED;
    while (1){
    如果(状态= 0x02)
    {
    Motor_Stop ();
    睡眠(2);
    状态= P4->IV;
    }
    如果(状态= 0x06)
    {
    Motor_Stop ();
    睡眠(2);
    状态= P4->IV;
    }
    如果(状态= 0x08)
    {
    Motor_Stop ();
    睡眠(2);
    状态= P4->IV;
    }
    如果(状态= 0x0C)
    {
    Motor_Stop ();
    睡眠(2);
    状态= P4->IV;
    }
    如果(状态= 0x0E)
    {
    Motor_Stop ();
    睡眠(2);
    状态= P4->IV;
    }
    如果(状态= 0x10)
    {
    Motor_Stop ();
    睡眠(2);
    }
    
    }
    

    此致

    最小值

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

    你(们)好

    在本例中、我遇到了很大的问题。 我在实验20 WiFi 程序中简化了程序、没有任何线程、但仍然没有触发停止电机。 我怀疑碰撞传感器处理程序与阻止触发中断功能的实验20 WiFi 程序不兼容。 如以下文件列表中所示、实验14中的 msp432p401r.cmd Bump 传感器中断 与  实验20 WiFi 程序中的 MSP_EXP432P401R_TIRTOS.cmd 不兼容、并在 实验20 WIFI 程序中构建 msp432p401r.cmd 时导致错误。 这些文件与您在下面两个文件的代码中看到的文件不同。  

    是否有解决此问题的建议? 请及时回复、因为我没有时间满足项目的截止日期。 谢谢你。


    //
    *版权所有(c) 2015-2017,Texas Instruments Incorporated
    *保留所有权利。
    *
    *
    只要
    符合以下条件*、允许以源代码和二进制形式重新分发和使用:
    *
    *源代码的重新分发必须保留上述版权
    声明*、此条件列表和以下免责声明。
    *
    ***二进制形式的再发行必须在
    
    *随发行提供的文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。
    *
    ***未经
    
    事先书面许可、不得使用德州仪器公司的名称或*其贡献者的名称认可或推广从本软件衍生的产品*。
    *
    *本软件由版权所有者和贡献者"按原样"提供
    *、
    
    不承担任何明示或暗示的保证、包括但不限于*适销性和特定用途适用性的暗示保证*。 在任何情况下、版权所有者或
    *贡献者都不对任何直接、间接、偶然、特殊、
    *模范、 或相应的损害(包括但不限于
    *采购替代产品或服务;丧失使用、数据或利润;
    *或业务中断)、但出于任何责任理论
    、*无论是在合同中、严格责任还是由于
    使用本软件而以任何方式产生的侵权行为(包括疏忽或*其他)
    、*即使已获悉可能会发生此类损坏。
    //
    /*
    === MSP_EXP432P401R_TIRTOS.cmd ===
    *为 MSP_EXP432P401R M4定义存储器块开始/长度
    */
    
    -stack_size=1024 // C 栈也用于 ISR 堆栈*/
    
    HEAPSIZE = 0x8000;// HeapMem 使用的堆缓冲区大小*/
    
    MEMORY
    {
    主程序 (Rx):origin = 0x00000000、length = 0x00040000
    信息 (Rx):origin = 0x00200000、length = 0x00004000
    别名
    {
    SRAM_CODE (rwx):origin = 0x01000000
    SRAM_DATA (RW):origin = 0x20000000
    } 长度= 0x00010000
    }/*
    
    内存中的段分配*/
    
    段
    {
    .text:> main
    .TI.ramfunc:{}load=main、run=SRAM_code、table (BINIT)
    .const:> main
    .cinit:> main
    .pinit:> main
    init_array:> main
    
    .data :> SRAM_DATA
    .bss:> SRAM_DATA
    .sysmem:> SRAM_DATA
    
    /* HeapMem 使用的堆缓冲区*/
    .priheap:{
    _primary_heap_start__=.;
    。 += HEAPSIZE;
    __primary_heap_end__=.;
    } > SRAM_DATA ALIGN 8
    
    .stack:> SRAM_DATA (高电平)
    }
    
    // RTS 的 WDTCTL 寄存器的符号定义*/
    WDTCTL _sym = 0x4000480C;
    
    
    
    
    
    
    
    /
    *
    *版权所有(C) 2012 - 2017德州仪器(TI)公司- http://www.ti.com/
    *
    
    只要
    符合以下条件*、就允许以源代码和二进制形式重新分发和使用*进行修改或不进行修改:
    *
    *源代码的重新分发必须保留上述版权
    声明*、此条件列表和以下免责声明。
    *
    *二进制形式的再发行必须在
    
    *
    发行版随附的*文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。
    *
    *未经
    
    事先书面许可、不得使用德州仪器公司的名称或*其贡献者的名称认可或推广从本软件派生的产品*。
    *
    *本软件由版权所有者和贡献者
    *按原样"提供、
    
    且不承认任何明示或暗示的保证、包括但不限于*特定用途*的适销性和适用性的暗示保证。 在任何情况下、版权
    *所有者或贡献者都不对任何直接、间接、偶然、
    *特殊、模范、 或相应的损害(包括但不
    限于*采购替代产品或服务;丧失使用、
    *数据或利润; 或业务中断)、但出于
    任何*责任理论、无论是合同、严格责任还是侵权
    行为*(包括疏忽或其他原因)、即使
    被告知可能会造成此类损坏、也是出于此类责任理论。
    *
    *德州仪器 MSP432P401R 的默认链接器命令文件
    *
    *文件创建日期:2017年4月18日
    *
    ********* /
    
    --retain=闪存邮箱
    
    内存
    {
    主程序 (Rx):origin = 0x00000000、length = 0x00040000
    信息 (Rx):origin = 0x00200000、length = 0x00004000
    #ifdef __TI_Compiler_version__
    #if __TI_Compiler_version__>=15009000
    别名
    {
    SRAM_CODE (rwx):origin = 0x01000000
    SRAM_DATA (RW):origin = 0x20000000
    } 长度= 0x00010000
    #else
    /*提示:如果用户想要使用 RAM 函数、请观察 SRAM_CODE *
    /*和 SRAM_DATA 内存区域重叠。 您需要采取措施进行分离 *
    /*来自 RAM 中代码的数据。 这仅对早于15.09.0.STS.*/的编译器版本有效
    SRAM_CODE (rwx):origin = 0x01000000、length = 0x00010000
    SRAM_DATA (RW):origin = 0x20000000,length = 0x00010000
    #endif
    #endif
    }
    
    //以下命令行选项作为 CCS 工程的一部分进行设置。 */
    /*如果您使用命令行进行构建,或者出于某种原因想要在
    此处定义*/*,则可以根据需要取消注释并修改这些行。 */
    /*如果您使用 CCS 进行编译、最好
    在 CCS 工程中进行任何此类*///*修改并将此文件单独保留。 */
    * //
    //*当您计划使用 printf()*/
    //*对控制台窗口的调试输出进行调试时,建议堆大小为1024字节。 */
    * //
    /*--heap_size=1024 */
    *--stack_size=512 /*
    --library=rtsv7M4_T_le_eabi.lib
    
    内存中的*//*段分配*/
    
    段
    {
    .intvecs:> 0x00000000
    .text:> main
    .const:> main
    .cinit:> main
    .pinit:> main
    init_array: >主菜单
    二进制文件 :{}>主页
    
    /*以下部分显示了信息闪存的使用情况 *
    /*信息闪存用于以下用途 *
    /*器件特定用途: *
    用于器件安全操作的/*闪存邮箱 *
    .flashMailbox:> 0x00200000
    /*用于器件识别和特性描述的 TLV 表 *
    tlvTable :>0x00201000
    针对器件引导加载程序的/* BSL 区域 *
    bslArea :>0x00202000
    
    .vtable:>0x20000000
    .data :> SRAM_DATA
    .bss:> SRAM_DATA
    .sysmem:> SRAM_DATA
    .stack:> SRAM_DATA (高电平)
    
    #ifdef __TI_Compiler_version__
    #if __TI_Compiler_version__>=15009000
    .TI.ramfunc:{} load=main,run=SRAM_CODE,table (BINIT)
    #endif
    #endif
    }
    
    // RTS 的 WDTCTL 寄存器的符号定义*/
    WDTCTL _sym = 0x4000480C;
    
    

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

    您好、Min、

    遗憾的是、我没有能力调试您的代码。 我可以指出的一点是、如果 PORT4_IRQHandler 是您的 ISR、则其中不应包含 while 循环和睡眠函数。 ISR 应快速输入和输出。 在 ISR 中休眠可能会导致大型调度失败、并且 ISR 运行时间过长可能会导致您错过中断。 如果您想了解有关中断例程的更多信息、请在 google 上搜索。 若要修复您的 cmd 文件、只需使用 工程随附的一个文件、并修改应用程序代码以满足您的任何需求。

    Jesu

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

    你(们)好

    当我尝试与实验20 Wifi 集成时、我包含了睡眠模块、以便更长时间地停止电机以进行调试。 我很了解 ISR。 只是我实现的它位于 pthread 内部。 我的原始程序没有前面提到的程序、并且正在运行。 我刚刚尝试通过实验20传输工作中的 cmd 文件。 错误如图所示。 有什么想法吗? 或者、您是否能够将此问题传达给具有良好专业知识的人员?  

    此致

    最小值

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

    您好、Min、

    您的代码大小可能会超过器件内存。 您是否可能包含太多其他文件?

    我同意 Jesu 的观点、您应该从基本 SimpleLink SDK 项目开始、并通过从 Wi-Fi、Wi-Fi +电机、Wi-Fi +电机+开关开始的每个子模块构建系统、并确保您的引脚没有冲突。 您可以在 CC3120BOOST 和 MSP-EXP432P401R 用户指南中找到引脚分配