linux内核移植s3c2410,移植正式开始2
内核启动的现在已经是开始执行函数start_kernel函数了。start_kernel函数在init/main.c中定义。start_kernel函数只是完成
相应的结构的初始化任务。
printk(KERN_NOTICE);
printk(linux_banner);
setup_arch(&command_line);
在uboot的一直过程中,uboot传递给kernel的参数:预先存放在某个地方的tag和机器类型id,机器类型id在函数__look_up_machine
中已经使用,tag列表是在函数setup_arch中调用的。setup_arch函数是在arch/arm/kernel/setup.c中定义:
void __init setup_arch(char **cmdline_p)
{
....
setup_processor(); // 处理器相关的设置
mdesc = setup_machine(machine_arch_type); // 得到machine_desc结构
machine_name = mdesc->name;
...
if (mdesc->boot_params) // 定义了uboot的参数
tags = phys_to_virt(mdesc->boot_params); // 得到uboot参数tag地址
...
if (tags->hdr.tag == ATAG_CORE) {
if (meminfo.nr_banks != 0) // 在内核中定义了meminfo
squash_mem_tags(tags); // 忽略内存中的信息
parse_tags(tags); // 解析tag
}
...
memcpy(boot_command_line, from, COMMAND_LINE_SIZE);
boot_command_line[COMMAND_LINE_SIZE-1] = '\0';
parse_cmdline(cmdline_p, from); // 解析命令行
paging_init(&meminfo, mdesc); // 重新初始化页表
request_standard_resources(&meminfo, mdesc);
...
}
上面函数的疑问是if (mdesc->boot_params) // 定义了uboot的参数,uboot的参数是在那里定义的?答案就是在arch/arm/
mach-s3c2410/mach-smdk2410.c中定义:
MACHINE_START(SMDK2410, "SMDK2410") /* @TODO: request a new identifier and switch
...
.boot_params = S3C2410_SDRAM_PA + 0x100,
MACHINE_END
然后就是函数parse_tags的
相关文档:
问题:用J2ME做基于手机的C/S模式游戏的流程
查看该问题完整内容如果可以 请介绍下服务器和客户端等方便的内容回答:这些在百度上不好问,去CSDN问用什么语言做都是一样的,你用J2ME做自然是可能要在手机上用,看你要通过蓝牙还是GPRS,但是编程上本质区别不大,底层都是透明的。如何建立连接,通信这些应该明白吧, ......
本文关键词: c++ 含义
1.引言
C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量 ......
LINUX(运行在VWMARE)上自带的SVN,Windows上装的是TortoiseSVN-1.6.7.18415-win32-svn-1.6.9.msi。
在Linux上配置SNV。
1、创建repository。
> svnadmin create /myhome/svnhome/project
其中svnhome是放svn的目录,下一级是不同的repository名。
2、准备好源代码。按下列目录排好。
project/branches
project/ ......
1、LINUX下TTY、CONSOLE、串口之间是怎样的层次关系?具体的函数接口是怎样的?串口是如何被调用的?
tty和console这些概念主要是一些虚拟设备的概念,而串口更多的是指一个真正的设备驱动。Tty实际是一类终端I/O设备的抽象,它实际上更多的是一个管理的概念,目的是向上层的VFS提供 ......
# tar -zxvf mysql-5.0.45.tar.gz -C /usr/src/
# cd /usr/src/mysql-5.0.45
# ./configure --prefix=/usr/local/mysql --with-charset=gbk
--localstatedir=/usr/local/mysql/data
# make
# make install
# groupadd mysql
# useradd mysql -g mysql
# cd /usr/local/mysql/bin
# ./mysql_install_db --user=mys ......