天天看點

vxWorks6.6 N270 D525 cpu的bsp配置總結

對硬碟的操作

使用sata硬碟,分區,引導區(vxc:)必須格式化為fat(fat16)格式,是以該分區大小有限制,不能超過4g(4g大小帶測試),設定c:為“活動的”;

主機上安裝dos工具,采用maxdos8.5 版本,進入dos環境下,格式化硬碟的引導區(sata硬碟的分區vxc: format c: /s/q),進入windows,将準備好的dos系統檔案拷貝至vx的引導分區(vxc:)

添加網卡

更新網卡驅動,按照bsp中的說明更新網卡檔案并make。

   install_dir\windriver\vxworks-6.6\target\src\hwif\end\make cpu=pentium4 tool=diab

建立工程

建立boot loader/bsp project 工程,如下圖1。 format 選項必須是 bin。config.h檔案可以不用修改。

編譯工程,将生成的bootrom.bin 改名為 bootrom.sys,拷貝到 vxc:盤下。

建立 image 工程,編譯,生成vxworks 檔案。拷貝到 vxc:盤下。

将sata盤連接配接目标機,啟動。加載bootrom 成功,開始初始化硬體,提示硬碟錯誤,可能和硬碟個數有關。随後加載vxworks 映像成功,進入vxworks作業系統。敲擊鍵盤,有反應。

圖1建立boot loader/bsp project 工程

修改 config.h 檔案中 硬碟的個數設定。編譯bootrom

#defineata0_num_drives   (1)    /*ata 0 number drives present */

#defineata1_num_drives   (0)          /* ata 1 number drives present */

圖2

修改 image工程,如下,編譯成功。運作後顯示界面正常。

voidusrappinit (void)

    {

#ifdef user_appl_init

    user_appl_init;      /* for backwards compatibility */

#endif

    printf("hello\n");

    /* add application specific code here */

    }

添加下圖中的元件後,編譯錯誤。去掉該元件後,編譯正常。

圖3

添加 對磁盤操作的代碼,注意變量的聲明必須放在最前面(c語言的文法規定)。

編譯執行後,提示磁盤操作錯誤,磁盤上沒有建立檔案。

在核心中添加 dos檔案系統,如下圖4,5,6。

增加 file system and disk utilities 核心。編譯測試。

測試速度沒有提高。

增加 dos fs cache handler 元件,如下圖7。

dosfs_default_fat_cache_suze   0x10000

dosfs_default_data_cache_suze  0x20000

dosfs_default_dir_cache_suze   0x2000

添加 kernelcomponents(default) 元件,選擇全部,

添加hrfs 元件

系統元件:

networkcomponents/network protocols/newwork application/telnet server

hardware/peripherals/serial/pc console

developmenttool components/target shell components/target shell

devs檢視裝置

atashow

16:

->cp( "/sd0/file1.dat","/sd0/dir2/f001.dat")

17.lockd:;vxsys d:

ifconfig("rtg0172.29.38.93 netmask 255.255.255.0 up")

ifconfig("rtg0up")

/*updated by ampro */

    /* boot form a network*/

    #define   include_boot_network

    #define   include_boot_ftp_loader

#undef include_boot_tftp_loader

 #undef include_boot_rsh_loader

#define ata0_config      (ata_geo_current | ata_dma_auto | \

                           ata_bits_32     | ata_pio_multi)

速度有提高,bit加寬,mod = dmault2

ld1,0,"d:/load/demo422.out"   加載out檔案

ld<demo422.out要先确定 ld的預設目錄用

   ls 檢視目前目錄 list the contents of a directory(windsh)

   pwd display the current default directory(windsh)

cd"d:/load"  改變目前目錄

添加usb識别。

另,在vxworks6.x的版本中存在一個bug,當用copy指令拷貝檔案到tffs或者u盤中,6.x版本上拷貝速度明顯遠遠慢于5.5。追蹤代碼發現copy使用的中間函數copystreams。這個函數的作用是從第一個檔案中讀出一個資料塊到緩沖區,然後寫入第二個檔案。vxworks5.5下,這個資料塊的大小是64k,對于1m的檔案隻需要調用16次檔案系統的寫函數;而vxworks6.x下,這個資料塊的大小是1k,拷貝1m的檔案需要調用1024次寫函數。每次調用寫函數都需要同步fat表和檔案描述。對于flash一般一個扇區在64kb或者128kb大小,将copystreams中的copy_block_size改為此大小可以明顯改善copy的速度。

copy_block_size的設定在c:\windriver-gppve-3.6-ia-eval\vxworks-6.6\target\src\usr\usrfslib.c檔案中(該檔案為隻讀,首先備份并去除隻讀屬性),修改此檔案中copy_block_size的大小為64kb或者128kb,然後打開vxworks development shell,進入該目錄,執行make cpu=pentium4 tool=diab指令。執行完畢後,重新編譯所有工程。

d525vxworks6.6 測試:

1.  bois設定sata only

2.  采用3011的bsp

3.  網卡驅動采用6763 bsp下的,要重新編譯,把.o檔案放到bsp\lib裡面

4. d525 vxworks6.6 bsp測試

d525vxworks6.8 測試:

2.  采用6763的bsp

3.  ata_num 1

4.  網卡驅動采用6763 bsp下的,要重新編譯

5.  d525 vxworks6.8

6.  硬碟識别,檔案操作會出錯。

"gei(0,0) host:vxworks h=192.168.1.250 e=192.168.1.222:ffffff00 u=target pw=target o=gei"

"ata=0,0(0,0) host:/ata00:4/vxworks h=192.168.1.250 e=192.168.1.222:ffffff00 u=target pw=target o=gei"

繼續閱讀