Chinaunix首页 | 论坛 | 博客
  • 博客访问: 98144
  • 博文数量: 38
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 384
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-06 16:52
文章分类

全部博文(38)

文章存档

2014年(38)

我的朋友

分类: 嵌入式

2014-04-06 18:21:53

1.把uboot-2013-04目录下/tools/mkimage文件复制到ubuntu的/usr/bin/目录下

2.修改linux-3.8.3目录下的Makeflie,添加交叉编译链

点击(此处)折叠或打开

  1. ARCH        ?= arm
  2. CROSS_COMPILE    ?= /usr/local/arm/4.4.1/bin/arm-linux-

3.进入arch/arm/mach-s3c64xx目录,修改Kconfig,添加

点击(此处)折叠或打开

  1. config MACH_OK6410
  2.     bool "OK6410"
  3.     select CPU_S3C6410
  4.     select SAMSUNG_DEV_ADC
  5.     select S3C_DEV_HSMMC
  6.     select S3C_DEV_HSMMC1
  7.     select S3C_DEV_I2C1
  8.     select SAMSUNG_DEV_IDE
  9.     select S3C_DEV_FB
  10.     select S3C_DEV_RTC
  11.     select SAMSUNG_DEV_TS
  12.     select S3C_DEV_USB_HOST
  13. #    select S3C_DEV_USB_HSOTG
  14.     select S3C_DEV_WDT
  15.     select SAMSUNG_DEV_KEYPAD
  16.     select SAMSUNG_DEV_PWM
  17.     select HAVE_S3C2410_WATCHDOG if WATCHDOG
  18.     select S3C64XX_SETUP_SDHCI
  19.     select S3C64XX_SETUP_I2C1
  20.     select S3C64XX_SETUP_IDE
  21.     select S3C64XX_SETUP_FB_24BPP
  22.     select S3C64XX_SETUP_KEYPAD
  23.     help
  24.      Machine support for the feiling OK6410
    在arch/arm/mach-s3c64xx目录下,复制mach-mini6410.c到当前目录并改名为mach-ok6410.c,并把mach-ok6410.c文件中的所有的mini6410修改为ok6410,所有的MINI6410修改为OK6410
    修改arch/arm/mach-s3c64xx/mach-ok6410.c中的static struct mtd_partition ok6410_nand_part 函数

点击(此处)折叠或打开

  1. static struct mtd_partition ok6410_nand_part[] = {
  2.     [0] = {
  3.         .name    = "Bootloader",
  4.         .offset    = 0,
  5.         .size    = (1*SZ_1M),
  6.         .mask_flags = MTD_CAP_NANDFLASH,
  7.     },
  8.     [1] = {
  9.         .name    = "Kernel",
  10.         .offset    = (1*SZ_1M),
  11.         .size    = (5*SZ_1M),
  12.         .mask_flags = MTD_CAP_NANDFLASH,
  13.     },
  14.     [2] = {
  15.         .name    = "File System",
  16.         .offset    = (6*SZ_1M),
  17.         .size    = (200*SZ_1M),
  18.     },
  19.     [3] = {
  20.         .name    = "User",
  21.         .offset    = MTDPART_OFS_APPEND,
  22.         .size    = MTDPART_SIZ_FULL,
  23.     },
  24. };
    arch/arm/mach-s3c64xx目录下的Makefile中,在obj-$(CONFIG_MACH_MINI6410) += mach-mini6410.o下面添加obj-$(CONFIG_MACH_OK6410) += mach-ok6410.o
    修改drivers/mtd/nand/nand_ids.c文件,加入对MT的1G SLS nandflash的支持,添加{"NAND 1GiB 1,8V 8-bit", 0x38, 4096, 1024, 512*1024, LP_OPTIONS},//MT

4. 进入arch/arm/tools目录,打开mach-types文件,添加ok6410      MACH_OK6410      OK6410      1626

5.回到linux-3.8.3目录下,执行make menuconfig

    先选择Load an Alternate Configuration File,输入arch/arm/configs/s3c6400_defconfig 

    选择General Setup,打开Cross_compiler tool perfix,输入/usr/local/arm/4.4.1/bin/arm-linux- 

    选择System Type,取消SMDK6400 ,A&W6410,SMDK6410等平台,只选择OK6410

    选择Save an Alternate Configuration File,保存为.config然后退出。
    执行make uImage
    执行结束后可在arch/arm/boot目录下找到uImage文件

6.把uImage文件拷贝到SD卡中,开发板从nandflash中启动,执行以下命令将uImage拷贝到nandflash的100000-600000中
    

7.重新从从nandflash中启动开发板,结果如下
    



阅读(1678) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~