OK6410A 开发板 (八) 23 linux-5.11 OK6410A start_kernel 功能角度 第二阶段

发布者:RainbowJoy最新更新时间:2022-09-15 来源: csdn关键字:OK6410A  开发板  11  第二阶段 手机看文章 扫描二维码
随时随地手机看文章

第二阶段的初始化 : 系统的 各种资源的初始化

第二阶段的初始化 仅由 主cpu 进行 (cpu0)

cpu1 ... 等 cpu 只负责

1. cpu1 ... 上的 idle 进程的创建 (smp_init -> idle_threads_init -> idle_init 是不是就完成了idle进程的创建)

2. 进入idle


CPU0

start_kernel

...

 

cpu_startup_entry(CPUHP_ONLINE);

do_idle


参考 链接 中的 start_kernel -> rest_init

参考 链接 中的 rest_init->cpu_startup_entry

kernel_init 和 kthreadd 的执行 不在 第二阶段内,此时不用分析


初始化了什么系统资源

分析了 atags

初始化了 内存 (内存虚拟化)

建立了 进程 ,初始化了调度 (进程是对的CPU虚拟化)

建立了 文件系统的根 (文件对存储地址空间的抽象)

vfs_caches_init_early

vfs_caches_init

初始化了 中断(硬件和软件)


CPU1 …

 secondary_start_kernel

     pr_debug("CPU%u: Booted secondary processorn", cpu);

     cpu_startup_entry(CPUHP_AP_ONLINE_IDLE);

      do_idle


初始化了什么系统资源

初始化了 cpu1

cpu_init

ipi_setup

关键字:OK6410A  开发板  11  第二阶段 引用地址:OK6410A 开发板 (八) 23 linux-5.11 OK6410A start_kernel 功能角度 第二阶段

上一篇:OK6410A 开发板 (八) 24 linux-5.11 OK6410A start_kernel 功能角度 第三阶段
下一篇:OK6410A 开发板 (八) 22 linux-5.11 OK6410A start_kernel 功能角度 第一阶段

推荐阅读最新更新时间:2024-10-18 09:55

OK6410A 开发板 (八) 23 linux-5.11 OK6410A start_kernel 功能角度 第二阶段
第二阶段的初始化 : 系统的 各种资源的初始化 第二阶段的初始化 仅由 主cpu 进行 (cpu0) cpu1 ... 等 cpu 只负责 1. cpu1 ... 上的 idle 进程的创建 (smp_init - idle_threads_init - idle_init 是不是就完成了idle进程的创建) 2. 进入idle CPU0 start_kernel ... cpu_startup_entry(CPUHP_ONLINE); do_idle 参考 链接 中的 start_kernel - rest_init 参考 链接 中的 rest_init- cpu_startup_en
[单片机]
OK6410A 开发板 (八) 15 linux-5.11 OK6410A start_kernel 打印角度 第二阶段 概览
do_initcalls 的打印信息 VFS: Mounted root (nfs filesystem) on device 0:10. Freeing unused kernel memory: 1024K 函数分类 arch_call_rest_init rest_init pid = kernel_thread(kernel_init, NULL, CLONE_FS); kernel_init_freeable smp_init do_basic_setup driver_init do_initcalls for (level = 0; level ARRAY_SI
[单片机]
OK6410A 开发板 (八) 16 linux-5.11 OK6410A start_kernel 打印角度 第二阶段 do_initcalls
log // init_jiffies_clocksource- ... - __clocksource_register_scale clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns // futex_init futex hash table entries: 256 (order: -1, 3072 bytes, linear) // netlink_proto_init NET: Registered protocol family 16 // atomic_pool_
[单片机]
OK6410A 开发板 (八) 18 linux-5.11 OK6410A start_kernel 功能角度 第二阶段之idle进程
idle 进程 相关的打印: 无 idle 进程相关的 函数 __mmap_switched 中的 ARM( ldmia r4!, {r0, r1, sp} ) sched_init idle 相关函数 start_kernel sched_init // 因为 1.__mmap_switched 中的 ARM( ldmia r4!, {r0, r1, sp} ) // 因为 2.__mmap_switched_data 中的 .long init_thread_union + THREAD_START_SP @ sp /* include/asm-generic/curre
[单片机]
OK6410A 开发板 (八) 34 linux-5.11 OK6410A 内存管理第二阶段
B __turn_mmu_on符号 - setup_arch- paging_init- bootmem_init- memblock_allow_resize返回 ----此时memblock初始化完成,开启了基于虚拟内时代的 memblock内存管理器时代 流程 __turn_mmu_on mcr p15, 0, r0, c1, c0, 0 @ write control reg // 内存管理相关1 // 上句执行之后,mmu开启 ret r3 // 调用到 __mmap_switched __mmap_switched adr r4, __mmap_switched_data /
[单片机]
OK6410A 开发板 (八) 123 linux-5.11 OK6410A rootfs中留给开发者的内存访问接口
与内存相关的文件系统 我们如果想用rootfs中的文件来观测内存或更改内存行为 则需要观测的文件所属的文件系统 为 内核文件系统 // https://blog.csdn.net/u011011827/article/details/119322870 中的 linux 真实文件系统分类 相关的文件系统有以下几种 sysfs,procfs,rootfs,devtmpfs,debugfs 可以从 /proc/filesystems中查看 当前的linux系统中注册了哪些 系统,在从中根据经验挑选出 内核文件系统 可以 利用 mount 来查看 这些文件系统挂载到哪个目录(挂载点)了 如果没有挂载,可以尝试用mount 命令挂载
[单片机]
OK6410A 开发板 (三) 23 u-boot-2021.01 boot 解析 U-boot 镜像运行部分 DM 的一次实例分析 - 串口
串口相关的 UCLASS DRIVER DEVICE UCLASS ./drivers/serial/serial-uclass.c L504 504 UCLASS_DRIVER(serial) = { 505 .id = UCLASS_SERIAL, 506 .name = serial , 507 .flags = DM_UC_FLAG_SEQ_ALIAS, 508 .post_prob
[单片机]
OK6410A 开发板 (六) 2 OK6410A linux-5.11 移植
$ arm-linux-gnueabi-gcc --version arm-linux-gnueabi-gcc (Linaro GCC 7.4-2019.02) 7.4.1 20181213 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. arch/arm/configs/s3
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved