全部博文(2005)
分类:
2008-03-20 09:44:15
chinaunix网友2008-07-08 12:30:05
blob分为两个阶段,stage_1和stage_2 stage_1 负责初始化和体系结构相关的内容,然后把stage_2的代码拷贝的内存指定的0x80100000中开始执行,trampoline清理数据段后就跳到第二阶段的C代码去了(main.c 中的main函数),博主您的意思是OBM中已经将0x8010000这个地址映射到了0x0地址吗,我看了一下OBM的代码, ----OBM/MHLV/memmap.INC---- .equ DDR_DKB_PHYSICAL, 0x80000000 @ 256 KB Remapped to 0 .equ DDR_DKB_VIRTUAL, 0x0 .equ TLB_BASE_PHYSICAL, 0x80040000 .equ TLB_BASE_VIRTUAL, 0x80040000 .equ DDR_PHYSICAL, 0x80100000 @ ~127 MB .equ DDR_VIRTUAL, 0x8010000
chinaunix网友2008-07-07 16:04:07
////////////////////////////////////////////// 对于blob使用的irq中断,将直接使用OBM的irq_handler(), 0x80000000 ~ 0x80040000 ---> DDR_DKB_OBM ( 4*64=256K) 0 ~ 0x40000 0x80040000 ~ 0x80100000 ---> DDR_TLB (12*64=768K) 0x80040000 ~ 0x80100000 0x80100000 ~ 0xC0000000 ---> DDR_Memory (1023*1M) 没有作任何映射 以上为1G的DDR空间在DKB、OBM和BLOB中的分配图谱 博主您好,和您探讨一个问题,为什么blob将自己复制到DDR时是从0x8010_0000开始的,而不是从0x8000_0000开始,也就是说把OBM的代码和页表还保留在内存开始的1M有什么用处吗? /////////////////////
chinaunix网友2008-05-30 21:40:10
B SaveProgramState @ B IRQ Interrupt SaveProgramState 没看到这个 呵呵
chinaunix网友2008-05-30 21:19:10
看了一下datasheet,硬件上的流程是这样的: 所有的中断源最后都通过中断控制器仲裁后导入IRQ/FIQ 你说的SaveProgramState是代码上的实现。 真相终于大白了 多谢博主点拨 祝好:)