有关ARM9:Machine ID问题总结
要选择上S3C2410这个选项。说是如果不选择这个,编译会出错、或者不通过。可是大家有没有考虑这是为什么?我要做的是S3C2440的我为什么要选择2410的啊~带着这个疑问。我将其根源找到~~下面带大家来瞧瞧这个东西。
在启动代码我用的是uboot,在进行传参数给内核的时候,会把cpu的ID 传递给内核。但是在uboot中这个ID 是由uboot编译的时候自动生成的。我觉得这个ID还是可以更改的,目前不准备继续研究这个问题。这里假设是固定生成的!
S3C2410的ID是0xc1 s3c2440的ID是0x7cf(这里我要说明一下,我在启动内核的时候上面显示的是这个,有的是0x16A)
这样需要在内核文件的arch/arm/kernel/head.S文件中做一个修改:
如果是S3C2410 那么需要添加的是
mov r1,#0xc1
如果要是S3C2440的话,你要是添加mov r1,0x7cf那么编译会报错。
下面需要让你填写的要多一条语句,由于mov指令只能传递char型的也就是8位二进制数
所以这里稍有不同:
mov r1,0xcf
orr r1, r1,#0x700
这样既可,这样启动的时候就不会停留在:
Uncompressing Linux................................................................................................................................... done, booting the kernel.
这样你所添加的程序驱动都可以添加到/arch/arm/mach-s3c2440/mach-smdk2440.c这里了。之前我选S3C2410的时候我还需要向/arch/arm/mach-s3c2410/mach-smdk2410.c这里进行添加。麻烦的要命。
这样就可以了~~~~
ARM9MachineI 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)