最可靠的UBOOT移植

上传人:人*** 文档编号:430854420 上传时间:2023-03-25 格式:DOC 页数:42 大小:114KB
返回 下载 相关 举报
最可靠的UBOOT移植_第1页
第1页 / 共42页
最可靠的UBOOT移植_第2页
第2页 / 共42页
最可靠的UBOOT移植_第3页
第3页 / 共42页
最可靠的UBOOT移植_第4页
第4页 / 共42页
最可靠的UBOOT移植_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《最可靠的UBOOT移植》由会员分享,可在线阅读,更多相关《最可靠的UBOOT移植(42页珍藏版)》请在金锄头文库上搜索。

1、一1、到下载u-boot-2010.06.tar.bz22、解压tar jxvf u-boot-2010.06.tar.bz23、进入ubootcd u-boot-2010.064、删减uboot进入/board,留下samsung,其它全部删除ls | grep -v samsung$ | xargs rm -rf进入/arch,留下arm,其它全部删除ls | grep -v arm$ | xargs rm -rf进入/arch/arm/cpu,留下arm920t,其它全部删除ls | grep -v 920 | xargs rm rf二1、建立自己的DEMO板cd /board/sams

2、ungmkdir smdk2440cp -rf smdk2410/* smdk2440/将2410下所有的代码复制到2440下cd smdk2440/进入smdk2440目录mv smdk2410.c smdk2440.c/将smdk2440下的smdk2410.c改名为smdk2440.c然后在文件夹samsung里留下smdk2440,其它全部删除cp include/configs/smdk2410.h include/configs/smdk2440.h/建立2440头文件在include/configs下留下smdk2440.h, 其它全部删除viboard/samsung/smdk

3、2440/Makefile/修改smdk2440下Makefile的编译项,如下:COBJS := smdk2440.o flash.o/修改第28行因在smdk2440下我们将smdk2410.c改名为smdk2440.c2、顶层Makefile文件。查找到smdk2410_config的地方,在他下面按照smdk2410_config的格式建立my2440_config的编译选项,另外还要指定交叉编译器,修改159行CROSS_COMPILE ?= arm-linux-/指定交叉编译器为arm-linux-gccsmdk2410_config:unconfig/2410编译选项格式$(MK

4、CONFIG) $(:_config=)arm arm920t smdk2410 samsung s3c24x0smdk2440_config:unconfig/修改蒂3054行,2440编译选项格式$(MKCONFIG) $(:_config=)arm arm920tsmdk2440 samsung s3c24x0*说明:arm :CPU的架构(ARCH) arm920t:CPU的类型 smdk2440 :对应在board目录下建立新的开发板项目的目录 samsung:新开发板项目目录的上级目录,如直接在board下建立新的开发板项目的目录,则这里就为NULL s3c24x0:CPU型号*注

5、意:编译选项格式的第二行要用Tab键开始,否则编译会出错3、测试编译新建的smdk2440开发板项目在uboot根目录测试make smdk2440_configmake即可在uboot根目录下生成bin文件三Make distclean在include/configs/smdk2440.h头文件中添加CONFIG_S3C2440宏vi include/configs/smdk2440.h在第40行添加#define CONFIG_S3C2440 11 start.S找到程序的入口点,reset: /* * set the cpu to SVC32 mode */ mrs r0,cpsr bi

6、c r0,r0,#0x1f orr r0,r0,#0xd3 msr cpsr,r01-1.在下面添加开发板的LED测试代码,以方便观看u-boot的运行/测试开发板的LED#if 1 /P284 LED分别由S3C2440的PB5、6、7、8口来控制#define GPBCON 0x56000010#define GPBDAT 0x56000014#define GPBUP 0x56000018 ldr r0, =GPBUP ldr r1, =0x7FF /即:二进制11111111111,关闭PB口上拉 str r1, r0 ldr r0, =GPBCON /配置PB5、6、7、8为输出口,

7、对应PBCON寄存器的第10-17位 ldr r1, =0x154FD /即:二进制1111101 str r1, r0 ldr r0, =GPBDAT ldr r1, =0x1C0 /即:二进制111000000,PB5设为低电平,6、7、8为高电平 str r1, r0 /点亮开发板上的LED1,#endif1-2.去掉117,118行点亮AT91RM9200DK系列LED的代码/*bl coloured_LED_initbl red_LED_on*/1-3.中断,时钟#ifdefined(CONFIG_S3C2410)ldr r1,=0x3ffldr r0,=INTSUBMSKstr r

8、1,r0#endif/*164行*/# if defined(CONFIG_S3C2440)/添加s3c2440的中断禁止部分 ldr r1, =0x7fff /根据2440芯片手册,INTSUBMSK寄存器有15位可用ldr r0, =INTSUBMSK str r1, r0# endif# if defined(CONFIG_S3C2440) /添加s3c2440的时钟部分#define MPLLCON 0x4C000004 /系统主频配置寄存器基地址#define UPLLCON 0x4C000008 /USB时钟频率配置寄存器基地址 ldr r0, =CLKDIVN /设置分频系数FC

9、LK:HCLK:PCLK = 1:4:8 mov r1, #5 str r1, r0 ldr r0, =MPLLCON /设置系统主频为405MHz ldr r1, =0x7F021 /这个值参考芯片手册“PLL VALUE SELECTION TABLE”部分 str r1, r0 ldr r0, =UPLLCON /设置USB时钟频率为48MHz ldr r1, =0x38022 /这个值参考芯片手册“PLL VALUE SELECTION TABLE”部分 str r1, r0# else /其他开发板的时钟部分,这里就不用管了,我们现在是做2440的/* FCLK:HCLK:PCLK

10、= 1:2:4 */ /* default FCLK is 120 MHz ! */ldr r0, =CLKDIVN mov r1, #3 str r1, r0#endif接下来为了观看u-boot的运行,添加一段LED的程序,此时点亮LED2,关闭其它LED /点亮LED2 ldr r0, =GPBDAT ldr r1, =0x1A0 /即:二进制110100000,PB6设为低电平,5、7、8为高电平 str r1, r0 /点亮开发板上的LED2,2 S3C2440的时钟部分除了在start.S中添加外,还要分别在board/samsung/smdk2440/smdk2440.c和cpu

11、/arm920t/s3c24x0/speed.c中修改或添加部分代码,如下:vi board/samsung/smdk2440/smdk2440.c时钟部分修改第34行和在45行添加如下红色部分#define FCLK_SPEED 2 /设置默认等于2,即下面红色代码部分有效#if FCLK_SPEED=0 /* Fout = 203MHz, Fin = 12MHz for Audio */#define M_MDIV 0xC3#define M_PDIV 0x4#define M_SDIV 0x1#elif FCLK_SPEED=1 /* Fout = 202.8MHz */#define

12、M_MDIV 0xA1#define M_PDIV 0x3#define M_SDIV 0x1#elif FCLK_SPEED=2 /* Fout = 405MHz */#define M_MDIV 0x7F /这三个值根据S3C2440芯片手册“PLL VALUE SELECTION TABLE”部分进行设置#define M_PDIV 0x2#define M_SDIV 0x1#endifUSB时钟部分修改第51行和在61行添加如下红色部分#define USB_CLOCK 2 /设置默认等于2,即下面红色代码部分有效#if USB_CLOCK=0#define U_M_MDIV 0xA1

13、#define U_M_PDIV 0x3#define U_M_SDIV 0x1#elif USB_CLOCK=1#define U_M_MDIV 0x48#define U_M_PDIV 0x3#define U_M_SDIV 0x2#elif USB_CLOCK=2 /* Fout = 48MHz */#define U_M_MDIV 0x38 /这三个值根据S3C2440芯片手册“PLL VALUE SELECTION TABLE”部分进行设置#define U_M_PDIV 0x2#define U_M_SDIV 0x2#endif3、vi arch/arm/cpu/arm920t/s3c24x0/speed.c /根据设置的分频系数FCLK:HCLK:PCLK = 1:4:8修改获取时钟频率的函数get_PLLCLK函数修改第66行如下static ulong get_PLLCLK(int pllreg)struct s3c24x0_clock_power *clk_power = s3c24x0_get_base_clock_power(); ulong r, m, p, s; if (pllreg = MPLL) r =

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号