main.c

来自「基于dragon_MX1_ads的装载启动代码armboot」· C语言 代码 · 共 57 行

C
57
字号
#include "../../Include/type.h"
#include "AM29PDL127H_x16x2.c"

#define UART1_BASE      0x00206000
#define UART2_BASE      0x00207000

#define _reg_URXD       (*((volatile U32 *)(gUartBase+0x00)))
#define _reg_UTXD       (*((volatile U32 *)(gUartBase+0x40)))
#define _reg_USR2       (*((volatile U32 *)(gUartBase+0x98)))
    
#define ADET_MASK   0x8000  // auto-baud detection 
#define TXFE_MASK   0x4000  // Tx buffer empty
#define RDR_MASK    0x0001  // receive data ready

int main(void)
{
  S32 fd;

  U32 SourceAddress    = 0x0A000000;
  U32 TargetAddress    = 0x10000000;
  U32 ByteSize         = 0x00010000;

  U32 FlashBaseAddress = 0x10000000;
  U32 Offset = TargetAddress - FlashBaseAddress;

  EUARTputString((U8 *)"Press any key to start programming ...");

  fd=FlashOpen(&AM29PDL127H_x16x2, FlashBaseAddress);

  EUARTputString((U8 *)"\nProgramming ...");
  if(FlashProgram(fd, SourceAddress, Offset, ByteSize))
  {
      EUARTputString((U8 *)"\nProgram Error\n");
  }
  else
  {
      EUARTputString((U8 *)"\nProgram Completed\n");
  }

  EUARTputString((U8 *)"\nVerifying ...");
  if(FlashVerify(fd, SourceAddress, Offset, ByteSize))
  {
      EUARTputString((U8 *)"\n*** Verify FAIL ***\n");
  }
  else
  {
      EUARTputString((U8 *)"\n*** Verify OK ***\n");
  }
  FlashClose(fd);

  EUARTputString((U8 *)"\n\rProgramming finished.\n\rPress 'a' to continue ....");

  JumpToAddr(0);    // go back to boot-strap
  
  return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?