TI中文支持网
TI专业的中文技术问题搜集分享网站

CC1310 位操作HWREGBITW,进入busFault_handler

各位,求助一下!

运行环境 iar8.11.2,自己写的简单裸跑测试IO的代码, 刚进入debug时,使用GPIO_setOutputEnableDio( IOID_7, GPIO_OUTPUT_ENABLE  );里面有调HWREGBITW,位操作,停住后,发现进入busFault_handler错误,点击reset按钮后,继续点运行,代码运行正常。停止时可以查看0x40022000
用studio烧录也功能不正常,应该也进busFault_handler。

代码如下:

#include <stdint.h>
#include <ti/devices/cc13x0/driverlib/aon_ioc.h>
#include <ti/devices/cc13x0/driverlib/ioc.h>
#include <ti/devices/cc13x0/driverlib/gpio.h>
#include <ti/devices/cc13x0/driverlib/watchdog.h>
#include <ti/devices/cc13x0/driverlib/prcm.h>
/*
通过硬件测试
*/
void delayms(uint32_t ms)
{
  uint32_t units;  for(;ms != 0;ms–)
  {
      for(units = 9695;units != 0;units–);
  }
}

int main(void)
{
    // uint16_t i ;
#if     1
  PRCMLoadSet();
   PRCMPowerDomainOn(PRCM_DOMAIN_PERIPH|PRCM_DOMAIN_TIMER);
  PRCMPeripheralRunEnable(PRCM_PERIPH_GPIO);

  GPIO_setOutputEnableDio( IOID_7, GPIO_OUTPUT_ENABLE  );
   IOCPortConfigureSet(IOID_7, IOC_PORT_GPIO,
                    IOC_STD_OUTPUT);
 // for(i = 0;i < 1000;i++)
  while(1)
  {
    GPIO_toggleDio(IOID_7);
    delayms(500);
  }
#endif
 // while(1);
 }

lynnyang:

补充一下:

// Bit-band access to address x bit number b using word access (32 bit)#define HWREGBITW(x, b)                                                       \        HWREG(((unsigned long)(x) & 0xF0000000) | 0x02000000 |                \              (((unsigned long)(x) & 0x000FFFFF) << 5) | ((b) << 2))

__STATIC_INLINE voidGPIO_setOutputEnableDio( uint32_t dioNumber, uint32_t outputEnableValue ){    // Check the arguments.    ASSERT( dioNumberLegal( dioNumber ));    ASSERT(( outputEnableValue == GPIO_OUTPUT_DISABLE ) ||           ( outputEnableValue == GPIO_OUTPUT_ENABLE  )    );    // Update the output enable bit for the specified DIO.    HWREGBITW( GPIO_BASE + GPIO_O_DOE31_0, dioNumber ) = outputEnableValue;      }

请问我改如何操作才不会busFault_handler,还有为啥我按reset复位cpu,功能又正常了,不会再busFault_handler

xian sheng li:

我也遇到了相同的问题,你的问题解决了吗?我的是在程序里打个断点,在全速运行就能正常运行了。

赞(0)
未经允许不得转载:TI中文支持网 » CC1310 位操作HWREGBITW,进入busFault_handler
分享到: 更多 (0)