- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
uboot移植到s3c2410
本次移植是将uboot- 1.1.6 移植到s3c2410 开发板上
一、创建开发板目录,修改相应的makefile 及相关文件
创建开发板目录 board/s3c2410, 找到相似的开发板 board/smdk2410,将此目录中文件全部
copy 到s3c2410 目录中。
由于我的开发板用的flash 是intel 的E28F128J3A,所以要寻找这个flash 的驱动。将board/cmi
中的flash.c 文件copy 到s3c2410 目录下,并改名为flash_e28_cmi.c 。
修改board/s3c2410/Makefile 中的
COBJS := smdk2410.o flash.o 为
COBJS := smdk2410.o flash_e28_cmi.o
将include/configs/ 目录下的smdk2410.h 在本目录中复制并改名为s3c2410.h。这个是开发板
的配置头文件。
修改顶层Makefile ,在
smdk2410_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
下添加
s3c2410_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t s3c2410 NULL s3c24x0
修改board/s3c2410/config.mk ,将
TEXT_BASE = 0x33F80000
改为
TEXT_BASE = 0x33E80000 。
这个为什么这样改,我还没弄清楚,只是我看到有移植好的定的就是这个值。有知道的希望
留个言,在此先谢过。
在这里说说TEXT_BESE 这个变量在编译和链接时怎么传递的。在顶层目录下的 config.mk
中,有这么一行代码
sinclude $(TOPDIR)/board/$(BOARDDIR)/config.mk
先将上述变量所在的文件包含,然后有两个定义
CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \
-D__KERNEL__ -DTEXT_BASE=$(TEXT_BASE) \
CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes
这是在编译时用到的选项。这样在编译时通过-DTEXT_BASE=$(TEXT_BASE) 定义,就把
TEXT_BASE 的值传递到各使用到该变量的源文件,如cpu/arm920t.S 中就用到这个变量。
还有一个变量的定义
LDFLAGS += -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
这个是在链接时用的到选项,根据-Ttext 选项的指示,链接脚本链接时就可以使用
TEXT_BASE 的值了。
到此,开发板的一系列目录、文件及编译链接相关的事项都已完成,下面就是要修改相就文
件的代码以及开发板配置头文件的配置选项,以适合我的开发板上的芯片特性。
二、修改相关源文件
主要有三个方面的文件要修改:
1. 我们用的flash 是两片在一起,组成了32 位寻址。而原来的代码是按 16 位寻址写
的。所以关于flash 一系列操作的代码要修改。这部分修改要保证能正确操作flash
2. 关于i2c 设备eeprom 的相关配置,主是要是设备地址以及设备内存地址的宽度等。
同样,这里修改后要保证能正确读写eeprom
3. 关于网卡的设置,网络用了以后我们就可以用过网络从主机上下载相关代码。修
改完后要能使用tftp 工具进行下载。
1)、flash
由于我的开发板是两块e28F128J3A flash 组成32 位寻址,所以与地址操作相关的数据都由
原来的16 位改为32 位。
首先修改flash 相关的命令,在flash_e28_cmi.c 中
#define FLASH_ID_MASK 0xFFFF
#define FLASH_BLOCK_SIZE 0
#define FLASH_CMD_READ_ID
原创力文档


文档评论(0)