Chinaunix首页 | 论坛 | 博客
  • 博客访问: 423251
  • 博文数量: 71
  • 博客积分: 1525
  • 博客等级: 上尉
  • 技术积分: 605
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-05 17:28
文章分类

全部博文(71)

文章存档

2012年(21)

2011年(50)

分类: LINUX

2011-09-19 20:12:28

在花了几天学习skyeye,自己有点心得体会,把它写下来,希望对看到的人有些帮助!

我在网上搜了很多关于在skyeye下启动uboot都说得不是很完整,所以我决定把资料整理一下

1.关于skyeye,uboot是干什么的,我就不多说了!

2.我所使用的环境wm+fedora12+gcc4.4.2,skyeye-1-3-1_rc1是从官网上下载的,uboot是1.1.6

3,首先编译skyeye

tar xzvf skyeye-1-3-1_rc1.tar.gz
然后运行如下命令编译
./configure
make lib
make
其中 make lib 来编译第三方的库,make 来编译 skyeye 的源代码
make install_lib
make install
如果没有指定安装目录则默认安装在/opt目录下

安装之后,/opt/skyeye 应该有以下目录:
        bin include info lib testsuite
其中 bin 目录存放了 skyeye 的二进制程序,描述如下:
        mknandflashdump : 用来制作 nandflash 的镜像文件
        skyeye :skyeye 的命令行应用程序。
        Skyeye-gui: skyeye 的图形应用程序。
        uart_instance : 被 skyeye 调用的应用程序,功能为通过一个 xterm 终端来显示串口的输出。
include 目录存放了 skyeye 开发插件时所用到的头文件,这些头文件定义了 skyeye 提供的 API 函数的原
型。
info 目录存放了 info 格式的文档,暂时没有提供。
Lib 目录存放了 skyeye 的核心库 libcommon.so 和其他一些以动态库存在的插件。
testsuite 目录存放了一个简单的测试用例,用来演示 skyeye 的一些功能。

下一步编译uboot,uboot里面带了一个smdk2410的板子,我们就使用这个

首先解压u-boot源码,更改Makefile中

........................

ifeq ($(ARCH),arm)
CROSS_COMPILE =/home/jjinl/gcc/bin/arm-linux-
endif
......................

/home/jjinl/gcc/bin/arm-linux- 是我的交叉编译器路径,如果你把交叉编译器安装在系统搜索路径中就直接arm-linux-

下一步就执行

make distclean
make smdk2410_config
make all

我编译完后部分截图


在uboot目录下,我们会发现u-boot.bin和u-boot两个文件,其中u-boot.bin是raw的二进制文件。u-boot是ELF格式的。

编写skyeye.conf文件

关于skyeye.conf(这个文件是用来配置主板的),需要参考uboot下include/configs/.h,这里就是include/configs/smdk2410.h文件

分析"include/configs/smdk2410.h"

/*-----------------------------------------------------------------------
* Physical Memory Map
*/
#define CONFIG_NR_DRAM_BANKS    1          /* we have 1 bank of DRAM */

#define PHYS_SDRAM_1            0x30000000 /* SDRAM Bank #1 */起始地址

#define PHYS_SDRAM_1_SIZE       0x04000000 /* 64 MB */大小

#define PHYS_FLASH_1            0x00000000 /* Flash Bank #1 */

#define CFG_FLASH_BASE          PHYS_FLASH_1

所以我们的
mem_bank: map=M, type=RW, addr=0x30000000, size=0x01000000
要改为:
mem_bank: map=M, type=RW, addr=0x30000000, size=0x04000000

再看
/*-----------------------------------------------------------------------
* FLASH and environment organization
*/

#define CONFIG_AMD_LV400        1       /* uncomment this if you have a LV400 flash */
#if 0
#define CONFIG_AMD_LV800        1       /* uncomment this if you have a LV800 flash */
#endif

#define CFG_MAX_FLASH_BANKS     1       /* max number of memory banks */
#ifdef CONFIG_AMD_LV800
#define PHYS_FLASH_SIZE         0x00100000 /* 1MB */
#define CFG_MAX_FLASH_SECT      (19)    /* max number of sectors on one chip */
#define CFG_ENV_ADDR            (CFG_FLASH_BASE + 0x0F0000) /* addr of environment */
#endif
#ifdef CONFIG_AMD_LV400
#define PHYS_FLASH_SIZE         0x00080000 /* 512KB */
#define CFG_MAX_FLASH_SECT      (11)    /* max number of sectors on one chip */
#define CFG_ENV_ADDR            (CFG_FLASH_BASE + 0x070000) /* addr of environment */
#endif


#define PHYS_FLASH_1            0x00000000 /* Flash Bank #1 */起始地址
#define PHYS_FLASH_SIZE         0x00080000 /* 512KB */大小

所以我们的

mem_bank: map=M, type=RW, addr=0x00000000, size=0x01000000, file=./u-boot, boot=yes
要改为:
mem_bank: map=M, type=RW, addr=0x00000000, size=0x00080000, file=./u-boot, boot=yes

改完后我的skyeye.conf文件内容如下

------------------------------------------------------------------------以下内容

#skyeye config file sample

cpu: arm920t
mach: s3c2410x

#physical memory 
mem_bank: map=M, type=RW, addr=0x00000000, size=0x00080000,file=./u-boot,boot=yes
mem_bank: map=M, type=RW, addr=0x30000000, size=0x04000000

#all peripherals I/O mapping area
mem_bank: map=I, type=RW, addr=0x48000000, size=0x20000000
mem_bank: map=I, type=RW, addr=0x19000300, size=0x00000020
#net: type=cs8900a, base=0x19000300, size=0x20,int=9, mac=0:4:3:2:1:f, ethmod=tuntap, hostip=10.0.0.1
uart:mod=term
#lcd:type=s3c2410x,mod=gtk
#dbct:state=on

现在把u-boot.bin,和刚刚编写的skyeye.conf文件拷贝到一个文件夹中,我是在/home目录下新建了一个skyeyeT文件夹如下


接下来在此目录运行

/opt/skyeye/bin/skyeye -e u-boot

注意:因为我的skyeye没有安装在系统搜索路径中,所以要带上完整的路径

我运行的效果如下


输入run后就会有uart instance窗口弹出来

阅读(2814) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:(转)4.1 ARM处理器中CP15协处理器的寄存器

给主人留下些什么吧!~~