<del id="dhfrq"></del>

    1. <tr id="dhfrq"></tr>
      成人午夜激情在线观看,国产精品一线天粉嫩av,99精品国产综合久久久久五月天 ,一卡2卡三卡4卡免费网站,国产高清在线男人的天堂,五月天国产成人AV免费观看,67194熟妇在线观看线路,成人无码潮喷在线观看
      現(xiàn)在位置:范文先生網(wǎng)>理工論文>電子通信論文>VxWorks中的地址映射

      VxWorks中的地址映射

      時(shí)間:2023-02-21 00:06:34 電子通信論文 我要投稿
      • 相關(guān)推薦

      VxWorks中的地址映射

        作者Email:   ****
        
        在運(yùn)用嵌入式系統(tǒng)VxWorks和MPC860進(jìn)行通信系統(tǒng)設(shè)計(jì)開(kāi)發(fā)時(shí),會(huì)遇到一個(gè)映射地址不能訪問(wèn)的問(wèn)題。
        
        缺省情況下,VxWorks系統(tǒng)已經(jīng)進(jìn)行了如下地址的映射:
        
        memory地址、bcsr(Board Control and Status)地址、PC_BASE_ADRS(PCMCIA)地址、Internal Memory地址、rom(Flach memory)地址等,但是當(dāng)你的硬件開(kāi)發(fā)中要加上別的外設(shè)時(shí),如(falsh、dsp、FPGA等),對(duì)這些外設(shè)的訪問(wèn)也是通過(guò)地址形式進(jìn)行讀寫,如果你沒(méi)有加相應(yīng)的地址映射,那么是無(wú)法訪問(wèn)這些外設(shè)的。
        
        和VxWorks缺省地址映射類似,你也可以進(jìn)行相應(yīng)的地址映射。
        
        如下是地址映射原理及實(shí)現(xiàn):
        
        1、 地址映射結(jié)構(gòu)
        
        在Tornado\target\h\vmLib.h文件中
        
        typedef struct phys_mem_desc
        
        {
        
        void *virtualAddr;
        
        void *physicalAddr;
        
        UINT len;
        
        UINT initialStateMask;      /* mask parameter to vmStateSet */
        
        UINT initialState;          /* state parameter to vmStateSet */
        
        } PHYS_MEM_DESC;
        
        virtualAddr:你要映射的虛擬地址
        
        physicalAddr:硬件設(shè)計(jì)時(shí)定義的實(shí)際物理地址
        
        len;要進(jìn)行映射的地址長(zhǎng)度
        
        initialStateMask:可以初始化的地址狀態(tài):
        
        有如下?tīng)顟B(tài):
        
        #define VM_STATE_MASK_VALID                     0x03
        
        #define VM_STATE_MASK_WRITABLE                 0x0c
        
        #define VM_STATE_MASK_CACHEABLE               0x30
        
        #define VM_STATE_MASK_MEM_COHERENCY    0x40
        
        #define VM_STATE_MASK_GUARDED         0x80
        
        不同的CPU芯片類型還有其特殊狀態(tài)
        
        initialState:實(shí)際初始化的地址狀態(tài):
        
        有如下?tīng)顟B(tài):
        
        #define VM_STATE_VALID                           0x01
        
        #define VM_STATE_VALID_NOT                      0x00
        
        #define VM_STATE_WRITABLE                       0x04
        
        #define VM_STATE_WRITABLE_NOT                  0x00
        
        #define VM_STATE_CACHEABLE                     0x10
        
        #define VM_STATE_CACHEABLE_NOT           0x00
        
        同
        
        樣不同的CPU芯片類型還有其特殊狀態(tài)
        
        2、 初始化結(jié)構(gòu)
        
        在 Tornado\target\config\ads860\sysLib.c 文件中:
        
        PHYS_MEM_DESC sysPhysMemDesc [] =
        
        {
        
        {
        
        (void *) LOCAL_MEM_LOCAL_ADRS,
        
        (void *) LOCAL_MEM_LOCAL_ADRS,
        
        LOCAL_MEM_SIZE ,
        
        VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE |
        
        VM_STATE_MASK_CACHEABLE,
        
        VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE
        
        },
        
        {
        
        (void *) BCSR0,
        
        (void *) BCSR0,
        
        0x00001000,    /* 4 k - Board Control and Status */
        
        VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE |
        
        VM_STATE_MASK_CACHEABLE | VM_STATE_MASK_GUARDED,
        
        VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE_NOT |
        
        VM_STATE_GUARDED
        
        },
        
        ……
        
        {
        
        (void *) INTERNAL_MEM_MAP_ADDR,
        
        (void *) INTERNAL_MEM_MAP_ADDR,
        
        INTERNAL_MEM_MAP_SIZE,  /* 64 k - Internal Memory Map */
        
        VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE |
        
        VM_STATE_MASK_CACHEABLE | VM_STATE_MASK_GUARDED,
        
        VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE_NOT |
        
        VM_STATE_GUARDED
        
        },
        
        {
        
        (void *) ROM_BASE_ADRS,
        
        (void *) ROM_BASE_ADRS,
        
        ROM_SIZE,    /* Flach memory */
        
        VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE |
        
        VM_STATE_MASK_CACHEABLE ,
        
        VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE_NOT
        
        }
        
        };
        
        上面結(jié)構(gòu)中是缺省地址映射。
        
        3、 地址初始化
        
        在Tornado\target\src\config\ usrMmuInit.c 文件中
        
        通過(guò)函數(shù)usrMmuInit使地址映射生效
        
        4、 實(shí)現(xiàn)映射:
        
        如你定義flash地址為0x04000000開(kāi)始的8Mbyte地址,則可以如下進(jìn)行地址映射
        
        {
        
        (void *) 0x04000000,
        
        (void *) 0x04000000,
        
        0x00800000,                          /* 8 m - Flash window 1 */
        
        VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE,
        
        VM_STATE_VALID | VM_STATE_WRITABLE
        
        },
        
        5、 注意
        
        地址映射最小單位為1頁(yè),4K大小,所以len值最小為:0x00010000.
        
        按照如上步驟可以進(jìn)行你要訪問(wèn)的任何外設(shè)或芯片(諸如flash、DSP、PCI等)的地址映射,進(jìn)行地址映射后,就可以象操作內(nèi)存一樣對(duì)該地址進(jìn)行讀寫了。

      【VxWorks中的地址映射】相關(guān)文章:

      地址重映射在S3C4510B系統(tǒng)中的實(shí)現(xiàn)08-06

      VxWorks中怎么從Flash BOOT08-06

      映射08-17

      實(shí)時(shí)操作系統(tǒng)VxWorks在跟蹤雷達(dá)系統(tǒng)中的應(yīng)用08-06

      基于VxWorks的bootrom代碼改進(jìn)08-06

      數(shù)學(xué)教案-映射08-17

      上學(xué)期 2.1 映射08-17

      嵌入式操作系統(tǒng)VxWorks中TFFS文件系統(tǒng)的構(gòu)建08-06

      VxWorks漢字顯示解決方案08-06

      主站蜘蛛池模板: 久久久久成人精品无码中文字幕| 亚洲国产欧美在线人成| 四虎影视一区二区精品| 国产二区三区不卡免费| 中文字幕人妻精品在线| 99久久婷婷国产综合精品青草漫画 | 成在线人永久免费视频播放| 日韩精品人妻av一区二区三区| 麻豆国产传媒精品视频| 一个色的导航| 99久久国产综合精品成人影院| 东京热大乱系列无码| 99久久99久久久精品久久| 99久久99久久精品免费看蜜桃| 樱桃视频影院在线播放| 最近中文国语字幕在线播放| 色综合久久久久综合体桃花网| 99久久久无码国产精品免费 | 国产精品中文字幕第一页| 国产成人精品亚洲日本在线观看| 国产精品无码av不卡| 亚洲日韩性欧美中文字幕| 三级三级三级A级全黄| 亚洲AV午夜成人无码电影| 免费人成视频在线观看网站 | 亚洲国产成人无码电影| 国产成人午夜福利在线播放| 国产美女精品自在线拍免费| 狠狠躁夜夜躁无码中文字幕| 国产精品一品二区三四区| 亚洲综合激情五月色一区| 国产卡一卡二卡三免费入口 | 亚洲伊人久久综合成人| 午夜福利宅福利国产精品| 日本一区二区三区在线看| 人成午夜免费大片| 亚洲色偷偷色噜噜狠狠99| 精品国产一区二区三区av性色| 女人张开腿无遮无挡视频| 亚洲婷婷综合色高清在线| 99久久夜色精品国产亚洲|