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

waruqi 2009-10-06 12:17:46
本人用的是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还用什么用?。。。那位大虾能否帮我理清一下思路,在此感谢。。。
...全文
138 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
waruqi 2009-10-07
  • 打赏
  • 举报
回复
有谁帮帮我啊。。。。

2,425

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 其他硬件开发
社区管理员
  • 其他硬件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧