ARM開發心得之遇到問題(三)

 

五、U-BOOT安裝後出現的三個問題

(一)ASK:自己作的扳子,最近調試時出現了一個問題,就是如下所示:

U-Boot 1.1.1----www.21spacetime.net (Aug 22 2008 - 12:04:08)

U-Boot code: 0C700000 -> 0C721338  BSS: -> 0C755C84

RAM Configuration:

Bank #0: 0c000000  8 MB

## Unknown FLASH on Bank 0 - Size = 0x00000000 = 0 MB

Flash:  0 kB

*** Warning - bad CRC, using default environment

In:    serial

Out:   serial

Err:   serial

Hit any key to stop autoboot:  0

## Booting image at 00050000 ...

Bad Magic Number

ANSWER:原因就是無法正確顯示FLASH容量,修改步驟如下:

自己用的是sst39VF6401B

1.修改board/hfrk/common flash.c   static ulong flash_get_size (vu_long *addr, flash_info_t *info)中增加目標板芯片

       case (CFG_FLASH_WORD_SIZE)SST_ID_39VF6401B:  /* add by liyingxiang */

              info->flash_id += FLASH_SST39VF6401B; /*  flash id unkonw */

              info->sector_count = 128;

              info->size = 0x00800000;

              break;                         /* => 8 MB             */

 

2.修改u-boot/include/flash.h   增加flash的型號說明。

#define SST_ID_39VF6401B 0x236D236D    /* 39xVF3201 (8M = 4K *1024K x 16bit --changed by liyingxiang     */

#define FLASH_SST39VF6401B       0x236D        /* SST 39VF6401B ID (4M  )  added by liyingxiang*/

 

3.修改u-boot/include/configs/hfrks3c44b0.h文件

#define PHYS_FLASH_SIZE             0x00800000 /* 8 MB ---- changed by liyingxiang */

經過上述修改,一切都搞定了,搞了幾天原因在於自己沒有找到正確的ID號,自己一直用的ID號是6401的,而不是6401B的(原來這個是有區別的)。

現在改完之後看看還是比較爽的阿。呵呵

 

U-Boot code: 0C700000 -> 0C7212E4  BSS: -> 0C755C30

RAM Configuration:

Bank #0: 0c000000  8 MB

Flash:  8 MB

曾經一度就是這個原因導致我無法下載uclinux,無法擦除FLASH的程序區,強烈的BS自己不嚴謹的態度。

(二)關於s3c44b0  *** Warning - bad CRC, using default environment問題的解決

這是下載U-BOOT之後遇到的一個小問題,但是網上查了若干資料都不能得到有效的解決辦法:

現在問題如下所示:

U-Boot 1.1.1----www.21spacetime.net (Aug 27 2008 - 16:06:54)

 

U-Boot code: 0C700000 -> 0C7212E4  BSS: -> 0C755C30

RAM Configuration:

Bank #0: 0c000000  8 MB

Flash:  8 MB

*** Warning - bad CRC, using default environment

 

In:    serial

Out:   serial

Err:   serial

Hit any key to stop autoboot:  0

 

就是一個警告:*** Warning - bad CRC, using default environment,解決辦法就是在U-BOOTshell

環境下輸入SAVE即可,原因是以前啓動時是沒有保存參數,現在保存好了之後,問題迎刃而解。

 

hfrks3c44b0=>save

Saving Environment to Flash...

Un-Protected 1 sectors

Erasing Flash...

 done

Erased 1 sectors

Writing to Flash... done

Protected 1 sectors

hfrks3c44b0=>

(三)關於超級終端無法正確顯示的問題:

該問題可能是由於串口的線路上的串擾造成,可以適當降低波特率,將其值改爲19200,該問題就可以解決了。需要在U-BOOT下修改其參數:set baudrate 19200之後save即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章