⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flashat91sam7a1_ek.mac

📁 很好的资料
💻 MAC
字号:
// This file will set up the external flash and RAM.
// Clocks are also initialized.
// The AT91 CPU is auto-detected.
//
//  $Revision: 1.1 $


InitAT91SAM7A1_EK()
{
__var __mac_A1_EK;
  __message "InitAT91SAM7A1_EK()\n";

 //*  Get the Chip ID (AT91C_SFM_CIDR & AT91C_SFM_EXID
    __mac_A1_EK =__readMemory32(0xFFF00000,"Memory");
    __message " ---------------------------------------- Chip ID   0x",__mac_A1_EK:%X;
    __mac_A1_EK =__readMemory32(0xFFF00004,"Memory");
    __message " ---------------------------------------- Extention 0x",__mac_A1_EK:%X;
    __mac_A1_EK =__readMemory32(0xFFF00008,"Memory");
    __message " ---------------------------------------- Reset Status 0x",__mac_A1_EK:%X;
}
//-----------------------------------------------------------------------------
// Set the AMC Controller
//-------------------------------
InitAT91EBxx_AMC()
{
 __var __mac_A1_EK;

// AMC_CSR_0  0x400030A9     FLASH : Base Address = 0x40000000
/* CS Enable, Byte Select access, 0 tdf, 4MB, 3 waitstates, 16 bits */
      __writeMemory32(0x400030A9,0xFFE00000,"Memory");

//  AMC_CSR_1  0x48003081    /* RAM  : Base Address = 0x48000000 */
/*  CS Enable, Byte Select access, 0 tdf, 4MB, 0 waitstates, 16 bits  */
      __writeMemory32(0x48003081,0xFFE00004,"Memory");

// MCR_VAL    0x00000017    /* Memory Control Register Value Early Read Protocol, All chip selects valid */
      __writeMemory32(0x00000017,0xFFE00024,"Memory");

      __message "------------------------------- AMC  ---------------------------------------------------";

      __mac_A1_EK =__readMemory32(0xFFE00020,"Memory");

 if (__mac_A1_EK == 0x01)
 {
      __message "------------------------------- The Remap is done ----------------------------------------";
      //* Toggel RESET The remap

 } else {
      __message "------------------------------- The Remap is NOT -----------------------------------------";
      __writeMemory32(0x00000001,0xFFE00020,"Memory");
 }

      __message "-------------------------------Set PC Reset ----------------------------------";
      __writeMemory32(0x48000000,0xB4,"Register");

}


//-----------------------------------------------------------------------------
// Set up
//-------------------------------
setup()
{
  __var __chip_id;

  __message "Prepare hardware for Flashloader\n";

  // Read chip ID from SF_CIDR.
  __chip_id = __readMemory32(0xfff00000, "Memory");
  __message " ---------------------------------------- Chip ID   0x",__chip_id:%X;

  // Check for AT91M40800, AT91R40807, AT91M40807, AT91R40008.
  if (__chip_id == 0x14080044 || __chip_id == 0x44080746 || __chip_id == 0x14080745 || __chip_id == 0x44000840 )
  {
      __message "-------------------------------BAD Chip ID  ----------------------------------";
  }

  // Check AT91SAM7A1-EK
  if (__chip_id ==  0x80000300 )
  {
    InitAT91EBxx_AMC();
    InitAT91SAM7A1_EK();
    __writeMemory32(0xE3A0F448,0x00000000,"Memory");
    __writeMemory32(0x0,0x00,"Register");

 }


}
execUserFlashInit()
{
    __emulatorSpeed(30000);
    __writeMemory32(0xD3,0x98,"Register");
    __writeMemory32(0xD3,0x94,"Register");
    __message " ---------------------------------------- FLASH Download V1.1";
    setup();
    __emulatorSpeed(0);
}

execUserReset()
{
__message "------------------------------- Flash execUserReset";
}

execUserPreload()
{
__message "------------------------------- Flash execUserPreload";
}

⌨️ 快捷键说明

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