02全志r58平台Android4.4.4下关闭内核中的CPU的开启关闭提示
?
02全志r58平臺Android4.4.4下關閉內核中的CPU的開啟關閉提示
2017/8/18 13:53
版本:V1.0
?
開發板:SC5806(全志R58平臺)
SDK:android4.4.4
?
?
1、系統編譯:(略)
原始編譯的系統,在串口中會有很多打印:(并且還是不停的顯示打印!)
[ 3277.071614] CPU1: shutdown
[ 3277.534023] CPU2: shutdown
[ 3277.080857] CPU1: Booted secondary processor
[ 3277.540563] CPU2: Booted secondary processor
[ 3275.490031] CPU3: Booted secondary processor
[ 3279.121504] CPU2: shutdown
[ 3279.552958] CPU3: shutdown
[ 3279.577345] CPU1: shutdown
[ 3279.580034] CPU1: Booted secondary processor
[ 3279.130678] CPU2: Booted secondary processor
[ 3279.561647] CPU3: Booted secondary processor
[ 3282.023760] CPU2: shutdown
[ 3282.032309] CPU2: Booted secondary processor
[ 3283.102187] CPU3: shutdown
[ 3283.382554] CPU1: shutdown
?
?
?
?
2、
W:\vxiaoyu_s5k5eya\lichee\linux-3.4\arch\arm\kernel\smp.c
/*
?* called on the thread which is asking for a CPU to be shutdown -
?* waits until shutdown has completed, or it is timed out.
?*/
void __cpuinit __cpu_die(unsigned int cpu)
{
if (!wait_for_completion_timeout(&cpu_died, msecs_to_jiffies(5000))) {
pr_err("CPU%u: cpu didn't die\n", cpu);
return;
}
//printk(KERN_NOTICE "CPU%u: shutdown\n", cpu);
?
if (!platform_cpu_kill(cpu))
printk("CPU%u: unable to kill\n", cpu);
}
?
?
/*
?* This is the secondary CPU boot entry. ?We're using this CPUs
?* idle thread stack, but a set of temporary page tables.
?*/
asmlinkage void __cpuinit secondary_start_kernel(void)
{
struct mm_struct *mm = &init_mm;
unsigned int cpu;
?
/*
?* The identity mapping is uncached (strongly ordered), so
?* switch away from it before attempting any exclusive accesses.
?*/
cpu_switch_mm(mm->pgd, mm);
enter_lazy_tlb(mm, current);
local_flush_tlb_all();
?
/*
?* All kernel threads share the same mm context; grab a
?* reference and switch to it.
?*/
cpu = smp_processor_id();
atomic_inc(&mm->mm_count);
current->active_mm = mm;
cpumask_set_cpu(cpu, mm_cpumask(mm));
?
//printk("CPU%u: Booted secondary processor\n", cpu);
?
cpu_init();
preempt_disable();
trace_hardirqs_off();
?
/*
?* Give the platform a chance to do its own initialisation.
?*/
platform_secondary_init(cpu);
?
notify_cpu_starting(cpu);
?
calibrate_delay();
?
smp_store_cpu_info(cpu);
?
/*
?* OK, now it's safe to let the boot CPU continue. ?Wait for
?* the CPU migration code to notice that the CPU is online
?* before we continue - which happens after __cpu_up returns.
?*/
set_cpu_online(cpu, true);
complete(&cpu_running);
?
local_irq_enable();
local_fiq_enable();
?
/*
?* OK, it's off to the idle thread for us
?*/
cpu_idle();
}
?
?
?
?
3、重新編譯boot/內核打包即可!
?
轉載于:https://www.cnblogs.com/wb4916/p/9923005.html
總結
以上是生活随笔為你收集整理的02全志r58平台Android4.4.4下关闭内核中的CPU的开启关闭提示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring MVC HelloWorl
- 下一篇: python_魔法方法(六):迭代器和生