打印

关于NOR,NAND,steppingstone,和中断表的一点小小疑问。。。。

[复制链接]
2217|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
waruqi|  楼主 | 2009-10-6 22:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人用的是s3c2440:
  
1.我知道在nand下,会把0x0处的4k代码复制到internal sram(steppingstone)中执行,nor是以XIP方式启动的,那在nor下0x40000000处的internal sram 还有用吗?
  
2.我在nand下,把程序下到sdram中执行,然后复制中断表到0x0处,运行正常,而在nor下,把程序下到sdram中执行,然后复制中断表到0x0处,中断就是挂不上,跟踪一下,0x0处写不进去,不知道为什么,执行到while(1);时,sdram中的数据全没了
(是不是因为nor下,0x0没有映射到internal sram,所以程序无法写入,只能通过烧写才行?)
  
3.我的目的只想 在nor下用supervivi把程序下到sdram中运行 复制中断表 挂接上中断后 方便以后测试程序 但现在中断老是调不通。。。
  
启动代码我是这么写的:
  
;中断表
vector_table
                ldr        pc, handler_reset_addr                ; handler for reset mode
                 
                ldr        pc, handler_undef_addr                ; handler for undefined mode
                ldr        pc, handler_swi_addr                ; handler for swi interrupt
                ldr        pc, handler_pabort_addr                ; handler for prefetch abort
                ldr        pc, handler_dabort_addr                ; handler for data abort
                ldr        pc, handler_reserved_addr        ; reserved
                ldr        pc, handler_irq_addr                ; handler for irq interrupt
                ldr        pc, handler_fiq_addr                ; handler for fiq interrupt
                 
handler_reset_addr                dcd                handler_reset
handler_undef_addr                dcd                handler_undef
handler_swi_addr                dcd                handler_swi
handler_pabort_addr                dcd                handler_pabort
handler_dabort_addr                dcd                handler_dabort
handler_reserved_addr        dcd                0
handler_irq_addr                dcd                handler_irq
handler_fiq_addr                dcd                handler_fiq
  
  
                ; 复制中断表
                adr                r8, vector_table                    ; source
                ldr                r9, = 0x00000000                ; destination, 还是0x40000000?
                ldmia        r8!, {r0-r7}                                ; load vectors  
                stmia        r9!, {r0-r7}                                ; store vectors  
                ldmia        r8!, {r0-r7}                                ; load handler addresses  
                stmia        r9!, {r0-r7}                                ; store handler addresses
  
  
我对 他们之间的关系 还有点不明白 特别是在nor启动的情况下, 到底怎么启动的? 怎么访问中断的? 在0x40000000处的internal ram还用什么用?。。。那位大虾能否帮我理清一下思路,在此感谢。。。

相关帖子

沙发
阿南| | 2009-10-7 19:11 | 只看该作者
可以试试,先把中断向量表烧到NOR中

使用特权

评论回复
板凳
waruqi|  楼主 | 2009-10-7 20:39 | 只看该作者
可我不想把nor原先的loader擦掉 呵呵。。。

使用特权

评论回复
地板
cqhtk| | 2009-10-9 13:31 | 只看该作者
你先备份,在用啊南的方法试下!

使用特权

评论回复
5
gooogleman| | 2009-10-10 18:14 | 只看该作者
我没有用过NOR
帮顶了。

没有NOR是利用内部4K的SRAM。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

57

帖子

0

粉丝