• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      在DiskOnChip上構建VxWorks系統(tǒng)開發(fā)環(huán)境

      2016-10-19 11:13:09于金成
      中國科技博覽 2016年18期
      關鍵詞:嵌入式系統(tǒng)

      于金成

      [摘 要]結合工程實踐,介紹了在VxWorks實時操作系統(tǒng)下利用DiskOnChip建立開發(fā)環(huán)境的步驟、方法,可以滿足系統(tǒng)的使用要求,方面嵌入式系統(tǒng)的開發(fā)。

      [關鍵詞]嵌入式系統(tǒng);DiskOnChip; VxWorks

      中圖分類號:TP216 文獻標識碼:A 文章編號:1009-914X(2016)18-0368-01

      隨著嵌入式系統(tǒng)的廣泛使用,VxWorks下基于DiskOnChip的軟件開發(fā)也日益流行。本文詳細介紹了VxWorks下基于DiskOnChip的軟件開發(fā)環(huán)境的建立過程及方法,通過實驗,驗證了該方法方便可行,可以極大的方便軟件開發(fā)人員,提高嵌入式軟件的開發(fā)效率。

      1 在BSP中添加對DiskOnChip設備的支持

      下載DiskOnChip的驅(qū)動包并解壓,得到驅(qū)動MSYSVXW.o和.h頭文件。將所有的.h文件拷貝到宿主機文件下。使用ar命令從/target/lib/libi80486gnuvx.a庫文件中刪除tffsDrv.o tffsLib.o dosformt.o fatlite.o fltl.o nftllite.o flflash.o nfdc2148.o reedsol.o flsocket.o flbase.o等目標文件。例如,刪除tffsDrv.o,命令格式為:ar386 -dv libI80486gnuvx.a tffsDrv.o。

      然后執(zhí)行命令行:

      ar386 -cru libI80486gnuvx.a MSYSVXW-I80486.o將驅(qū)動文件MSYSVXW.o加入到BSP庫文件中;修改config.h文件,在config.h中增加對電子盤宏定義,同時,關閉TFFS的宏定義。

      #define INCLUDE_DISKONCHIP #undef INCLUDE_TFFS 修改bootConfig.c文件,在函數(shù)usrInit()之前增加下面的代碼:#ifdef INCLUDE_DISKONCHIP#include "flioctl.h"

      #include "fldrvvxw.h"#ifdef __STDC__void devSplit (char *fullFileName, char *devName);#elsevoid devSplit ();#endif /* __STDC__ */unsigned long tffsAddresses[] = {0xd0000, 0xd0000};

      STATUS usrTffsConfig(int drive, /* TFFS handle (usually zero) */int removable, /* 0 - nonremovable flash media */char * fileName /* mount point */{

      BLK_DEV * pBootDev;char bootDir [BOOT_FILE_LEN];/* create block device spanning entire disk (non-destructive!) */if ((pBootDev = tffsDevCreate (drive, 0)) == NULL)

      {printErr ("tffsDevCreate(%d,0) failed.\n", drive);return (ERROR);}/* split off boot device from boot file */devSplit (fileName, bootDir);/* initialize boot block device as dosFs device named */if (dosFsDevInit (bootDir, pBootDev, NULL) == NULL)

      {printErr ("dosFsDevInit failed.\n");return (ERROR);}ioDefPathSet(bootDir);return (OK);}LOCAL STATUS tffsInit(void){/* tell driver to detect single DiskOnChip */

      tffsSetup (1, tffsAddresses);if (tffsDrv () != OK){printErr ("Could not initialize.\n");return (ERROR);}printf ("Attaching to TFFS... ");dosFsInit (NUM_DOSFS_FILES); /* initialize DOS-FS */if (usrTffsConfig (0, 0, “/tffs0”) == ERROR){printErr ("usrTffsConfig failed.\n");return (ERROR);}printErr ("done.\n");

      return(OK); } LOCAL STATUS tffsLoad(int drive, /* TFFS handle (normally zero) */

      int removable, /* 0 - nonremovable flash media */char * fileName, /* file name to download */FUNCPTR * pEntry){int fd;if ((fd = open (fileName, O_RDONLY, 0)) == ERROR)

      {printErr ("\nCannot open \"%s\".\n", fileName);return (ERROR);}if (bootLoadModule (fd, pEntry) != OK)goto tffsLoadErr;close (fd);return (OK);tffsLoadErr:printErr ("\nerror loading file: status = 0x%x.\n", errnoGet ());close (fd);return (ERROR);}#endif /* INCLUDE_DISKONCHIP */

      修改bootConfig.c文件,在函數(shù)bootHelp()的helpMsg[]中增加下面的代碼段:

      #ifdef INCLUDE_DISKONCHIP

      "boot device: tffs=drive,removable file name: /tffs0/vxWorks","",

      #endif /* INCLUDE_DISKONCHIP */

      在bootConfig.c的函數(shù)bootHelp()中增加下面的代碼段:

      #ifdef INCLUDE_DISKONCHIP printf (" tffs");#endif /* INCLUDE_DISKONCHIP */

      在bootConfig.c的函數(shù)bootLoad()的最后增加下面的代碼段:

      #ifdef INCLUDE_DISKONCHIP

      if (strncmp (params.bootDev, "tffs", 4) == 0)

      {int drive = 0;int removable = 0;if (strlen (params.bootDev) == 4)

      return (ERROR);elsesscanf (params.bootDev, "%*4s%*c%d%*c%d", &drive, &removable);

      if (tffsLoad (drive, 0, params.bootFile, pEntry) != OK){printErr ("\nError loading file: errno = 0x%x.\n", errno);return (ERROR);}return (OK);}#endif /* INCLUDE_DISKONCHIP */

      在bootConfig.c中下面代碼段增加宏定義INCLUDE_DISKONCHIP:

      #if (defined (INCLUDE_SCSI_BOOT) || defined (INCLUDE_FD) || defined (INCLUDE_IDE) || defined (INCLUDE_ATA) || defined (INCLUDE_DISKONCHIP) || defined (INCLUDE_TFFS))

      最后,在bootConfig.c的函數(shù)bootCmdLoop中調(diào)用tffsInit()。

      #ifdef INCLUDE_DISKONCHIP tffsInit();#endif

      到這里,BSP包修改完畢,已經(jīng)增加了對DiskOnChip設備的支持,可以支持從DiskOnChip啟動VxWorks操作系統(tǒng)了。

      2 DiskOnChip的環(huán)境配置

      為了能夠從DiskOnChip中啟動VxWorks系統(tǒng),必須先將電子盤格式化成VxWorks可引導的。首先,制作一張DOS啟動盤并引導目標機,然后執(zhí)行dformat /win:d000 /s:doc123.exb命令實現(xiàn)對DiskOnChip的格式化和驅(qū)動安裝。用DOS啟動盤重新引導目標機,執(zhí)行vxsys命令,將DiskOnChip設備做成VxWorks可引導的。這樣,DiskOnChip就可以引導bootrom啟動了。

      3 結論

      DiskOnChip作為一種新型的存儲設備,以體積小、功耗低和方便使用等特點,使得它被廣泛應用于嵌入式系統(tǒng)。VxWorks系統(tǒng)由于它的強實時性和高可靠性,也成為嵌入式系統(tǒng)軟件開發(fā)的首先。本文詳細介紹了VxWorks下基于DiskOnChip設備的開發(fā)環(huán)境的建立方法和步驟,經(jīng)過實驗驗證,本方法切實可行,可以方便軟件開發(fā)人員,快速構建VxWorks環(huán)境下基于DiskOnChip的嵌入式系統(tǒng)的軟件開發(fā)。

      參考文獻:

      [1]洪艷偉. 基于DOC的嵌入式遠程數(shù)據(jù)采集系統(tǒng)開發(fā)[J]. 信息安全與技術,2011,12:64-65.

      [2]趙旭,羅晉,吳捷,楊杰,祝小蓮. TrueFFS文件系統(tǒng)技術研究及實現(xiàn)[J]. 信息安全與通信保密,2008,05:83-85.

      [3]甄鵬,趙磊,劉永亮,范靜麗. 在DOC上創(chuàng)建嵌入式實時Linux[J]. 微計算機信息,2008,29:68-70.

      [4]吳浩,吳非. 基于DOC的嵌入式系統(tǒng)引導研究與實現(xiàn)[J]. 微處理機,2007,03:114-116+119.

      猜你喜歡
      嵌入式系統(tǒng)
      Teaching Research on IoT and—Embedded System of Software Engineering
      計算機教育(2016年8期)2016-12-24 10:34:05
      嵌入式系統(tǒng)的開發(fā)與應用
      基于Xilinx口袋實驗室的組合邏輯電路設計實驗
      面向應用的智能專業(yè)嵌入式系統(tǒng)教學
      基于物聯(lián)網(wǎng)的遠程紅外控制器
      嵌入式系統(tǒng)軟件開發(fā)技術探析
      基于AVR單片機的SPI接口設計與實現(xiàn)
      辦公自動化系統(tǒng)的設計
      嵌入式系統(tǒng)在醫(yī)療器械中的應用分析
      基于物聯(lián)網(wǎng)項目驅(qū)動的嵌入式系統(tǒng)教學改革的研究與實踐
      合作市| 枣强县| 昭通市| 苗栗市| 屏南县| 永修县| 富平县| 万山特区| 朝阳县| 太和县| 定襄县| 永嘉县| 青冈县| 襄城县| 桃园县| 临漳县| 襄垣县| 阿克陶县| 深水埗区| 庆阳市| 山阳县| 洛川县| 宜州市| 陵川县| 布尔津县| 丽江市| 石嘴山市| 什邡市| 奉新县| 都安| 龙里县| 平顺县| 蕉岭县| 广汉市| 鄯善县| 赤城县| 城口县| 铜山县| 奉节县| 灌阳县| 卢湾区|