快乐虾
http://blog.csdn.net/lights_joy/
lights@hb165.com
本文适用于
ADI bf561 DSP
uclinux-2008r1.5-rc3 (移植到vdsp5)
Visual DSP++ 5.0(update 5)
欢迎转载,但请保留作者信息
/*
* Zero out the L2 bss (where the SMP corelock slot lives).
*/
#ifdef CONFIG_L2_BOOT_MAPPED
p1.l = __sbss_l2;
p1.h = __sbss_l2;
p2.l = __ebss_l2;
p2.h = __ebss_l2;
cc = p1 == p2;
if cc jump .L_l2_done
#else
p1.l = lo(L2_START);
p1.h = hi(L2_START);
p2 = p1;
p2 += SIZEOF_CORELOCK;
#endif
r0 = 0;
p2 -= p1;
lsetup (.L_clear_l2, .L_clear_l2 ) lc0 = p2;
.L_clear_l2:
B[p1++] = r0;
.L_l2_done:
由于没有定义CONFIG_L2_BOOT_MAPPED,p1直接取L2_START的值:
#define L2_START 0xFEB00000
#define L2_LENGTH 0x20000
将整段空间清0。
1 参考资料
head.s分析(1):保存u-boot传递过来的指针(2009-1-19)
head.s分析(2):SYSCFG配置(2009-1-19)
head.s分析(3):数据及指针寄存器清0(2009-1-19)
head.s分析(4):关闭CACHE(2009-01-19)
head.s分析(5):关闭串口(2009-01-19)
head.s分析(6):栈指针初始化(2009-01-19)
head.s分析(7):init_early_exception_vectors(2009-1-19)
head.s分析(8):配置PLL及SDRAM(2009-01-20)
head.s分析(9):EBIU配置(2009-01-20)
head.s分析(10):转入中断15(2009-01-20)
head.s分析(11):关闭WATCHDOG(2009-01-20)
head.s分析(12):bss段清0(2009-01-20)
head.s分析(13):代码段前空间清0(2009-01-20)