c5509.gel
上传用户:rim_feng
上传日期:2022-07-29
资源大小:252k
文件大小:5k
源码类别:

DSP编程

开发平台:

DOS

  1. /* The Startup() function is executed when the GEL file is loaded. */
  2. StartUp()
  3. {
  4. C5509_Init();
  5. GEL_TextOut("Gel StartUp Complete.n");
  6. }
  7. menuitem "C5509_Configuration";
  8. hotmenu CPU_Reset()
  9. {
  10. GEL_Reset();
  11. GEL_TextOut("CPU Reset Complete.n");
  12. }
  13. /* Memory map based on MP/MC value=1 (BOOTM[2:0]=0).    */
  14. hotmenu C5509_Init()
  15. {
  16. GEL_Reset();
  17. TMCR_Reset(); 
  18. GEL_MapOn();
  19. GEL_MapReset();
  20. /* Program Space */
  21. GEL_MapAdd(0x0000C0,0,0x00FF40,1,1); /* DARAM */
  22. GEL_MapAdd(0x010000,0,0x030000,1,1); /* SARAM */
  23. GEL_MapAdd(0x040000,0,0x3C0000,1,1); /* External CE0 */
  24. GEL_MapAdd(0x400000,0,0x400000,1,1); /* External CE1 */
  25. GEL_MapAdd(0x800000,0,0x400000,1,1); /* External CE2 */
  26. /* For MP/MC=1 (BOOTM[2:0] = 0)  */
  27. GEL_MapAdd(0xC00000,0,0x400000,1,1); /* External CE3 */
  28. /* For MP/MC=0 (BOOTM[2:0] != 0) */
  29. /*GEL_MapAdd(0xC00000,0,0x3F8000,1,1); /* External CE3 */
  30. GEL_MapAdd(0xFF0000,0,0x010000,1,0); /* PDROM        */
  31. /* Data Space */
  32. GEL_MapAdd(0x000000,1,0x000050,1,1); /* MMRs */
  33. GEL_MapAdd(0x000060,1,0x007FA0,1,1); /* DARAM */
  34. GEL_MapAdd(0x008000,1,0x018000,1,1); /* SARAM */
  35. GEL_MapAdd(0x020000,1,0x1E0000,1,1); /* External CE0 */
  36. GEL_MapAdd(0x200000,1,0x200000,1,1); /* External CE1 */
  37. GEL_MapAdd(0x400000,1,0x200000,1,1); /* External CE2 */
  38. /* For MP/MC=1 (BOOTM[2:0] = 0) */
  39. GEL_MapAdd(0x600000,1,0x200000,1,1); /* External CE3 */
  40. /* For MP/MC=0 (BOOTM[2:0] != 0)*/
  41. /*GEL_MapAdd(0x600000,1,0x1FC000,1,1); /* External CE3 */
  42. /*GEL_MapAdd(0x7FC000,1,0x004000,1,0); /* PDROM */
  43. /* IO Space */
  44. GEL_MapAdd(0x0001,2,0x0002,1,1); /* IDLE CONTROL AND STATUS */
  45. GEL_MapAdd(0x0800,2,0x0014,1,1); /* EMIF */
  46. GEL_MapAdd(0x0C00,2,0x000C,1,1); /* DMA0 */
  47. GEL_MapAdd(0x0C20,2,0x000C,1,1); /* DMA1 */
  48. GEL_MapAdd(0x0C40,2,0x000C,1,1); /* DMA2 */
  49. GEL_MapAdd(0x0C60,2,0x000C,1,1); /* DMA3 */
  50. GEL_MapAdd(0x0C80,2,0x000C,1,1); /* DMA4 */
  51. GEL_MapAdd(0x0CA0,2,0x000C,1,1); /* DMA5 */
  52. GEL_MapAdd(0x0E00,2,0x0001,1,1); /* DMA GCR Reg */
  53. GEL_MapAdd(0x0E03,2,0x0001,1,1); /* DMA TCR Reg */
  54. GEL_MapAdd(0x1000,2,0x0004,1,1); /* TIMER0 */
  55. GEL_MapAdd(0x1800,2,0x000D,1,1); /* RTC */
  56. GEL_MapAdd(0x1C00,2,0x0001,1,1); /* CLKMD Reg */
  57. GEL_MapAdd(0x1E00,2,0x0001,1,1); /* USBPLL Reg */
  58. GEL_MapAdd(0x2400,2,0x0004,1,1); /* TIMER1 */
  59. GEL_MapAdd(0x2800,2,0x001F,1,1); /* MCBSP0 */
  60. GEL_MapAdd(0x2C00,2,0x001F,1,1); /* MCBSP1 */
  61. GEL_MapAdd(0x3000,2,0x001F,1,1); /* MCBSP2 */
  62. GEL_MapAdd(0x3400,2,0x0002,1,1); /* GPIO */
  63. GEL_MapAdd(0x3800,2,0x0005,1,1); /* DIE AND REV ID */
  64.         GEL_MapAdd(0x3C00,2,0x000D,1,1); /* I2C */
  65.         GEL_MapAdd(0x4000,2,0x0004,1,1); /* WATCHDOG TIMER */
  66.         GEL_MapAdd(0x4400,2,0x0006,1,1); /* ADDRESS/GPIO/EHPI */
  67.         GEL_MapAdd(0x4800,2,0x001B,1,1); /* MMC/SD1 */
  68.         GEL_MapAdd(0x4C00,2,0x001B,1,1); /* MMC/SD2 */
  69. GEL_MapAdd(0x5800,2,0x1000,1,1); /* USB Regs and Buffer */
  70. GEL_MapAdd(0x6800,2,0x0004,1,1); /* ADC */
  71. GEL_MapAdd(0x6C00,2,0x0001,1,1); /* EBSR Reg */
  72. GEL_MapAdd(0x7000,2,0x0002,1,1); /* USB IDLE Regs */
  73. GEL_MapAdd(0x7400,2,0x0001,1,1); /* SROM Reg */
  74. GEL_TextOut("C5509 Memory Map Initialization Complete.n");
  75. }
  76. /*  Initialize the EMIF control registers to access          */
  77. /*  SBSRAM(CE0), FLASH(CE1), CPLD control & status regs(CE3) */
  78. hotmenu C5509_USB_Enable()
  79. {
  80. GEL_MemoryFill(0x7000,2,1,0x0004);
  81. GEL_TextOut("C5509 USB Module enabled.n");
  82. }
  83. menuitem "C5509 EBSR Config";
  84. hotmenu Data_EMIF_En()
  85. {
  86. GEL_MemoryFill(0x6C00,2,1,0x0200);
  87. GEL_TextOut("C5509 Ext. Bus set to Data EMIF.n");
  88. }
  89. hotmenu Full_EMIF_En()
  90. {
  91. GEL_MemoryFill(0x6C00,2,1,0x0201);
  92. GEL_TextOut("C5509 Ext. Bus set to Full EMIF.n");
  93. }
  94. hotmenu NonMuxed_EHPI_En()
  95. {
  96. GEL_MemoryFill(0x6C00,2,1,0x0202);
  97. GEL_TextOut("C5509 Ext. Bus set to Non Muxed EHPI.n");
  98. }
  99. hotmenu MuxEHPI_En()
  100. {
  101. GEL_MemoryFill(0x6C00,2,1,0x0203);
  102. GEL_TextOut("C5509 Ext. Bus set to Muxed EHPI.n");
  103. }
  104. menuitem "C5509 EMIF CE0 Config";
  105. hotmenu CE0_Async16_En()
  106. {
  107. GEL_MemoryFill(0x0803,2,1,0x1FFF);
  108. GEL_TextOut("C5509 CE0 set to 16-bit Async mode.n");
  109. }
  110. menuitem "C5509 EMIF CE1 Config";
  111. hotmenu CE1_Async16_En()
  112. {
  113. GEL_MemoryFill(0x0806,2,1,0x1FFF);
  114. GEL_TextOut("C5509 CE1 set to 16-bit Async mode.n");
  115. }
  116. menuitem "C5509 EMIF CE2 Config";
  117. hotmenu CE2_Async16_En()
  118. {
  119. GEL_MemoryFill(0x0809,2,1,0x1FFF);
  120. GEL_TextOut("C5509 CE2 set to 16-bit Async mode.n");
  121. }
  122. menuitem "C5509 EMIF CE3 Config";
  123. hotmenu CE3_Async16_En()
  124. {
  125. GEL_MemoryFill(0x080C,2,1,0x1FFF);
  126. GEL_TextOut("C5509 CE3 set to 16-bit Async mode.n");
  127. }
  128. /* Initialize Test Mode Control Registers(TMCR) */ 
  129. /* This register selects modes for factory test */
  130. /* and may be corrupted when device is powered  */
  131. /* up with the emulator attached.  This  */
  132. /* function restores the the registers to their */
  133. /* default values.  There is not impact to  */
  134. /* system functionality from these writes. */
  135. TMCR_Reset() 
  136. #define TMCR_MGS3 0x07FE 
  137. #define TMCR_MM 0x07FF 
  138. *(short *)TMCR_MGS3@IO = 0x0510; 
  139. *(short *)TMCR_MM@IO    = 0x0000;