本文共 741 字,大约阅读时间需要 2 分钟。
转自:http://blog.chinaunix.net/uid-26817832-id-3450609.html
1、先记录一个栈 __cpu_up boot_secondary secondary_startup __v7_setup __enable_mmu __secondary_switched secondary_start_kernel 2、栈的说明 1)、主核负责执行: __cpu_up(在此函数中组secondary_data结构) boot_secondary (在此函数中唤醒从核并调用wait_for_completion_timeout(&cpu_running,msecs_to_jiffies(1000));等待) 2)、如何唤醒从核? 以zynq板子来说,如下: 因此,如上所述,只需要在boot_secondary函数中将secondary_startup地址写入0xFFFFFFF0,并sev即可。 3)、从核执行如下函数: secondary_startup __v7_setup __enable_mmu __secondary_switched secondary_start_kernel 并在 secondary_start_kernel 函数中,调用complete(&cpu_running);来通知主核,我ok了(进入idle状态),你继续执行吧。 4)、__cpu_up谁来调用 smp_init,rcu_torture_onoff(Execute random CPU-hotplug operations at the interval specified by the onoff_interval),还用省电相关的。 转载地址:http://lrqji.baihongyu.com/