久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区

Rss & SiteMap

曙海教育集團論壇 http://www.bjzhda.cn

曙海教育集團論壇
共1 條記錄, 每頁顯示 10 條, 頁簽: [1]
[瀏覽完整版]

標題:VxWorks壓縮技術

1樓
wangxinxin 發表于:2010-11-17 9:28:59
VxWorks壓縮技術在嵌入式系統中,我們通常會需求VxWorks文件盡量小,比如通過串口、軟盤或tffs加載VxWorks的時候,如果文件太大,可能無法存儲,或加載失敗。下面介紹一種利用Tornado和VxWorks自帶的deflate和inflate,對VxWorks文件進行壓縮和解壓縮的技術。希望對大家有所幫助。
1  使用Tornado創建bootable的project,包括應用程式。對VxWorks進行適當的裁減和設置。
2  如果準備將VxWorks存儲于硬盤,軟盤或tffs上,應該在usrAppInit中使用usrNetEndDevStart和usrNetIfConfig啟動網絡接口。如果存儲于tffs上,還要修改usrNetBoot.c中:
if ( (strncmp (sysBootParams.bootDev, "scsi", 4) == 0)
|| (strncmp (sysBootParams.bootDev, "ide", 3) == 0)
|| (strncmp (sysBootParams.bootDev, "ata", 3) == 0)
|| (strncmp (sysBootParams.bootDev, "fd", 2) == 0))
為:
if ( (strncmp (sysBootParams.bootDev, "scsi", 4) == 0)
|| (strncmp (sysBootParams.bootDev, "ide", 3) == 0)
|| (strncmp (sysBootParams.bootDev, "ata", 3) == 0)
|| (strncmp (sysBootParams.bootDev, "tffs", 4) == 0)
|| (strncmp (sysBootParams.bootDev, "fd", 2) == 0))
3  在dos下運行 tornado/host/x86-win32/bin/torvars。
4  進入VxWorks所在的目錄,運行:
deflate VxWorks.z。這里我們默認.z文件是壓縮文件。
5  如果準備將VxWorks.z存儲于硬盤,軟盤或tffs上,需要首先創建相應的設備,并用dosFS初始化。如果是通過串口或網絡加載VxWorks.z,則需要初始化相應的接口。
6  修改bootConfig.c文件:
a. 在LOCAL STATUS netLoad 函數的 tftpXfer和 ftpXfer這一部分代碼結束的地方添加:
if ( strstr(fileName,".z") || strstr(fileName,".Z") )
{       
printf("
file %s is compressed, now begin uncompressing...
",fileName);
if (bootLoadModuleInflate(fd, pEntry) != OK)
    goto readErr;
}
    else if (bootLoadModule (fd, pEntry) != OK)
goto readErr;
  b. 在 LOCAL STATUS tffsLoad 函數的 usrTffsConfig和open這一部分代碼結束的地方添加:
    if ( strstr(fileName,".z") || strstr(fileName,".Z") )
    {       
printf("
file %s is compressed, now begin uncompressing...
",fileName);
if (bootLoadModuleInflate(fd, pEntry) != OK)
    goto readErr;
    }
    else if (bootLoadModule (fd, pEntry) != OK)
goto readErr;
  c. 在 LOCAL STATUS bootLoad 函數之前定義函
數 bootLoadModuleInflate的原型:
#define DECOMP_BUF_SIZE  (RAM_HIGH_ADRS - RAM_LOW_ADRS)
#define COMP_BUF_SIZE  (DECOMP_BUF_SIZE / 3)
STATUS bootLoadModuleInflate(int zfd, FUNCPTR *pEntry)
{
    char *imageBuf = NULL;
    char *compBuf = NULL;
    int  fd = -1;
    int  rv = ERROR;
    int  compSize, r;
    extern STATUS inflate(char *src, char *dst, int src_size);
    if ((compBuf = malloc(COMP_BUF_SIZE)) == NULL)
    {
  printErr("No enough memory for image buffer
");
  goto done;
    }
    compSize = 0;
    while ((r = read(zfd, compBuf + compSize, COMP_BUF_SIZE - compSize)) > 0)
  compSize += r;
    if (r < 0)
    {
  printErr("Read failed: errno = %d
", errnoGet());
  goto done;
    }
    if (compSize == COMP_BUF_SIZE)
    {
  printErr("Compressed image too large
");
  goto done;
    }
    printErr("Uncompressing %d bytes... ", compSize);
    if ((imageBuf = malloc(DECOMP_BUF_SIZE)) == NULL)
    {
  printErr("Not enough memory for decompression buffer
");
  goto done;
    }
    if ((r = inflate(compBuf, imageBuf, compSize)) < 0)
    {
  printErr("
Uncompress failed
");
  goto done;
    }
    printErr("
Loading image... ");
    memDrv();
    memDevCreate("mem:", imageBuf, DECOMP_BUF_SIZE);
    if ((fd = open("mem:0", O_RDONLY, 0)) < 0)
    {
  printErr("
Cannot open memory device.
");
  goto done;
    }
    if (bootLoadModule(fd, pEntry) != OK)
    {
  printErr("
Error loading: errno = %d
", errnoGet());
  goto done;
    }
    printErr("
");
    rv = OK;
  done:
    if (fd >= 0)
  close(fd);
    if (imageBuf)
  free(imageBuf);
    if (compBuf)
  free(compBuf);
    return rv;
}
d. 如果加載不成功,應讀懂上一段代碼,調整 RAM_HIGH_ADRS 和 RAM_LOW_ADRS的大小。
7  修改 config.h中的啟動參數,比如啟動設備為tffs=0,0(0,0),文件名為/tffs0/VxWorks.z等等,重新制作bootrom,并寫入flash。
8  啟動時,修改啟動參數,使系統仍然從網絡加載VxWorks,這個VxWorks中應該實現了ftp或tftp功能。通過這些功能,把VxWorks.z文件寫入存儲介質如tffs中。
9  重新啟動從tffs或硬盤,軟盤加載VxWorks,即可成功。
10 能首先通過網絡啟動,把啟動文件名改為 VxWorks.z來進行驗證壓縮和解壓縮。
11 以上只是考慮了從網絡和tffs來加載VxWorks.z壓縮文件,如果從fd, ata等加載,只需在相應地方添加和6.a中相同的代碼即可。
12 本方法在ppc850上,利用tffs和網絡加載進行了驗證,完全適用

共1 條記錄, 每頁顯示 10 條, 頁簽: [1]

Copyright © 2000 - 2009 曙海教育集團
Powered By 曙海教育集團 Version 2.2
Processed in .04688 s, 2 queries.
久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
东方欧美亚洲色图在线| 精品日本一线二线三线不卡| 韩国av一区二区三区在线观看| 欧美一卡二卡三卡四卡| 日本高清免费不卡视频| 日本福利一区二区三区| 久久99精品久久久久久久久久| 日韩亚洲国产中文字幕欧美| 欧美色倩网站大全免费| 欧美色爱综合网| 蜜桃成人免费视频| 精品高清视频| 国产一区二区三区四区hd| 999在线观看免费大全电视剧| 成人av网在线| 国产99精品国产| 成人永久看片免费视频天堂| 丰满少妇在线播放bd日韩电影| 丁香天五香天堂综合| 国产精品69毛片高清亚洲| 日本大胆欧美人术艺术动态| 免费观看91视频大全| 免费高清在线视频一区·| 麻豆国产欧美一区二区三区| 久久av中文字幕片| 国产精品一线二线三线| 成人伦理片在线| 99久久国产综合精品女不卡| 91麻豆文化传媒在线观看| 成人欧美一区二区三区在线观看 | 国产欧美日韩综合一区在线观看| 91蜜桃网站免费观看| 成人激情直播| 不卡视频一区二区| 青青草原亚洲| 在线观看欧美黄色| 欧美色倩网站大全免费| 91精品国产福利在线观看| 精品国产伦一区二区三区观看体验| 久久久久久99精品| 亚洲欧洲成人精品av97| 亚洲一区二区三区四区的| 久久电影网站中文字幕| 老司机精品视频导航| 成人免费精品视频| 成人在线视频一区二区| 99视频日韩| 99理论电影网| 欧美日韩国产三区| 欧美午夜寂寞影院| 欧美三级乱人伦电影| 久久精品夜色噜噜亚洲aⅴ| 亚洲日韩欧美一区二区在线| 免费一级欧美片在线观看| 成人免费看视频| 国产精品一区二区三区不卡| 美女爽到高潮91| 91麻豆精品一区二区三区| 青青草国产精品| 成人一区二区在线观看| 久久狠狠久久综合桃花| 亚洲精品国产精品国自产| 日韩女优毛片在线| 亚洲午夜久久久久久久久久久| 成人免费va视频| 中文字幕人成一区| 国产精品久久久久久久久图文区 | 日韩女优毛片在线| 亚洲不卡一区二区三区| 国产精品v欧美精品v日韩| 欧美另类变人与禽xxxxx| 亚洲一区二区三区在线| 国产一区二区三区四区hd| 精品三级在线看| 国产米奇在线777精品观看| 日本一区免费看| 国产精品免费丝袜| 99久久伊人久久99| 欧美日本一道本在线视频| 亚洲第一福利视频在线| 久久久久久久久久码影片| 精品国产露脸精彩对白| 久久99精品国产.久久久久久| 日本不卡二区高清三区| 久久久精品天堂| 久久99热99| 亚洲免费久久| 在线电影欧美成精品| 五月激情六月综合| 国产精品区一区| 日韩欧美国产综合| 亚洲成av人在线观看| 国产综合18久久久久久| 欧美www视频| 国产中文字幕精品| 日韩亚洲一区在线播放| 久久精品视频一区| 国产精品综合视频| 亚洲乱码国产乱码精品天美传媒| 亚洲码国产岛国毛片在线| 91免费国产在线观看| 欧美福利电影网| 蜜臀av性久久久久蜜臀aⅴ| 日本一区二区久久精品| 国产精品久久久久久户外露出| 日本视频免费一区| 中文字幕在线中文字幕日亚韩一区 | 亚洲一区视频在线观看视频| 91黄在线观看| 欧美一区二区不卡视频| 久久爱www久久做| 一区二区三区欧美成人| 亚洲久本草在线中文字幕| 亚洲国产精品视频一区| 亚洲女与黑人做爰| 精品午夜一区二区| 中文字幕第一区综合| 51精品国产人成在线观看| 久久综合久久99| 91精品国产色综合久久不卡电影| 另类的小说在线视频另类成人小视频在线 | 国产女人水真多18毛片18精品视频| 国产精品99久久久| 欧美日韩一二区| 韩国成人在线视频| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 久久精品二区| 亚洲制服丝袜av| 亚洲乱码国产乱码精品天美传媒| 亚洲男人电影天堂| 欧美日韩综合精品| 一区二区三区成人| 亚洲国产精品毛片| 亚洲自拍偷拍av| 欧美高清激情brazzers| 国产精品99精品久久免费| 91精品啪在线观看国产60岁| 国产成人精品亚洲777人妖| 欧美一区二视频| 成人一区二区在线观看| 在线成人av影院| 九一久久久久久| 欧美一区二区三区视频在线| av一本久道久久综合久久鬼色| 日韩一区二区电影| 99re视频在线播放| 亚洲美女偷拍久久| 色综合久久六月婷婷中文字幕| 日本成人在线不卡视频| 7777精品伊人久久久大香线蕉的 | 97se亚洲国产综合自在线观| 国产精品不卡视频| 亚洲国产精品www| 卡一卡二国产精品| 欧美大白屁股肥臀xxxxxx| 999精品在线观看| 一区二区三区欧美视频| 色呦呦国产精品| 国产精品自拍av| 91精品欧美久久久久久动漫| 久久精品五月婷婷| 视频一区二区三区在线| 欧美日韩aaaaaa| 国产精品国模大尺度私拍| 一区二区日韩av| 在线不卡a资源高清| 成人av在线观| 亚洲一二三区不卡| 欧美日韩aaaaa| 国产高清精品一区二区| 亚洲大片在线观看| 日韩精品中文字幕在线一区| 97久久夜色精品国产九色| 蜜臀久久99精品久久久久宅男| 日韩精品一区二区三区在线| 欧美裸体网站| 日韩一区二区免费高清| 精品一区二区三区视频日产| 亚洲风情在线资源站| 国产精品每日更新在线播放网址| 色婷婷av久久久久久久| 91美女在线观看| 麻豆精品精品国产自在97香蕉 | 国产精品久久久久免费| 日韩国产成人精品| 国产精品毛片高清在线完整版| 中国人体摄影一区二区三区| 97国产超碰| 国产一区二区在线视频| 国产精品久久久久天堂| 欧美午夜宅男影院| 欧美在线一二三区| 99久久亚洲一区二区三区青草 | 日韩欧美一区在线| 在线免费观看一区| 精品网站在线看| 成人动漫在线一区| 日韩高清不卡一区| 国产精品国产三级国产| 欧美一级夜夜爽|