因为我要把u-boot-2009-11移植到s3c2440上面,选的模板是smdk2410,所以,要找出2440和2410的不同点,然后再做出修改。
1. 在网上搜索了下,都是arm920t核心,但是s3c2440和s3c2410的不同点:
- 增加了camara接口(与移植无关)
- 增加了I/O(可能移植要修改)
- 增加了中断源(移植时肯定要修改)
- 2440的主频是2410主频2倍(移植肯定要修改)
2. 在/board/samsung/下建立一个目录smdk2440,把smdk2410下的所有文件复制到smdk2440目录下面;把smdk2410.c改成smdk2440.c
3. 在/include/configs/ ,把smdk2410复制为smdk2440.h.
4. 在cpu/arm920t下修改start.S.
5. 阅读源代码,找出要增加的宏,要修改的宏,要增加的代码,要删除的代码,要修改的代码。
- 修改start.S
- 修改nand_read.c
- 修改makefile
- 复制目录建立自己的board,smdk2440
- 在include 里面建立自己的头文件 s3c2440.h
- 在文件/drivers/rtc/s3c24x0.c中,加入宏:
- #if defined(CONFIG_S3C2440) /*1, add this line*/
#include /*2, add this line*/
#endif /*3, add this line*/
- 把 头文件包含进来;
- 在文件/drivers/serial/serial_s3c24x0.c中,也把上面的宏加入包含头文件。
- 修改文件/board/samsung/sdmk2440/smdk2440.c ,
- 修改/include/s3c24x0.h ,把宏CONFIG_S3C2410 --> CONFIG_S3C2440
- CPU/ARM920T/S3C24X0/下的所有文件,都要 加入宏把头文件包含进来
比如在文件 s3c24x0_rtc.c中,这个是s3c24x0通用的,那么这 是怎么实现通用的呢???
他是 在包含头文件时,用到了 条件编译,根据宏定义来 选择包含的头文件。
阅读(1183) | 评论(0) | 转发(0) |