这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » OS,2440,ram 不用OS调试2440,请教代码帮运到ram和一些怪问题

共2条 1/1 1 跳转至

OS,2440,ram 不用OS调试2440,请教代码帮运到ram和一些怪问题

院士
2006-09-17 18:14:16     打赏
OS,2440,ram 不用OS调试2440,请教代码帮运到ram和一些怪问题



关键词: 不用     调试     请教     代码     运到     一些     问题    

院士
2006-12-22 22:43:00     打赏
2楼
问 买了个s3c2440开发板,没有用linux。我们打算把他当超级单片机用。移植了我们公司以前买的商业tcp、ip协议。

   现在有几个问题,一个就是把代码加载到sdram中去运行的问题。还有一个就是读写nor flash的问题,这两天搞的头晕:

1。代码加载问题的疑惑:39vf160:0x0000_0000。 SDRAM:0X3000_0000.  我的想法是和bootLoader一样,把2M byte的falsh内容统统给mov到sdram,然后把sdrem remap到0x0000_0000的地址。这样中断服务程序也在sdram。速度应该很快,同时也可以读写39vf160,这样可以实现对自己程序flash 的程序升级,通过tcp/ip。我看了twentyone大侠的那个4510的文章,由于twentyone大侠4510地址分配是0~2M,2M~18M连续地址。我可以理解remap后程序可以继续在sdram立顺序运行,可是我这个应用flash地址和sdram地址差几百M,用这个方法可以吗? 比方我把ro设定为0x00000000,

rw设定为0x3000_0000+2M的地址。这样sdram中的前面2M是程序,后面是变量(ZI+RW),但是remap后,sdram地址变成0x0000_0000开始了,长度是32M ,变量(ZI+RW)可以自然的从0x3000_0000+2M变成0x0000_0000+2M的地址吗?

我想不明白,请高手指点。

2。我测试了一个读写flash的程序,在关闭mmu的情况下,可以正常的erase和写,但是erase_block后,居然我原来设定的2个定时器不能正常工作了,我查来查去。在erase_block的程序中有个

    CMD_ADDR0 = 0xaaaa;
CMD_ADDR1 = 0x5555;
CMD_ADDR0 = 0x8080;
CMD_ADDR0 = 0xaaaa;
CMD_ADDR1 = 0x5555;
*(volatile U16 *)sector = 0x3030;
DelayMs(25);

这个几句,把 *(volatile U16 *)sector = 0x3030;这个语句屏蔽居然就不会影响到我的定时器,尔一开上就不行。真是奇怪。



小弟是ARM菜鸟,问题就比较菜,希望大侠不用见怪。

1: 这里ARM论坛太冷了啊,没有人回答问题 2: 楼主买的什么tcp?多少米?功能如何? 3: 万把块钱吧,速度 不错 4: 方法可以不设rw地址,在程序reset处开始未进入c代码时就复制及remap,那样ro、rw就一块都过去了,然后初始化zi。 5: 2440没有remap的功能,不用想了 6: remap 是 philps的ARM7上的功能三星的好象没有吧
不用remap 就把中断向量设置好就可以,或用mmu应该也可以。 7: 其实很简单,和44b0的方法差不多。现在搞定了

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]