📄 flashat91sam7a1_ek.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 + -