29、(8)Linux内核启动第二阶段之 setup_arch函数分析
来源:互联网 发布:网络语999999什么意思 编辑:程序博客网 时间:2024/04/26 03:42
此函数在arch/arm/kernel/setup.c中定义
void __init setup_arch(char **cmdline_p)
{
struct tag *tags = (struct tag *)&init_tags;
struct machine_desc *mdesc;
char *from = default_command_line;
unwind_init();
setup_processor(); //进行处理器相关的一些设置
mdesc = setup_machine(machine_arch_type); //获得开发板的
machine_desc结构
machine_name = mdesc->name;
if (mdesc->soft_reboot)
reboot_setup("s");
if (__atags_pointer)
tags = phys_to_virt(__atags_pointer);
else if (mdesc->boot_params) //定义了Bootloader传入参数的地址
tags = phys_to_virt(mdesc->boot_params);
/*
* If we have the old style parameters, convert them to
* a tag list.
*/
if (tags->hdr.tag != ATAG_CORE)
convert_to_tag_list(tags);
if (tags->hdr.tag != ATAG_CORE)
tags = (struct tag *)&init_tags;
if (mdesc->fixup)
mdesc->fixup(mdesc, tags, &from, &meminfo);
if (tags->hdr.tag == ATAG_CORE) {
if (meminfo.nr_banks != 0) //如果已经在内核中定义了meminfo结构
squash_mem_tags(tags); 则忽略内存tag
save_atags(tags);
parse_tags(tags); //解释每个tag
}
init_mm.start_code = (unsigned long) _text;
init_mm.end_code = (unsigned long) _etext;
init_mm.end_data = (unsigned long) _edata;
init_mm.brk = (unsigned long) _end;
memcpy(boot_command_line, from, COMMAND_LINE_SIZE);
boot_command_line[COMMAND_LINE_SIZE-1] = '\0';
parse_cmdline(cmdline_p, from); //对命令行进行一些先期的处理
paging_init(mdesc); //重新初始化页表
- 29、(8)Linux内核启动第二阶段之 setup_arch函数分析
- linux内核启动第二阶段分析-setup_arch()函数
- linux内核启动第二阶段分析-setup_arch()函数
- linux内核启动第二阶段之setup_arch()函数分析-2.6.36
- linux内核启动第二阶段之setup_arch()函数分析-2.6.36
- linux内核启动第二阶段之setup_arch()函数分析-2.6.36
- linux内核启动第二阶段之setup_arch()函数分析-2.6.36
- linux内核启动第二阶段之setup_arch()函数分析-2.6.36
- linux内核启动之setup_arch
- linux内核启动第二阶段分析
- linux内核启动第二阶段分析
- Linux内核启动:setup_arch
- linux 启动之setup_arch函数(一)
- linux 启动之setup_arch函数(二)
- linux内核启动第二阶段分析-2.6.36
- linux内核启动第二阶段分析 start_kernel
- Linux启动中setup_arch分析
- u-boot2013.01 smdk2410 启动第二阶段分析之引导内核
- 余弦table
- 文本文件与二进制文件的区别
- WEBQQ2.0协议分析(退出群)
- 磁盘空间信息
- 在RTF中怎样使表格的表格的行在各页顶端以标题行形式重复出现
- 29、(8)Linux内核启动第二阶段之 setup_arch函数分析
- IP数据包长度问题总结
- Oracle Dedicated server 和 Shared server(专用模式 和 共享模式) 说明
- Android中的ANR
- 【聚沙成塔】CooCox已更新STM32F10x及LPC12xx的组件&例程
- 基于上下文的访问控制——CBAC的配置
- 利用判断符号[ ]
- 西藏路况信息
- 程序效率的对比