打印
[ARM Linux入门与实践]

请教啊南 烧写BIN问题

[复制链接]
3657|11
手机看帖
扫描二维码
随时随地手机跟帖
沙发
itelectron|  楼主 | 2009-8-30 22:06 | 只看该作者

图1.JPG (167.98 KB )

图1.JPG

使用特权

评论回复
板凳
itelectron|  楼主 | 2009-8-30 22:06 | 只看该作者
我烧写UBOOT BIN 到NAND
UBOOT BIN是 在LINUX 下用 ELDK4.2 MAKE的
我是按照 MDK 官方网 步骤做的
用BinEdit 把UBOOT BIN 转成 HEX 但是 烧写HEX 后 有问题

直接用 NOR里 的BIOS+DNW 下载BIN 是正确 的 现在不能确定 是不是BinEdit的问题还是MDK问题 (但是板自己带的BIOS不能烧写大于100K的BIN)

使用特权

评论回复
地板
itelectron|  楼主 | 2009-8-30 22:09 | 只看该作者
BIN文件 0903u-boot.rar (49.02 KB)

使用特权

评论回复
5
itelectron|  楼主 | 2009-8-30 22:11 | 只看该作者
BinEdit.zip (311.92 KB) BIN EDIT 软件

使用特权

评论回复
6
itelectron|  楼主 | 2009-8-30 22:42 | 只看该作者
下次买电脑 考虑买台式了 搞技术 没有 并口 串 口真麻烦

使用特权

评论回复
7
itelectron|  楼主 | 2009-8-31 13:01 | 只看该作者
不知道是不是 MDK 的  驱动问题 S3C2440_NAND_SP  初始化 代码 如下

int InitFlashController_HW (unsigned char *bus_width, unsigned char *adr_cycles, unsigned char *page_type, unsigned long clk) {

  if (NFCONF & (1 << 3)) {              // Advanced NAND Flash (Large Page)
    *bus_width   = 16;
    *page_type   = LARGE_PAGE;
    *adr_cycles  = (NFCONF & (1 << 1)) ? 5 : 4;
  } else {                              // Normal   NAND Flash (Small Page)
    *bus_width   = 8;
    *page_type   = SMALL_PAGE;
    *adr_cycles  = (NFCONF & (1 << 1)) ? 4 : 3;
  }

  // Remember parameters locally
  bus_width_hw   = *bus_width;
  adr_cycles_hw  = *adr_cycles;
  page_type_hw   = *page_type;

  // Set important registers to reset values as hardware reset is not functional
  // through JTAG reset pin
  INTMSK  = 0xFFFFFFFF;
  CLKCON  = 0x001FFFF0;
  GPACON  = 0xFFFFFFFF;

  // Disable Write Protect, drive nFWP pin high
  GPBUP  |= 0x0080;
  GPBCON |= 0x4000;
  GPBDAT |= 0x0080;

  // Set: TACLS = 3, TWRPH0 = 7, TWRPH1 = 7
  NFCONF  = (3 << 12) | (7 << 8) | (7 << 4);

  // Set: Lock spare ECC generation, Lock main data area ECC generation,
  //      Initialize ECC encoder/decoder, NAND flash controller enable
  NFCONT  = (1 << 6) | (1 << 5) | (1 << 4) | (1 << 0);

  while (!(NFSTAT & 0x01));             // Wait while controller busy
  NFCMMD  = NAND_CMD_RESET;             // Reset NAND flash
  while (!(NFSTAT & 0x01));             // Wait while controller busy

  NFSBLK  = (0x00000000 >> 9);          // NAND Flash prog start block address
  NFEBLK  = (0x08000000 >> 9);          // NAND Flash prog end   block address

  return (NAND_OK);
}

使用特权

评论回复
8
itelectron|  楼主 | 2009-8-31 13:04 | 只看该作者
我的 NAND FLASH 是 K9F1208

K9F1208.pdf

852.52 KB

使用特权

评论回复
9
itelectron|  楼主 | 2009-8-31 13:06 | 只看该作者
Organization
- Memory Cell Array
- X16 device(K9F1216X0A) : (32M + 1024K)bit x 16bit
- Data Register
- X8 device(K9F1208X0A) : (512 + 16)bit x 8bit
- • Automatic Program and Erase
- Page Program
- X8 device(K9F1208X0A) : (512 + 16)Byte
- Block Erase :
- X8 device(K9F1208X0A) : (16K + 512)Byte
• Page Read Operation
- Page Size
- X8 device(K9F1208X0A) : (512 + 16)Byte

使用特权

评论回复
10
itelectron|  楼主 | 2009-9-1 19:17 | 只看该作者
还是 木有人回答啊?

使用特权

评论回复
11
zyok| | 2009-10-25 18:39 | 只看该作者
还是 木有人回答啊?
itelectron 发表于 2009-9-1 19:17

看了你的签名,都以为你还是在自言自语呢;P

使用特权

评论回复
12
itelectron|  楼主 | 2010-1-2 22:05 | 只看该作者
呵呵我的并口卡星期1到

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:MARK: zhi kan ji shu

274

主题

2762

帖子

8

粉丝