每一个machine,都要定义一个自己的machine_desc结构,该结构定义了该machine的一些最基本的特性。
struct machine_desc {
unsigned int nr; /* architecture number */
const char *name; /* architecture name */
unsigned long boot_params; /* tagged list */
const char **dt_compat; /* array of device tree
* 'compatible' strings */
unsigned int nr_irqs; /* number of IRQs */
unsigned int video_start; /* start of video RAM */
unsigned int video_end; /* end of video RAM */
unsigned int reserve_lp0 :1; /* never has lp0 */
unsigned int reserve_lp1 :1; /* never has lp1 */
unsigned int reserve_lp2 :1; /* never has lp2 */
unsigned int soft_reboot :1; /* soft reboot */
void (*fixup)(struct machine_desc *,
struct tag *, char **,
struct meminfo *);
void (*reserve)(void);/* reserve mem blocks */
void (*map_io)(void);/* IO mapping function */
void (*init_early)(void);
void (*init_irq)(void);
struct sys_timer *timer; /* system tick timer */
void (*init_machine)(void);
};
在arch/arm/include/asm/mach/arch.h中有下面的宏,用于声明处理器相关的machine_desc结构体,并将该结构体放入vmlinux.lds中指定的段中。
#define MACHINE_START(_type,_name)
static const struct machine_desc __mach_desc_##_type
__used
__attribute__((__section__('.arch.info.init'))) = {
.nr = MACH_TYPE_##_type,
.name = _name,
#define MACHINE_END
};
在arch/arm/mach-s3c64xx/mach-smdk6410.c中使用上述宏声明machine_desc结构体,
MACHINE_START(SMDK6410, 'SMDK6410')
/* Maintainer: Ben Dooks //.phys_io = S3C_PA_UART & 0xfff00000, //.io_pg_offst = (((u32)S3C_VA_UART) >> 18) & 0xfffc, .boot_params = S3C64XX_PA_SDRAM + 0x100, .init_irq = s3c6410_init_irq, .map_io = smdk6410_map_io, .init_machine = smdk6410_machine_init, .timer = &s3c24xx_timer, MACHINE_END 上面的宏展开得到: static const struct machine_desc __mach_desc_SMDK6410 __used __attribute__((__section__('.arch.info.init'))) = { .nr = MACH_TYPE_SMDK6410, .name = 'SMDK6410', .boot_params = S3C64XX_PA_SDRAM + 0x100, //0x5000_0100 .init_irq = s3c6410_init_irq, .map_io = smdk6410_map_io, .init_machine = smdk6410_machine_init, .timer = &s3c24xx_timer, } MACH_TYPE_SMDK6410在 arch/arm/tools/mach-types文件中定义 # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number 1621:smdk6410 MACH_SMDK6410 SMDK6410 1626
上一篇:u-boot.bin生成过程分析
下一篇:wince下sources\sources.cmn\Makefile.def的相关作用
- 热门资源推荐
- 热门放大器推荐
- LM2904DMR2G 函数发生器运算放大器的典型应用
- DEMO9RS08KA2: DEMO9RS08KA2 Demonstration Board
- MCP73871EV,MCP73871 锂离子电池充电器评估板
- STEVAL-IHM039V1,采用 STM32F415 微控制器的双电机控制演示板
- LTC1606CG 演示板、16 位、250ksps ADC
- RT8086B 3.5A、1.2MHz、同步降压转换器的典型应用
- TS4999EIJT 典型应用 免滤波器立体声 2.8 W D 类音频功率放大器,可选择 3D 音效
- LTM4615,采用 15mm-15mm 封装的完整双路和三路输出负载点模块稳压器
- LTC2415-1IGN 24 位 ADC 的典型应用电路使用电阻器阵列在励磁放大器中提供精确匹配
- 使用 Analog Devices 的 LTC1450LIN 的参考设计
- MTBF突破4万小时!这家工业级3D相机品牌产品稳定性获权威机构认可
- 英特尔创始人、“摩尔定律”提出者戈登·摩尔去世
- 本周机器人行业大事件TOP5
- G20周刊|埃斯顿与北自所达成战略合作、海康机器人发布光伏组件汇流带视觉检测解决方案
- 14家工业智能企业入选《上海市智能机器人标杆企业与应用场景推荐目录》
- TriLumina完成半导体激光器测试 可在零下40到125摄氏度的温度下运行
- 华为发布车载解决方案HiCar生态白皮书
- 汽车无钥匙系统被盗贼破解? 起亚推出防盗设备KiaSafe Case
- 斯柯达开发Connect app 帮助驾驶员找到泊车位置
- Velodyne Lidar发布传感器Puck 32MR™ 为自动驾驶汽车提供高分辨率实时激光雷达

现代雷达系统的信号设计
EL5624IRE-T13

BFR340T






京公网安备 11010802033920号