23589|1

121

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

LPC1768 UCOSII 移植到IAR8.3环境下,编译没有问题,运行卡死到创建第一个任务函数... [复制链接]

之前程序是在KEIL5环境下的,运行没有问题;
现在改到IAR8.30环境,配置后编译,有3个告警,如下标黑;
Warning[Pa082]: undefined behavior: the order of volatile accesses is undefined in this statement

因为这个是变量相关的,没有处理


//system_LPC17xx.c文件

void SystemCoreClockUpdate (void)            /* Get Core Clock Frequency      */
{
  /* Determine clock frequency according to clock register values             */
  if (((LPC_SC->PLL0STAT >> 24) & 3) == 3) { /* If PLL0 enabled and connected */
    switch (LPC_SC->CLKSRCSEL & 0x03) {
      case 0:                                /* Int. RC oscillator => PLL0    */
      case 3:                                /* Reserved, default to Int. RC  */
        SystemCoreClock = (IRC_OSC *
                          ((2 * ((LPC_SC->PLL0STAT & 0x7FFF) + 1)))  /
                          (((LPC_SC->PLL0STAT >> 16) & 0xFF) + 1)    /
                          ((LPC_SC->CCLKCFG & 0xFF)+ 1));
        break;
      case 1:                                /* Main oscillator => PLL0       */
        SystemCoreClock = (OSC_CLK *
                          ((2 * ((LPC_SC->PLL0STAT & 0x7FFF) + 1)))  /
                          (((LPC_SC->PLL0STAT >> 16) & 0xFF) + 1)    /
                          ((LPC_SC->CCLKCFG & 0xFF)+ 1));
        break;
      case 2:                                /* RTC oscillator => PLL0        */
       SystemCoreClock = (RTC_CLK *
                          ((2 * ((LPC_SC->PLL0STAT & 0x7FFF) + 1)))  /
                          (((LPC_SC->PLL0STAT >> 16) & 0xFF) + 1)    /
                          ((LPC_SC->CCLKCFG & 0xFF)+ 1));
        break;
    }
  } else {
    switch (LPC_SC->CLKSRCSEL & 0x03) {
      case 0:                                /* Int. RC oscillator => PLL0    */
      case 3:                                /* Reserved, default to Int. RC  */
        SystemCoreClock = IRC_OSC / ((LPC_SC->CCLKCFG & 0xFF)+ 1);
        break;
      case 1:                                /* Main oscillator => PLL0       */
        SystemCoreClock = OSC_CLK / ((LPC_SC->CCLKCFG & 0xFF)+ 1);
        break;
      case 2:                                /* RTC oscillator => PLL0        */
        SystemCoreClock = RTC_CLK / ((LPC_SC->CCLKCFG & 0xFF)+ 1);
        break;
    }
  }


//----------------------------------------------------------------------------------
下载运行后,前边初始化时没有问题的,每次运行到下边标黑处就卡死了
int main(void)
{
         BSP_Init ();
         BSP_Start ();
         OSInit();
        
         Timer0_Init();

        
         OSTaskCreate(LEDON, (void *)0, &stkLEDON[sizeof(stkLEDON)/4-1], 5);
         OSTaskCreate(LEDOFF, (void *)0, &stkLEDOFF[sizeof(stkLEDOFF)/4-1], 4);

         OSStart();

}


卡死到下边标黑处
//startup_LPC177x_8x.s文件
        PUBWEAK HardFault_Handler
        SECTION .text:CODE:NOROOT:REORDER(1)
HardFault_Handler
        B HardFault_Handle

有如下提示:
Fri Dec 28, 2018 17:15:45:    A precise data access error has occurred (CFSR.PRECISERR, BFAR) at data address 0x40034000.

最新回复

yet
变量设置有问题啊  详情 回复 发表于 2019-1-8 10:12
点赞 关注

回复
举报

224

帖子

0

TA的资源

一粒金砂(高级)

沙发
 
变量设置有问题啊
 
个人签名爱好拍砖打假
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表