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

MSP430F2132 通过串口实现自定义升级:txt解析问题

大家好,用串口实现在线升级:

工程环境是CCS.

FLASH空间分配:

APP   :0xE000 –0XEFFF //这么小,主要是因为我没看到2132 flash 到底有多大,知道的同学请告诉我,在哪看的,另外RAM多大也顺便告诉我吧

BOOT:0xF000 — 0xFFFF //

BOOT 程序主体:  //网上借鉴的别人的,可是我不清楚理论上应该是怎样解析txt,并烧录到具体的flash空间上,麻烦大神们帮忙解释解释,多谢

  init_uart();                                // 初始化串口
  EraseFlash(0);//擦除应用程序Flash区
 // uart_send("Update Ready !");               // 发送确认
/* 下面一段函数为串口数据接收和处理程序 */
  while(1)
  {
    if(IFG2 & UCA0RXIFG)//if(UCA0IFG & UCRXIFG)   //while (!(IFG2&UCA0TXIFG));
    {
      RxTemp=UCA0RXBUF;
#if 1
   //***********for test ********************
      if(RxTemp=='@')
      {
       P2OUT ^= BIT0; //LED
      }
   //*******************************************
#endif
      RecBuf[RecCnt++]=RxTemp;
    if(RxTemp==0x0A && RecCnt>0 )   //有收到串口数据
 {
    if(RecBuf[0]=='q') //quit
   {
    //_NOP();
    //return;
       asm(" mov &0xEFFE, PC;");  //检测到 ‘q’,接收完毕
    }
  else if(RecBuf[0]=='@') //address
    {
  P2OUT &= ~BIT0; //LED
     i=1;
     Addr=0;
     while(1)
       {
  if(RecBuf[i]<'0')
    break;
  Addr<<=4;
  Addr+=AsciiToHex(RecBuf[i]);
  i++;
       }
  //set address here
     }
   else //number
     {
      RecTemp=0;
      j=0;
      for(i=0; i<400; i++)
       {
  if(RecBuf[i]<'0')
    {
      if(RecBuf[i]==0x0A)
        { break;}
      if(NumberFlag)
        {  NumberFlag=0;
         WriterBuf[j++]=RecTemp;
         }
    }
         else if(RecBuf[i]>='0')
    {
      RecTemp <<= 4;
      RecTemp += AsciiToHex(RecBuf[i]);
      NumberFlag=1;
           }
        }
     if(j>0)
       {
  //write data
  WriteFlash(Addr,WriterBuf,j);
  Addr += j;
  j=0;
        }
     NumberFlag=0;
     }
  RecCnt=0;
  RxTemp=0;
 }
      if(RecCnt>400) {
         
       P2OUT &= ~BIT2;       //错误指示
 }
    }
  }
}

wenzhong lin:

比如有个APP代码是这样的:

@e000B2 40 80 5A 20 01 F2 40 11 00 2A 00 D2 C3 29 00 F2 F0 EF 00 29 00 0C 43 30 41 31 40 00 04 B0 12 3A E0 0C 43 B0 12 00 E0 B0 12 34 E0 32 D0 10 00 FD 3F 03 43 03 43 FF 3F 03 43 1C 43 30 41 @ffdeFF FF @ffe42C E0 2C E0 @ffea2C E0 2C E0 2C E0 2C E0 2C E0 2C E0 2C E0 2C E0 2C E0 2C E0 1A E0 q

具体要怎么操作,帮忙说说,谢谢

赞(0)
未经允许不得转载:TI中文支持网 » MSP430F2132 通过串口实现自定义升级:txt解析问题
分享到: 更多 (0)