- 论坛徽章:
- 0
|
simple.c 中的以下这段内核代码:
int g1 = 0;
static int g2 = 0;
int g3;
static int g4;
static int __init simple_init(void)
{
int i;
printk("addr of i :%x\n", &i);
printk("addr of g1 :%x\n", &g1);
printk("addr of g2 :%x\n", &g2);
printk("addr of g3 :%x\n", &g3);
printk("addr of g4 :%x\n", &g4);
return 0;
}
成功编绎成 simple.ko
在arm(s3c2410)下执行结果:
/tmp $ insmod simple.ko
addr of i :c1dc9e58
addr of g1 :bf0174a0
addr of g2 :bf0174a8
addr of g3 :bf0174a4
addr of g4 :bf0174ac
在X86下的执行结果:
root@gao:/home/gao/kernel/Test# insmod simple.ko
addr of i :c124ded0
addr of g1 :d0887680
addr of g2 :d0887688
addr of g3 :d0887684
addr of g4 :d088768c
看到了区别吗?arm下全局的变量小于0xc0000000 !!!!
还是内核空间?
希望大家分析讨论下。。 |
|