c5515_MapInit() {
GEL_MapOn();
GEL_MapReset();
/*Program Space*/
/* DARAM */
GEL_MapAdd(0x0000C0,0,0x001F40,1,1); /* DARAM0 */
GEL_MapAdd(0x002000,0,0×002000,1,1); /* DARAM1 */
GEL_MapAdd(0x004000,0,0×002000,1,1); /* DARAM2 */
GEL_MapAdd(0x006000,0,0×002000,1,1); /* DARAM3 */
GEL_MapAdd(0x008000,0,0×002000,1,1); /* DARAM4 */
GEL_MapAdd(0x00A000,0,0×002000,1,1); /* DARAM5 */
GEL_MapAdd(0x00C000,0,0×002000,1,1); /* DARAM6 */
GEL_MapAdd(0x00E000,0,0×002000,1,1); /* DARAM7 */
/* SARAM */
GEL_MapAdd(0x010000,0,0×002000,1,1); /* SARAM0 */
GEL_MapAdd(0x012000,0,0×002000,1,1); /* SARAM1 */
GEL_MapAdd(0x014000,0,0×002000,1,1); /* SARAM2 */
GEL_MapAdd(0x016000,0,0×002000,1,1); /* SARAM3 */
GEL_MapAdd(0x018000,0,0×002000,1,1); /* SARAM4 */
GEL_MapAdd(0x01A000,0,0×002000,1,1); /* SARAM5 */
GEL_MapAdd(0x01C000,0,0×002000,1,1); /* SARAM6 */
GEL_MapAdd(0x01E000,0,0×002000,1,1); /* SARAM7 */
GEL_MapAdd(0x020000,0,0×002000,1,1); /* SARAM8 */
GEL_MapAdd(0x022000,0,0×002000,1,1); /* SARAM9 */
GEL_MapAdd(0x024000,0,0×002000,1,1); /* SARAM10 */
GEL_MapAdd(0x026000,0,0×002000,1,1); /* SARAM11 */
GEL_MapAdd(0x028000,0,0×002000,1,1); /* SARAM12 */
GEL_MapAdd(0x02A000,0,0×002000,1,1); /* SARAM13 */
GEL_MapAdd(0x02C000,0,0×002000,1,1); /* SARAM14 */
GEL_MapAdd(0x02E000,0,0×002000,1,1); /* SARAM15 */
GEL_MapAdd(0x030000,0,0×002000,1,1); /* SARAM16 */
GEL_MapAdd(0x032000,0,0×002000,1,1); /* SARAM17 */
GEL_MapAdd(0x034000,0,0×002000,1,1); /* SARAM18 */
GEL_MapAdd(0x036000,0,0×002000,1,1); /* SARAM19 */
GEL_MapAdd(0x038000,0,0×002000,1,1); /* SARAM20 */
GEL_MapAdd(0x03A000,0,0×002000,1,1); /* SARAM21 */
GEL_MapAdd(0x03C000,0,0×002000,1,1); /* SARAM22 */
GEL_MapAdd(0x03E000,0,0×002000,1,1); /* SARAM23 */
GEL_MapAdd(0x040000,0,0×002000,1,1); /* SARAM24 */
GEL_MapAdd(0x042000,0,0×002000,1,1); /* SARAM25 */
GEL_MapAdd(0x044000,0,0×002000,1,1); /* SARAM26 */
GEL_MapAdd(0x046000,0,0×002000,1,1); /* SARAM27 */
GEL_MapAdd(0x048000,0,0×002000,1,1); /* SARAM28 */
GEL_MapAdd(0x04A000,0,0×002000,1,1); /* SARAM29 */
GEL_MapAdd(0x04C000,0,0×002000,1,1); /* SARAM30 */
GEL_MapAdd(0x04E000,0,0×002000,1,1); /* SARAM31 */
/* External-Memory */
GEL_MapAdd(0x050000,0,0x7B0000,1,1); /* External-SDRAM */
GEL_MapAdd(0x800000,0,0×400000,1,1); /* External-Async */
GEL_MapAdd(0xC00000,0,0×200000,1,1); /* External-Async */
GEL_MapAdd(0xE00000,0,0×100000,1,1); /* External-Async */
GEL_MapAdd(0xF00000,0,0x0E0000,1,1); /* External-Async */
/* ROM */
GEL_MapAdd(0xFE0000,0,0×008000,1,0); /* SAROM0 */
GEL_MapAdd(0xFE8000,0,0×008000,1,0); /* SAROM1 */
GEL_MapAdd(0xFF0000,0,0×008000,1,0); /* SAROM2 */
GEL_MapAdd(0xFF8000,0,0×008000,1,0); /* SAROM3 */
/* Data Space */
/* DARAM */
GEL_MapAdd(0x000000,1,0×000060,1,1); /* MMRs */
GEL_MapAdd(0x000060,1,0x000FA0,1,1); /* DARAM0 */
GEL_MapAdd(0x001000,1,0×001000,1,1); /* DARAM1 */
GEL_MapAdd(0x002000,1,0×001000,1,1); /* DARAM2 */
GEL_MapAdd(0x003000,1,0×001000,1,1); /* DARAM3 */
GEL_MapAdd(0x004000,1,0×001000,1,1); /* DARAM4 */
GEL_MapAdd(0x005000,1,0×001000,1,1); /* DARAM5 */
GEL_MapAdd(0x006000,1,0×001000,1,1); /* DARAM6 */
GEL_MapAdd(0x007000,1,0×001000,1,1); /* DARAM7 */
/* SARAM */
GEL_MapAdd(0x008000,1,0×001000,1,1); /* SARAM0 */
GEL_MapAdd(0x009000,1,0×001000,1,1); /* SARAM1 */
GEL_MapAdd(0x00A000,1,0×001000,1,1); /* SARAM2 */
GEL_MapAdd(0x00B000,1,0×001000,1,1); /* SARAM3 */
GEL_MapAdd(0x00C000,1,0×001000,1,1); /* SARAM4 */
GEL_MapAdd(0x00D000,1,0×001000,1,1); /* SARAM5 */
GEL_MapAdd(0x00E000,1,0×001000,1,1); /* SARAM6 */
GEL_MapAdd(0x00F000,1,0×001000,1,1); /* SARAM7 */
GEL_MapAdd(0x010000,1,0×001000,1,1); /* SARAM8 */
GEL_MapAdd(0x011000,1,0×001000,1,1); /* SARAM9 */
GEL_MapAdd(0x012000,1,0×001000,1,1); /* SARAM10 */
GEL_MapAdd(0x013000,1,0×001000,1,1); /* SARAM11 */
GEL_MapAdd(0x014000,1,0×001000,1,1); /* SARAM12 */
GEL_MapAdd(0x015000,1,0×001000,1,1); /* SARAM13 */
GEL_MapAdd(0x016000,1,0×001000,1,1); /* SARAM14 */
GEL_MapAdd(0x017000,1,0×001000,1,1); /* SARAM15 */
GEL_MapAdd(0x018000,1,0×001000,1,1); /* SARAM16 */
GEL_MapAdd(0x019000,1,0×001000,1,1); /* SARAM17 */
GEL_MapAdd(0x01A000,1,0×001000,1,1); /* SARAM18 */
GEL_MapAdd(0x01B000,1,0×001000,1,1); /* SARAM19 */
GEL_MapAdd(0x01C000,1,0×001000,1,1); /* SARAM20 */
GEL_MapAdd(0x01D000,1,0×001000,1,1); /* SARAM21 */
GEL_MapAdd(0x01E000,1,0×001000,1,1); /* SARAM22 */
GEL_MapAdd(0x01F000,1,0×001000,1,1); /* SARAM23 */
GEL_MapAdd(0x020000,1,0×001000,1,1); /* SARAM24 */
GEL_MapAdd(0x021000,1,0×001000,1,1); /* SARAM25 */
GEL_MapAdd(0x022000,1,0×001000,1,1); /* SARAM26 */
GEL_MapAdd(0x023000,1,0×001000,1,1); /* SARAM27 */
GEL_MapAdd(0x024000,1,0×001000,1,1); /* SARAM28 */
GEL_MapAdd(0x025000,1,0×001000,1,1); /* SARAM29 */
GEL_MapAdd(0x026000,1,0×001000,1,1); /* SARAM30 */
GEL_MapAdd(0x027000,1,0×001000,1,1); /* SARAM31 */
/* External-Memory */
GEL_MapAdd(0x028000,1,0x3D8000,1,1); /* External-SDRAM */
GEL_MapAdd(0x400000,1,0×200000,1,1); /* External-Async */
GEL_MapAdd(0x600000,1,0×100000,1,1); /* External-Async */
GEL_MapAdd(0x700000,1,0×080000,1,1); /* External-Async */
GEL_MapAdd(0x780000,1,0×070000,1,1); /* External-Async */
/* ROM */
GEL_MapAdd(0x7F0000,1,0×004000,1,0); /* SAROM0 */
GEL_MapAdd(0x7F4000,1,0×004000,1,0); /* SAROM1 */
GEL_MapAdd(0x7F8000,1,0×004000,1,0); /* SAROM2 */
GEL_MapAdd(0x7FC000,1,0×004000,1,0); /* SAROM3 */
/* IO Space */
GEL_MapAdd(0x0000,2,0xFFFF,1,1); /* XPORT */
zhihui xuan:
在工程里面有个CMD文件,里面定义的就是内存映射。
GEL里的这部分程序应该是不需要在移到程序内的。
我在移植的时候是没有用到。
Weifeng Ying:
回复 zhihui xuan:
zhihui xuan
在工程里面有个CMD文件,里面定义的就是内存映射。
GEL里的这部分程序应该是不需要在移到程序内的。
我在移植的时候是没有用到。
zhihui xuan:
回复 Weifeng Ying:
巧了,刚好我也在用这个例程来扩展呢。环境和你的一样,不知道你遇到的问题是什么现象?
zhihui xuan:
回复 Weifeng Ying:
CSL库中的MSC工程,有用到2个库:CSL库和atafs库,还有用到BIOS系统。
在工程里面有个TCF文件,是关于BIOS的设置,在进入main函数前,BIOS的初始化程序会先被执行。
在这个工程里面,是不需要GEL文件的。BIOS的初始化可以直接代替GEL的初始化
zhihui xuan:
对于程序的内存映射,我觉得不需要细化那么多的SARaM和DARam。
一般设置为这样:
PAGE 0: VECT: origin = 0x4fc00, len = 0x100 PAGE 0: DARAM: origin = 0xc0, len = 0xfe40 PAGE 0: SARAM: origin = 0x10000, len = 0x3fc00
Weifeng Ying:
回复 zhihui xuan:
真的 很感谢你这么细心。我现在主要问题是我的工程在线debug 没有问题,但是,固化到flash之后,就不能正常工作了。我是怀疑中断向量表的问题,也看过一些资料,在tcf文件里面配置好后,只需要在主函数里面使能对应的中断即可。不知道你那边固化之后U盘功能能否正常使用?如果可以,方便的话想跟你细细讨教一下?已经弄了好久,发现一直是固化之后的问题。好多工程都这样。
zhihui xuan:
回复 Weifeng Ying:
不知道你固化后遇到的问题都是什么问题?
你可以再固化后,再用仿真来跟着跑一跑,看是在哪里出错的。
我的程序在没使用MSC的时候,固化是可以的。但是现在修改后的代码,固化进去也是有一堆问题没解决呢。
zhihui xuan:
回复 Weifeng Ying:
我在使用MSC工程的时候,发现在SD卡初始化那段有点问题,当SD为大容量卡 的时候,需要在SD进入IDLE之后加入小段延时(我是用的1000指令周期),不然的话会 很容易SD不能被发现。
zhihui xuan:
回复 Weifeng Ying:
我没考虑到CSL里的工程在固化后会有很多问题,我 是直接debug一下,可以用就 直接拿来改的。
我现在也遇到类似的问题:程序在仿真的时候找不到main函数入口(不使用GEL的情况下)。在这里也开了帖子,不过没人回应,不知道是不是我描述的不清楚。
Weifeng Ying:
回复 zhihui xuan:
我们俩的情况一样。我也一直debug,以为固化之后没有问题的。结果不好用·····我用的另一个工程就是SD+FS创建文件的Poll mode DMA mode这些创建文件固化之后可以使用···。 我一直以为是gel文件里面的东西没有完全转移到自己程序代码中。