关于MACHINE_START
来源:互联网 发布:加工中心编程基础 编辑:程序博客网 时间:2024/06/14 10:55
MACHINE_START( SMDK2410, "SMDK2410" ) /* @TODO: request a new identifier and switch to SMDK2410 */
/* Maintainer: Jonas Dietsche */
. phys_io = S3C2410_PA_UART,
. io_pg_offst = ( ( ( u32) S3C24XX_VA_UART) > > 18) & 0xfffc,
. boot_params = S3C2410_SDRAM_PA + 0x100,
. map_io = smdk2410_map_io,
. init_irq = s3c24xx_init_irq,
. init_machine = smdk_machine_init,
. timer = & s3c24xx_timer,
MACHINE_END
# define MACHINE_START( _type, _name) /
static const struct machine_desc __mach_desc_# # _type /
__attribute_used__ /
__attribute__( ( __section__( ".arch.info.init" ) ) ) = { /
. nr = MACH_TYPE_# # _type, /
. name = _name,
# define MACHINE_END /
} ;
static const struct machine_desc __mach_desc_SMDK2410
__attribute_used__
__attribute__( ( __section__( ".arch.info.init" ) ) ) = {
. nr = MACH_TYPE_SMDK2410, /* architecture number */
. name = "SMDK2410" , /* architecture name */
/* Maintainer: Jonas Dietsche */
. phys_io = S3C2410_PA_UART, /* start of physical io */
. io_pg_offst = ( ( ( u32) S3C24XX_VA_UART) > > 18) & 0xfffc,
. boot_params = S3C2410_SDRAM_PA + 0x100, /* tagged list */
. map_io = smdk2410_map_io, /* IO mapping function */
. init_irq = s3c24xx_init_irq,
. init_machine = smdk_machine_init,
. timer = & s3c24xx_timer,
}
/* arch/include/asm-arm/mach-types.h */
#define MACH_TYPE_SMDK2410 193
这个值是机器的类型值,编译时由arch/arm/tool/mach-types里面定义的数据生成的。
/* arch/arm/tool/mach-types */
smdk2410 ARCH_SMDK2410 SMDK2410 193
由上发现,MACHINE_START主要是定义了"struct machine_desc"的类型,放在 section(".arch.info.init"),是初始化数据,Kernel 起来之后将被丢弃。
各个成员函数在不同时期被调用:
1. .init_machine 在 arch/arm/kernel/setup.c 中被 customize_machine 调用,放在 arch_initcall() 段里面,会自动按顺序被调用。
3. map_io 在 setup_arch() --> paging_init() --> devicemaps_init()被调用
- 关于MACHINE_START
- 关于MACHINE_START
- 关于MACHINE_START宏
- 关于MACHINE_START (机器信息)
- MACHINE_START
- MACHINE_START
- MACHINE_START
- MACHINE_START
- MACHINE_START
- 移植Android时关于Linux中MACHINE_START的一点探讨
- MACHINE_START宏
- MACHINE_START宏
- MACHINE_START宏
- MACHINE_START宏
- MACHINE_START宏
- MACHINE_START分析
- MACHINE_START分析
- MACHINE_START分析
- c# 委托,写的很通俗易懂
- jsonp
- Python字符串操作
- 对String类型去空格
- 内网和外围
- 关于MACHINE_START
- 介绍Excel透视表(ivotTables)的好书
- c#连接mysql中文乱码解决方案(MySql.Data.dll)
- Heapsort
- 黑马程序员--面向对象入门级(刚起步)
- Excel中如何定义一个变量在表达式中使用
- uva 11549 CALCULATOR CONUNDRUM
- C语言宏定义##连接符和#符的使用
- Windows下配置SVN (Subversion)