S3C2442开发记录

1、原先用于2440的bootloader可以不做改动运行于2442之上,从手册上看S3C2442较2440少了一个AC97的外设,少许地方做了修改。

2、三星提供的UBOOT在16M晶振的核心板的硬件环境下能够正常运行,而修改UBOOT的晶振频率到12M,启动时打印的信息有很多的乱码,估计还有哪块没有配置好,或者整个UBOOT的部分地方的频率不匹配。

3、bootloader进入内核时会调用ao(a1,a2);该函数,其中a0为内核的起始地址,应该就是内核的入口函数,a1的值为0,a2就是传递的机器码,内核启动时会去检查机器码,判断硬件平台是否正确,通过该机器码调用不同平台的SMDK。

4、在内核树根目录下有个.config文件,里面定义了CMDLINE的默认值,但是通过内核的启动信息看,运行的CMDLINE确实是由bootloader将CMDLINE传入到内核中去的,bootloader将一个结构体存放在地址为30000100的空间中,其中就包含了CMDLINE,内核会去固定地方读取该串CMDLINE,具体有关CMDLINE的细节参看:http://blog.chinaunix.net/u1/38994/showart_1321415.html

5、内核启动时,解压缩完毕,就卡在unpress kernel.....done. booting the kernel。

网上有说3种情况:1、CMDLINE不正确,2、机器码不正确,3、晶振配置不正确。这3个都查过了,最后原因却是在arch/arm/plat-s3c24xx中的cpu.c文件中没有加入我们这块2442的CPU ID。在内核中选择对2442的支持,但是从里面看,内核支持CHIP ID为32440aaa的2442芯片,但是我们的芯片是CHIP ID为32440aab,应该是芯片型号A型和B型的区别。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值