打印

PMM_unlockLPM5(); 函数会跑死,程序跑飞。

[复制链接]
2442|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
baici513|  楼主 | 2016-7-24 16:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
芯片:msp430FR5849
仿真器:TI 5969开发板 SBW
UART芯片: PL2303
开发环境:IAR 6.4
现象:  MSP430每次都能进入下载仿真,但会经常出现以下问题:
        1)  初始换GPIO,调用“PMM_unlockLPM5()”会仿真跑死,特别是初始化GPIO为中断输入的时候(port1、port2);
        2) 仿真的时候,程序不能跑动到断点,会经常性跑飞;
      


求各位大神指点一二,小弟不胜感激。

相关帖子

沙发
baici513|  楼主 | 2016-7-24 17:03 | 只看该作者
GPIO初始化代码如下 :


    /*******************************/

    GPIO_setAsOutputPin(GPIO_PORT_P1,GPIO_PIN7);
    GPIO_setOutputHighOnPin(GPIO_PORT_P1, GPIO_PIN7);
//    GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN7);

    //
    GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1, GPIO_PIN0);
    PMM_unlockLPM5();

    //SPI
    GPIO_setAsOutputPin(GPIO_PORT_P3,GPIO_PIN0 + GPIO_PIN2 +GPIO_PIN3);
    GPIO_setAsInputPin(GPIO_PORT_P3,GPIO_PIN1);
    GPIO_setOutputHighOnPin(GPIO_PORT_P3, GPIO_PIN0 + GPIO_PIN2 +GPIO_PIN3);
    PMM_unlockLPM5();


    GPIO_setAsOutputPin(GPIO_PORT_P4,GPIO_PIN4);
    GPIO_setOutputHighOnPin(GPIO_PORT_P4, GPIO_PIN4);
    PMM_unlockLPM5();
   
    //SPI
    GPIO_setAsOutputPin(GPIO_PORT_P3, GPIO_PIN4 + GPIO_PIN5 + GPIO_PIN6 + GPIO_PIN7);
    GPIO_setOutputHighOnPin(GPIO_PORT_P3, GPIO_PIN4 + GPIO_PIN5 + GPIO_PIN6 + GPIO_PIN7);
   
    GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN6);
    GPIO_setOutputHighOnPin(GPIO_PORT_P1, GPIO_PIN6);   
    PMM_unlockLPM5();

    /*********************************/

    GPIO_setAsOutputPin(GPIO_PORT_P2,GPIO_PIN3);
    GPIO_setOutputHighOnPin(GPIO_PORT_P2, GPIO_PIN3);
//    GPIO_setOutputLowOnPin(GPIO_PORT_P2, GPIO_PIN3);
    PMM_unlockLPM5();


    Gpio_IrqInit(GPIO_PORT_P2, GPIO_PIN7, GPIO_HIGH_TO_LOW_TRANSITION);

//    Gpio_IrqInit(GPIO_PORT_P1, GPIO_PIN0, GPIO_HIGH_TO_LOW_TRANSITION);



    Gpio_IrqInit(GPIO_PORT_P1, GPIO_PIN1 + GPIO_PIN2, GPIO_HIGH_TO_LOW_TRANSITION);
    Gpio_IrqInit(GPIO_PORT_P1, GPIO_PIN2, GPIO_HIGH_TO_LOW_TRANSITION);

使用特权

评论回复
板凳
baici513|  楼主 | 2016-7-24 17:15 | 只看该作者
补充下IO中断初始化函数,刚刚搞掉了

/*GPIO中断初始化*/
static void Gpio_IrqInit(uint8_t selectedPort,uint16_t selectedPins,uint8_t edgeSelect)
{

       //Enable Px.x internal resistance as pull-Up resistance
        GPIO_setAsInputPinWithPullUpresistor(
                selectedPort,
                selectedPins
                );

        //Px.x interrupt enabled
        GPIO_enableInterrupt(
                selectedPort,
                selectedPins
                );

        //Px.x Hi/Lo edge
        GPIO_interruptEdgeSelect(
                selectedPort,
                selectedPins,
                edgeSelect
                );


        //P1.4 IFG cleared
        GPIO_clearInterruptFlag(
                selectedPort,
                selectedPins
                );
        /*
         * Disable the GPIO power-on default high-impedance mode to activate
         * previously configured port settings
         */
        PMM_unlockLPM5();               
}

使用特权

评论回复
地板
youtome| | 2016-7-24 22:36 | 只看该作者
怎么不使用看门狗。

使用特权

评论回复
5
youtome| | 2016-7-24 22:39 | 只看该作者
程序跑飞肯能是内部的空间太大了。

使用特权

评论回复
6
baici513|  楼主 | 2016-7-25 13:53 | 只看该作者
youtome 发表于 2016-7-24 22:36
怎么不使用看门狗。

程序还在调试阶段啊 ,肯定不适用看门狗啊

使用特权

评论回复
7
baici513|  楼主 | 2016-7-25 13:54 | 只看该作者
youtome 发表于 2016-7-24 22:39
程序跑飞肯能是内部的空间太大了。

能说得具体点么?  不太明白

使用特权

评论回复
8
lihuami| | 2016-7-25 22:21 | 只看该作者
初始换GPIO?程序就跑飞?

使用特权

评论回复
9
lihuami| | 2016-7-25 22:23 | 只看该作者
你试试自己配置寄存器。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

10

帖子

1

粉丝