📄 dm270.gel
字号:
/* GEL file for DM270 EVM */
/* ARM initialization */
#define REG *(unsigned short*)
#define ARM_MXI 27000000
/*Clock Controllor */
#define PLLA 0x30880
#define PLLB 0x30882
#define CLKC 0x30884
#define SEL 0x30886
#define DIV 0x30888
#define BYP 0x3088A
#define MOD0 0x30890
#define MOD1 0x30892
#define MOD2 0x30894
/* SDRAM Controllor */
#define SDMODE 0x309A6
#define REFCTL 0x309A8
/* External Memory Interface */
#define DPSTR0 0x30A4A //FLASH end address in units of 1 MB
#define DPSTR1 0x30A4C //SDRAM end address in units of 1 MB
#define DPSTR2 0x30A4E //CF end address in units of 1 MB
#define DPSTR3 0x30A50
#define DPSTR4 0x30A52
#define DPSTR5 0x30A54
/* SAMSUNG K4S281632e setting */
#define TRDL 1
#define SDRAM_BIT_WD 0 // 32-bit SDRAM
#define CAS_LAT 1 // cas latency 2:2 cycle, 1:1 cycle
#define BANK_NUM 1 // back number 0:2 bank, 1:4 bank
#define MEM_TYPE 2 // memory type 0:2k*256, 1:4k*256,
// 2:4K*512, 3:8k*512
#define REF_EN 1 // refresh enable 0:disable, 1:enable
#define REF_CYCLE 0x40 // refresh cycle (REFNUM)
#define DMA_SELECT1 0 // External Memory I/F <-> SDRAM
#define DMA_SELECT2 4 // Serial I/F <-> SDRAM
#define MRS 0x01 // mode register set
#define PREA 0x02 // precharge all
#define REF 0x04 // auto refresh
SDRAMCInit()
{
unsigned short nMode;
unsigned short refctl_value;
int i;
// set SDRAM mode
nMode = (TRDL << 15) | (SDRAM_BIT_WD << 14) | (CAS_LAT << 10) | (BANK_NUM << 12) | (MEM_TYPE << 8);
refctl_value = (DMA_SELECT1 << 13) | (DMA_SELECT2 << 10) | (REF_EN << 8) | (REF_CYCLE) ;
REG SDMODE = nMode;
REG REFCTL = refctl_value ;
REG SDMODE = nMode | PREA; // precharge
for (i = 0; i < 8; i++)
{
REG SDMODE = nMode | REF; // auto refresh 8 times
}
REG SDMODE = nMode | MRS; // mode register set
REG SDMODE = (nMode &= ~0xbf);
}
EMIFInit()
{
/* make sure the following addresses do not overlap */
#define EMIF0_END_ADDRESS 0x09 // in 1MB unit
#define EMIF_SDRAM_END_ADDRESS 0x49
#define EMIF1_END_ADDRESS 0x61
#define EMIF2_END_ADDRESS 0x79
#define EMIF3_END_ADDRESS 0x91
#define EMIF4_END_ADDRESS 0xa9
//memory map
REG DPSTR0 = EMIF0_END_ADDRESS;
REG DPSTR1 = EMIF_SDRAM_END_ADDRESS;
REG DPSTR2 = EMIF1_END_ADDRESS;
REG DPSTR3 = EMIF2_END_ADDRESS;
}
CLOCKCInit()
{
unsigned long buf0, buf1;
#define PLLA_PMA_DIV 9 //PLLAOUT = 27 * PLLA_PMA_DIV / PLLA_PNA_DIV
#define PLLA_PNA_DIV 1 // = 27 * 9 / 1 = 243 MHz
#define PLLB_PMA_DIV 15 //PLLBOUT = 27 * PLLB_PMA_DIV / PLLB_PNA_DIV
#define PLLB_PNA_DIV 2 // = 27 * 9 / 1 = 243 MHz
#define ARM_CLK_DIV 2 //ARM_CLK = PLLA(B)OUT / ARM_CLK_DIV
// = 243 / 4 = 60.75 MHz
#define DSP_CLK_DIV 2 //DSP_CLK = PLLA(B)OUT / DSP_CLK_DIV
// = 243 / 3 = 81 MHz
#define SDR_CLK_DIV 2 //SDR_CLK = PLLA(B)OUT / SDR_CLK_DIV
// = 243 / 3 = 81 MHz
#define AXL_CLK_DIV 1 //AXL_CLK = PLLA(B)OUT / AXL_CLK_DIV
// = 243 / 3 = 81 MHz
#define CLK_SEL 0x1001 //AXL = A , SDR = B , DSP = A , ARM = A
#define PLLA_OUT_DIV ((PLLA_PMA_DIV - 1) << 4) | (PLLA_PNA_DIV - 1)
#define PLLB_OUT_DIV ((PLLB_PMA_DIV - 1) << 4) | (PLLB_PNA_DIV - 1)
#define DIV_VALUE (ARM_CLK_DIV - 1) | ((DSP_CLK_DIV - 1) << 4) | ((SDR_CLK_DIV - 1) << 8) | ((AXL_CLK_DIV - 1) << 12)
/**************/
/* PLL BYPASS */
/**************/
REG BYP = 0x1111; // Bypass Enable
/***********************/
/* Select Source Clock */
/***********************/
REG CLKC = 0x23e8;
/**********************************/
/* Set PLL A & B */
/**********************************/
REG PLLA = PLLA_OUT_DIV;
REG PLLB = PLLB_OUT_DIV;
REG SEL = CLK_SEL;
/*********************/
/* Set PLL DIV Value */
/*********************/
REG DIV = DIV_VALUE;
/****************************************/
/* Lock Monitor for PLLA, PLLB and PLLC */
/****************************************/
do {
buf0 = REG PLLA & 0x8000; // Lock Monitor for PLLA
buf1 = REG PLLB & 0x8000; // Lock Monitor for PLLB
} while(!buf0 || !buf1); // If ALL PLL's Lock ON then pass.
/**************/
/* PLL BYPASS */
/**************/
REG BYP = 0x0000; // Bypass Disable
/*******************************/
/* All peripheral Clock Enable */
/*******************************/
REG CLKC = 0x23e8;
REG MOD0 = 0xffff;
REG MOD1 = 0xffff;
REG MOD2 = 0xffff;
}
menuitem "EVM Reset"
hotmenu Reset_Restart(){
// GEL_Reset();
GEL_Restart();
}
menuitem "Init DM270 EVM"
Init_MemoryMap() {
#define FLASH_BASE 0x0100000
#define FLASH_SIZE 0x0400000 /*4M Byte*/
#define SDRAM_BASE 0x0900000
#define SDRAM_SIZE 0x4000000 /*32M Byte*/
#define CF_BASE 0x4900000
#define CF_SIZE 0x1800000
GEL_TextOut("Initializing Memory Map for Dm270 EVM, ");
GEL_TextOut("Wait ... ");
GEL_MapOn();
GEL_MapReset();
GEL_MapAddStr(0x0 , 0, 0x4 , "ROM" , 0); // Reset vector ROM
GEL_MapAddStr(0x4 , 0, 0x8000 , "RAM" , 0); // ARM Internal RAM
GEL_MapAddStr(0x30000 , 0, 0x1000 , "RAM|AS2", 0); // Internal peripherals
GEL_MapAddStr(0x40000 , 0, 0x10000 , "RAM|AS2", 0); // DSP memmory
GEL_MapAddStr(FLASH_BASE , 0, FLASH_SIZE, "RAM" , 0); // EMIF / SDRAM
GEL_MapAddStr(SDRAM_BASE , 0, SDRAM_SIZE, "RAM" , 0); // EMIF / SDRAM
GEL_MapAddStr(CF_BASE , 0, CF_SIZE, "RAM" , 0 );
GEL_TextOut("Done.\n");
}
hotmenu Init_Registers()
{
/* Set Memory Map for DSC25 EVM */
Init_MemoryMap();
CLOCKCInit();
EMIFInit();
SDRAMCInit();
GEL_TextOut("Initializing DM270 EVM Registers, ");
GEL_TextOut("Wait ... ");
GEL_TextOut("Done.\n\n");
}
hotmenu Init_mem()
{
Init_MemoryMap();
}
StartUp() {
// GEL_Reset();
// Init_Registers();
}
menuitem "Open"
hotmenu open_API()
{
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\API\\api.pjt");
}
hotmenu open_Codec()
{
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SOURCECODE\\Codec\\codec.pjt");
}
hotmenu open_Driver()
{
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\Driver\\Driver.pjt");
}
hotmenu open_GUI()
{
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SOURCECODE\\GUI\\gui.pjt");
}
hotmenu open_IDE()
{
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\PrFile\\ESP\\ide_drv\\ide_drv.pjt");
}
hotmenu open_Kernel()
{
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\PrKernel\\kernel.pjt");
}
hotmenu open_Menu()
{
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SOURCECODE\\MNU\\mnu.pjt");
}
hotmenu open_PrFile()
{
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\PrFile\\PrFile.pjt");
}
hotmenu open_SD()
{
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\PrFile\\ESP\\sd_drv\\sd_drv.pjt");
}
hotmenu open_System()
{
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\User\\System.pjt");
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\User\\System_Upgrader.pjt");
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\User\\System_Sdram.pjt");
}
hotmenu open_All()
{
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\API\\api.pjt");
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SOURCECODE\\Codec\\codec.pjt");
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\Driver\\Driver.pjt");
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SOURCECODE\\GUI\\gui.pjt");
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\PrFile\\ESP\\ide_drv\\ide_drv.pjt");
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\PrKernel\\kernel.pjt");
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SOURCECODE\\MNU\\mnu.pjt");
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\PrFile\\PrFile.pjt");
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\PrFile\\ESP\\sd_drv\\sd_drv.pjt");
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\User\\System.pjt");
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\User\\System_Upgrader.pjt");
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\User\\System_Sdram.pjt");
GEL_ProjectSetActive("D:\\Ferrari\\CMJ200\\SourceCode\\User\\System_Sdram.pjt");
}
menuitem "Close"
hotmenu close_API()
{
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\API\\api.pjt");
}
hotmenu close_Codec()
{
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SOURCECODE\\Codec\\codec.pjt");
}
hotmenu close_Driver()
{
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\Driver\\Driver.pjt");
}
hotmenu close_GUI()
{
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SOURCECODE\\GUI\\gui.pjt");
}
hotmenu close_IDE_Driver()
{
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\PrFile\\ESP\\ide_drv\\ide_drv.pjt");
}
hotmenu close_Kernel()
{
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\PrKernel\\kernel.pjt");
}
hotmenu close_Menu()
{
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SOURCECODE\\MNU\\mnu.pjt");
}
hotmenu close_PrFile()
{
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\PrFile\\PrFile.pjt");
}
hotmenu close_SD_Driver()
{
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\PrFile\\ESP\\sd_drv\\sd_drv.pjt");
}
hotmenu close_System()
{
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\User\\System.pjt");
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\User\\System_Sdram.pjt");
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\User\\System_Upgrader.pjt");
}
hotmenu close_All()
{
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\API\\api.pjt");
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SOURCECODE\\Codec\\codec.pjt");
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\Driver\\Driver.pjt");
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SOURCECODE\\GUI\\gui.pjt");
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\PrFile\\ESP\\ide_drv\\ide_drv.pjt");
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\PrKernel\\kernel.pjt");
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SOURCECODE\\MNU\\mnu.pjt");
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\PrFile\\PrFile.pjt");
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\PrFile\\ESP\\sd_drv\\sd_drv.pjt");
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\User\\System.pjt");
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\User\\System_Sdram.pjt");
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\User\\System_Upgrader.pjt");
}
menuitem "Project"
hotmenu OpenAll()
{
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\API\\api.pjt");
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SOURCECODE\\Codec\\codec.pjt");
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\Driver\\Driver.pjt");
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SOURCECODE\\GUI\\gui.pjt");
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\PrFile\\ESP\\ide_drv\\ide_drv.pjt");
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\PrKernel\\kernel.pjt");
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SOURCECODE\\MNU\\mnu.pjt");
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\PrFile\\PrFile.pjt");
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\PrFile\\ESP\\sd_drv\\sd_drv.pjt");
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\User\\System.pjt");
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\User\\System_Upgrader.pjt");
GEL_ProjectLoad("D:\\Ferrari\\CMJ200\\SourceCode\\User\\System_Sdram.pjt");
GEL_ProjectSetActive("D:\\Ferrari\\CMJ200\\SourceCode\\User\\System_Sdram.pjt");
}
hotmenu CloseAll()
{
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\API\\api.pjt");
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SOURCECODE\\Codec\\codec.pjt");
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\Driver\\Driver.pjt");
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SOURCECODE\\GUI\\gui.pjt");
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\PrFile\\ESP\\ide_drv\\ide_drv.pjt");
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\PrKernel\\kernel.pjt");
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SOURCECODE\\MNU\\mnu.pjt");
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\PrFile\\PrFile.pjt");
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\PrFile\\ESP\\sd_drv\\sd_drv.pjt");
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\User\\System.pjt");
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\User\\System_Sdram.pjt");
GEL_ProjectClose("D:\\Ferrari\\CMJ200\\SourceCode\\User\\System_Upgrader.pjt");
}
menuitem "Utility"
hotmenu Reload()
{
GEL_Halt();
GEL_Reset();
GEL_Load("D:\\Ferrari\\CMJ200\\SourceCode\\User\\system.out");
}
hotmenu Relaod_and_Run()
{
GEL_Halt();
GEL_Reset();
GEL_Load("D:\\Ferrari\\CMJ200\\SourceCode\\User\\system.out");
GEL_Run();
}
hotmenu SDRAM_Relaod_and_Run()
{
GEL_Halt();
GEL_Reset();
Init_Registers();
GEL_Load("D:\\Ferrari\\CMJ200\\SourceCode\\User\\system_sdram.out");
GEL_Run();
}
/*
hotmenu Loadcode()
{
Init_Registers();
GEL_Halt();
GEL_Reset();
GEL_Load("D:\\JaguarPlus\\JaguarPlus\\SourceCode\\project\\jaguar_flashburn.out");
}
hotmenu BurnFlash()
{
GEL_Load("D:\\JaguarPlus\\JaguarPlus\\SourceCode\\project\\flashburn.out");
GEL_Halt();
GEL_Reset();
GEL_Restart();
GEL_Run();
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -