由於我們希望讓uclinux支持smp,且希望使用VDSP中多核相關的函數,因此在head.s中添加了對_mc_data_initialise的調用,此調用放在fp和sp設置好之後,跳轉到main之前,如下所示:
/*
* load the current thread pointer and stack
*/
r1.l = _init_thread_union;
r1.h = _init_thread_union;
r2.l = 0x2000;
r2.h = 0x0000;
r1 = r1 + r2;
sp = r1;
usp = sp;
fp = sp;
/////////////////////////////////////////////////////////////////
// blackfin-multi-core
// Initialise the multi-core data tables.
CALL.X __mc_data_initialise;
.extern __mc_data_initialise;
.type __mc_data_initialise,STT_FUNC;
jump.l _main;//start_kernel;
uclinux-2008R1-RC8(bf561)到VDSP5的移植(62)
uclinux-2008R1-RC8(bf561)到VDSP5的移植(60):current_text_addr
uclinux-2008R1-RC8(bf561)到VDSP5的移植(58)
uclinux-2008R1-RC8(bf561)到VDSP5的移植(57)
uclinux-2008R1-RC8(bf561)到VDSP5的移植(56):__grab_cache_page
uclinux-2008R1-RC8(bf561)到VDSP5的移植(46):raw_rwlock_t