哈尔滨理工大学软件工程专业08-7李万鹏原创作品,转载请标明出处
http://blog.csdn.net/woshixingaaa/archive/2011/02/09/6175141.aspx
因为串口的波特率问题纠结了我2天,嘿嘿。
1.首先创建自己板子的目录
cd u-boot-2009.08
mkdir board/samsung/TE2440II
cp board/samsung/smdk2410/* board/samsung/TE2440II/
mv board/samsung/TE2440II/smdk2410.c board/samsung/TE2440II/TE2440II.c
2.添加配置文件
cp include/configs/smdk2410.h include/configs/TE2440II.h
在include/configs/smdk2410.h include/configs/TE2440II.h中添加
#define CONFIG_SKIP_LOWLEVEL_INIT 1
因为是先在SDRAM中运行,所以要跳过底层的初始化。暂时没有添加CONFIG_2440,用原来的CONFIG_2410,以提高移植速度。
注意暂时不要添加#define CONFIG_SKIP_RELOCATE_UBOOT 1
否则就要更改你的下载地址为0x33f80000,让他去搬运代码吧
3.修改board/samsung/TE2440II/ 目录下的Makefile,把COBJS := 修改为
COBJS := TE2440II.o flash.o
4.修改顶层Makefile
TE2440II_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t TE2440II samsung s3c24x0
注意有个Tab键
5. 修改顶层Makefile文件,在CROSS_COMPILE ?=后面添加自己的交叉编译工具。
CROSS_COMPILE ?= /usr/local/arm/4.3.2/bin/arm-linux-
6.完成这几步后编译一下
make TE2440II_config
make
下到SDRAM中,终端应该没有任何信息,需要设置波特率。
1. 修改TE2440II.c文件
#elif FCLK_SPEED==1 /* Fout = 405MHz */
#define M_MDIV 0x7f
#define M_PDIV 0x2
#define M_SDIV 0x1
#endif
2. 修改cpu/arm920t/start.S
外部晶振为12MHz,通过MPLLCON设置MPLL为405M
#if defined(CONFIG_S3C2410)
#define MPLLCON 0x4C000004
#define UPLLCON 0x4c000008
#define LOCKTIME 0x4C000000
#define CAMDIVN 0x4C000018
ldr r0,=LOCKTIME
ldr r1,=0xffffffff
str r1,[r0]
//清除摄像头分频寄存器的值
ldr r0,=CAMDIVN
mov r1,#0
str r1,[r0]
ldr r0, =CLKDIVN
mov r1, #5
str r1,[r0]
//手册说HDIVN不为0,加这个
mrc p15, 0, r1, c1, c0, 0 //read ctrl register
orr r1, r1, #0xc0000000 //Asynchronous
mcr p15, 0, r1, c1, c0, 0 //write ctrl register
ldr r0, =UPLLCON //同时修改UPLLCON和MPLLCON需要先修
ldr r1, =0x00038022 //改UPLLCON,且之间要间隔至少7个nop
str r1,[r0] //手册有些
nop
nop
nop
nop
nop
nop
nop
nop
ldr r0, =MPLLCON
ldr r1, =0x0007f021
str r1,[r0]
#endif
3. 修改cpu/arm920t/s3c24x0/speed.c
由于S3C2440和S3C2410的MPLL计算公式改变了,所以要改一下。
get_PLLCLK改成这样
static ulong get_PLLCLK(int pllreg)
{
S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
ulong r, m, p, s;
if (pllreg == MPLL)
r = clk_power->MPLLCON;
else if (pllreg == UPLL)
r = clk_power->UPLLCON;
else
hang();
m = ((r & 0xFF000) >> 12) + 8;
p = ((r & 0x003F0) >> 4) + 2;
s = r & 0x3;
if (pllreg == MPLL) //MPLL的算法和UPLL是不同的。这里m=2*m
{
m <<= 1;
}
p = ((r & 0x003F0) >> 4) + 2;
s = r & 0x3;
return ((CONFIG_SYS_CLK_FREQ * m) / (p << s));
}
get_HCLK改成这样
/* return HCLK frequency */
ulong get_HCLK(void)
{
S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
return get_FCLK()/4;
//return((clk_power->CLKDIVN & 0x2) ? get_FCLK()/2 : get_FCLK());
}
get_PCLK改成这样
/* return PCLK frequency */
ulong get_PCLK(void)
{
S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
return get_HCLK()/2;
//return((clk_power->CLKDIVN & 0x1) ? get_HCLK()/2 : get_HCLK());
}
4. 我出问题的地方是串口,显示的基本跟正常的一样,但是显示为乱码,是串口波特率的问题。在drivers/serial/serial_s3c24x0.c中,修改
uart->UBRDIV = 27;
我直接设定了,不用鸟u-boot再鸟算了,他自己怎么也算不对,我帮他。
5. make TE2440II_config
make
下载到SDRAM中,哈哈。
分享到:
相关推荐
u-boot.bin_tekkaman_2009.11.bz2 参考网站:Tekkaman Ninja ...已经针对mini2440 编译好的U-boot-2009.11 的bin文件在Tekkaman Ninja 的博客中有,可以直接烧入, 链接:u-boot.bin_tekkaman_2009.11.tar.bz2
目的:在ubuntu下编译 在arm开发板上运行 第一步:将arm-linux-gcc-4.3.2.bz2拷贝到虚拟机的任意目录 第二步:查看当前系统是否支持arm-linux-gcc 如果不存在 则继续如下步骤: 第三步:在/usr/local创建一个文件夹...
看了就知道怎么样!移植u-boot-2009.11至广嵌GEC2440开发板
u-boot最新版本,支持更多的处理器,可以很方便的移植到你自己的开发板 平台。
linux或者开发板编译工具,gcc main.c -o main生成可执行文件,,,运行 ./main QT交叉编译工具:Qt-Embedded-5 (1)把我给的5.4.0的编译器拷贝到家目录,然后解压 tar -xf arm-linux-gnueabi-5.4.0.tar.xz (2)配置...
u-boot-2011.09-2012R1-RC4.tar.bz2适用于上海远景bf609开发板,我已按其教程移植过了.这个uboot压缩包我先放到了一个文件夹里,再在xp下压缩为zip压缩包的,所以用的话先在xp下解压后才能得到里面的u-boot-2011.09-...
移植u-boot-2009.03到友善之臂mini2440开发板
ARMBoot-1.1.0 在 mini2440 开发板上的移植 之稻草人手记 文章配套源码包3 armboot-org2mini2440.diff:patch补丁包 补丁方法:将原始的armboot程序包armboot-1.1.0.tgz 解开后,将armboot-org2mini2440.diff...
主 机:ubuntu10.04 开发板:Mini2440--256MB Nand, Kernel:2.6.36.1 编译器:arm-linux-gcc-4.3.2.tgz u-boot:u-boot-2010.03.tar.gz
资源包括hfrk2410开发板上移植的u-boot.bin,uImage以及zImage生成uImage所用到的mkimage工具和生成方法,在恒丰锐科2410开发板亲测
u-boot-2009.03代码,适用于多种开发板,如S3C2440,S3C2410等,为uboot最新的代码
可以移植到arm开发板。操作系统
个人移植并可以正常使用的uboot,适用于飞凌ok335xd开发板,米尔科技c335x开发板,基于u-boot官方u-boot-2018.05源码移植,并有git记录。 配置文件am335x_ok335xd_defconfig am335x_myd_defconfig
XILINX FPGA linux内核文件,适用于黑金AX7020开发板,带有黑金的驱动板载的驱动,实测有用
这个是mini2440开发板针对u-boot.2010.03版本的配置与移植教程
移植u-boot-2010.03以支持JZ2440开发板,该资源为源代码,编译可直接运行于JZ2440开发板
u-boot-2013.10 版本u-boot的修改文件,支持realarm210开发板。
《【原创】u-boot-2011.03在mini2440/micro2440上的移植》一文中的uboot,该文地址为 http://blog.csdn.net/csuwzc/archive/2011/05/29/6453623.aspx 再次提醒:我在发布资源时用的是MACH_TYPE_MICRO2440,之前的...
u-boot-2440-nandflash,2440上的源代码,2440开发板资料
基于Jz2440开发板移植u-uboot-2016.03,制作的补丁文件。。。。。。。。。。。。。。。。。