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

Rss & SiteMap

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

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

標題:net_config_t數據結構:

1樓
wangxinxin 發表于:2010-11-19 9:09:17
 SkyEye支持網絡模擬,目前描述網絡配置的數據結構是net_config_t,它的具體內容如下:

typedef struct {
   int state;
   unsigned char macaddr[6];
   unsigned char  hostip[4];
   int ethmod;
   int fd;                    
   int hubindex;
   int (*net_init)(int index, unsigned char *macaddr, unsigned char *hostip);
   unsigned char (*net_output)(int if_fd, ARMul_State *state,\
                   unsigned char startpage,unsigned short packet_len);
   void  (*net_input)(int if_fd, ARMul_State *state);
}net_config_t;

     其中各個field的含義描述如下:
●state:是一個布爾變量,為1表示網絡芯片工作,為0表示網絡芯片不工作
●macaddr:用來保存網絡芯片的mac地址
●hostip:用來保存主機上與SkyEye進行網絡通信所用的IP地址


●ethmod:表示與主機的模擬網絡交互的方式,目前定義的交互方式有:
#define NET_MOD_LINUX 0
#define NET_MOD_TUNTAP 1
#define NET_MOD_WIN 2
#define NET_MOD_VNET 3
目前可以使用的兩種方式有 NET_MOD_VNET(與SkyEye提供的vnet.o內核模塊進行網絡交互)和 NET_MOD_TUNTAP(與linux的tun.on內核模塊進行網絡交互)。
●fd:表示SkyEye用于與主機進行網絡交互的設備文件描述符
●hubindex:用于NET_MOD_VNET方式,表示所處的是第幾個虛擬hub網段。如果它的值是i,則處于第i個hub網段中。
●net_init/net_input/net_output:這三個函數與具體的模擬網絡交互方式有關,分別完成初始化操作和與主機網絡的輸入輸出操作。相關的實現在文件skyeye_net_*.c中。
    有關8019AS模擬芯片(NE2000兼容)的具體配置與實現位于文件skyeye-ne2k.[ch]中。

6、ARMul_State數據結構:
    上面講述的是與SkyEye的硬件配置相關的數據結構,可以理解為一種靜態硬件配置的數據結構,這些數據結構中的域基本不隨著SkyEye模擬硬件的運行而改變。而ARMul_State描述的是一種動態硬件配置的數據結構,它保存了隨著SkyEye模擬硬件的運行而時刻改變的硬件數據。

ARMul_State中的域數量繁多,大體分為:
與CPU模擬相關的域、與協處理器模擬相關的域、與內存和MMU/CACHE相關的域
、與統計相關的域、與具體開發板相關的io部分。


這里只描述其中關鍵的部分:
●與CPU模擬相關的域 :
ARMword Reg[16]:CPU當前模式下的寄存器值
ARMword RegBank[7][16]:CPU所有七種模式下的寄存器值
ARMword Cpsr:CPU的當前程序狀態寄存器
ARMword Spsr[7]:CPU所有七種模式下的程序狀態保存寄存器
ARMdword Accumulator:40bit的累加寄存器,目前用于xscale體系結構中
ARMword NFlag, ZFlag, CFlag, VFlag, IFFlags, Sflag,TFlag:各種狀態位
ARMword Bank:CPU對應模式寄存器組的索引值
ARMword Mode:CPU模式索引值
ARMword instr, pc:pc是目前正在執行的程序指針,instr是pc所指地址的內容
ARMword loaded, decoded:loaded是正在加載的指令,decoded是正在解碼的指令
unsigned NfiqSig:FIQ信號
unsigned NirqSig:IRQ信號


●    與協處理器模擬相關的域:
ARMul_CPInits *CPInit[16]:16個協處理器的初始化函數
ARMul_CPExits *CPExit[16]:16個協處理器的退出函數
ARMul_LDCs *LDC[16]:16個協處理器的LDC指令函數
ARMul_STCs *STC[16]:16個協處理器的STC指令函數
ARMul_MRCs *MRC[16]:16個協處理器的MRC指令函數
ARMul_MCRs *MCR[16]:16個協處理器的MCR指令函數
ARMul_CDPs *CDP[16]:16個協處理器的CDP指令函數
ARMul_CPReads *CPRead[16]:16個協處理器的讀CP寄存器函數
ARMul_CPWrites *CPWrite[16]:16個協處理器的寫CP寄存器函數
unsigned char *CPData[16]:16個協處理器的數據指針
ARMword CP14R0_CCD:在xscale體系結構的CP14協處理器中,用于統計時鐘周期


●與內存和MMU/CACHE相關的域:
mmu_state_t mmu:mmu/cache的數據結構,在armmmu.h中定義,詳解請參考"SkyEye的MMU/CACHE和Memory模擬實現"一節
mem_state_t mem:memory的數據結構,在armmem.h中定義,詳解請參考"SkyEye的MMU/CACHE和Memory模擬實現"一節
與統計相關的域
unsigned long NumScycles, NumNcycles, NumIcycles, NumCcycles, NumFcycles:用于統計不同狀態下的周期數
unsigned long NumInstrs:當前執行的指令數
其它與特定CPU和開發板相關的各種io寄存器的定義放到了各個與開發板相關的文件中,如skyeye_mach_at91/ep7312/pxa/sa.c等處,詳解請參考"SkyEye的開發板IO模擬實現"。

●與具體開發板相關的io部分:
ARMul_io mach_io;
其中ARMul_io的結構目前為

struct ARMul_io
{
ARMword *instr; //to display the current interrupt state
ARMword *net_flag;//to judge if network is enabled
ARMword *net_int; //netcard interrupt

ARMword *lcd_is_enable;       //turn lcd on?
ARMword *lcd_addr_begin;   //the begining display mem addr of lcd
ARMword *lcd_addr_end;     //the end      display mem addr of lcd
};

instr:是記錄當前的中斷狀態
net_flag:判斷網絡選項是否打開
net_int:用來記錄網絡中斷號
lcd_is_enable:來記錄LCD是否使能
lcd_addr_begin:記錄lcd顯存的起始位置
lcd_addr_end:記錄顯存的結束位置

7、SkyEye邏輯執行流程:
    了解SkEye的總體邏輯執行流程,對了解硬件的體系結構和軟件/硬件的接口有較大幫助。從總體上,可把SkyEye邏輯執行流程按執行的時間順序劃分為兩個階段:
1、SkyEye加載與配置處理過程
2、SkyEye模擬執行過程

    第一階段為第二階段的正常執行做了充分的準備,具體的執行內容包括:
●讀入帶調試信息的操作系統執行文件(由GDB完成)
●根據配置文件skyeye.conf的信息配置模擬硬件
●如果skyeye.conf中存在binary image格式文件,加載這些文件
●根據操作系統執行文件的內容加載調試信息(由GDB完成)
●根據操作系統執行文件信息加載執行文件中的代碼段和數據段等(由GDB完成)
●執行相關模擬硬件的初始化函數
    其中總的初始化函數是位于wrapper.c中的init函數,它調用如下函數完成整個模擬硬件的初始化工作:

ARMul_EmulateInit:初始化與執行機器指令相關的數據ARMul_ImmedTable和ARMul_BitList
ARMul_NewState:初始化結構為ARMul_State的全局變量state
skyeye_option_init:初始化全局變量skyeye_config
skyeye_read_config:讀取配置文件skyeye.conf并根據配置文件進行相關配置
nic_init:根據配置文件信息配置網絡模擬環境
skyeye_config.mach->mach_init(state, skyeye_config.mach):根據配置文件信息配置CPU和開發板的相關I/O函數
ARMul_Reset(state):進一步初始化全局變量state,并根據配置文件信息配置MMU/CACHE和memory
io_reset:初始化特定CPU和開發板的IO寄存器

第二階段根據特定硬件的配置描述,開始執行特定硬件模擬處理。整個過程圍繞CPU執行指令展開,根據模擬硬件可分為如下幾個階段:

●CPU執行三級流水線處理,即取指令、譯碼、執行指令,主要處理集中在armemu.c中的ARMul_Emulate32/26函數。
●在執行指令過程中,如果有中斷產生,CPU調整運行模式,并改變指令指向中斷向量起始地址,主要處理集中在arminit.c中的函數ARMul_Abort函數、armemu.c中的ARMul_Emulate32/26函數。
●在執行指令過程中,如果指令是協處理器指令,則把指令轉交給協處理器模擬模塊進行進一步處理,主要處理集中在文件armcopro.c、xscale_copro.c等文件中。
●在執行指令過程中,如果發現指令是訪問內存/IO的指令,則根據SkyEye模擬的特定CPU是否有MMU/CACHE分別進行處理:
    如果CPU有MMU/CACHE,則進入MMU/CACHE模擬模塊,如果還需要內存訪問,則進入memory模擬模塊處理。如果訪問地址屬于IO地址空間,則轉到特定CPU和開發板的IO模擬模塊處理。
    如果CPU沒有MMU/CACHE,則直接進入memory模擬模塊處理。如果訪問地址屬于IO地址空間,則轉到特定CPU和開發板的IO模擬模塊處理。
    處理訪問內存/IO的指令的相關內容集中在armvirt.c;與MMU/CACHE處理、read/write buffer(用于StrongARM和XScale體系結構的模擬)處理相關的文件包括armmmu.[ch]、mmu/*.[ch];與訪問memory模擬有關的內容主要集中在armmem.[ch]中。
    如果要執行IO地址訪問,這具體的處理過程由特定CPU和開發板IO模擬模塊中的read/write_byte/halfword/word函數處理。
為了模擬外設的執行,在執行指令過程的每一個周期,會執行一個io_do_cycle函數,它會調用特定CPU和開發板的IO模擬模塊中的*_io_do_cycle函數,完成對時鐘、網絡輸入輸出、UART輸入輸出等的處理,并根據條件產生中斷信號。
共1 條記錄, 每頁顯示 10 條, 頁簽: [1]

Copyright © 2000 - 2009 曙海教育集團
Powered By 曙海教育集團 Version 2.2
Processed in .01563 s, 2 queries.
久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
亚洲小说春色综合另类电影| 96久久精品| 国产农村妇女精品| 26uuu精品一区二区在线观看| 欧美日韩高清一区二区| 91传媒视频在线播放| 日本道在线观看一区二区| 在线国产电影不卡| 欧美日韩另类一区| 欧美一卡二卡在线观看| 精品日韩欧美一区二区| 久久女同性恋中文字幕| 欧美激情一区在线| 亚洲男人的天堂在线aⅴ视频| 亚洲综合男人的天堂| 亚洲福利视频一区| 久久99久久久欧美国产| 丁香啪啪综合成人亚洲小说 | 欧美日韩一区小说| 欧美一级片在线看| 久久免费看少妇高潮| 中文字幕精品一区二区精品绿巨人 | 777午夜精品免费视频| 日韩一区二区三区三四区视频在线观看| 日韩三级中文字幕| 国产精品免费免费| 视频一区中文字幕| 成人网男人的天堂| 美女被啪啪一区二区| 在线视频欧美精品| 国产色产综合产在线视频| 亚洲韩国一区二区三区| 国产一区二区精品久久| 国产激情美女久久久久久吹潮| 日本高清视频一区二区三区| 欧美色图免费看| 欧美国产禁国产网站cc| 爽爽淫人综合网网站| 成人免费av在线| 日本一区二区在线视频观看| 欧美丰满嫩嫩电影| 亚洲人成网站精品片在线观看| 蜜桃久久av一区| 成人在线观看91| 在线观看国产一区二区| 国产精品视频yy9299一区| 日本va欧美va欧美va精品| 不卡一二三区首页| 一区二区精品免费视频| 国产免费久久精品| 久久国产欧美日韩精品| 精品人伦一区二区三区| 日韩欧美精品在线视频| 亚洲高清免费视频| 147欧美人体大胆444| 色呦呦日韩精品| 国产精品久久综合| 国产.欧美.日韩| 自拍偷拍亚洲色图欧美| 久久久久国产成人精品亚洲午夜 | 国产精品久久久久久久久果冻传媒 | 日本高清不卡一区| 国产精品国产三级国产aⅴ中文| 五月婷婷激情综合网| 国产成人看片| 欧美一级国产精品| 免费一级片91| 欧美日韩电影一区二区| 久久久五月婷婷| 国产美女av一区二区三区| 欧洲精品在线一区| 国产日韩欧美a| 成人免费av网站| 欧美日韩激情在线| 亚洲国产精品一区二区久久 | 激情小说网站亚洲综合网| 欧美日韩黄视频| 亚洲国产成人高清精品| 国产精品美女久久久久av福利| 91麻豆精品国产91| 日韩av一级片| 日本午夜精品一区二区| 亚洲国产激情av| av在线一区二区| 制服丝袜亚洲色图| 久久99国产精品久久| 亚洲精品国产一区| 亚洲乱码日产精品bd| 国产一区二区黄色| 国产亚洲精品7777| 91超碰在线电影| 久久九九久精品国产免费直播| 懂色av一区二区三区免费观看| 精品视频资源站| 久久爱另类一区二区小说| 色综合久久综合| 视频一区中文字幕| 日韩精品一线二线三线| 亚洲美女少妇撒尿| 欧美一进一出视频| 一区二区三区欧美久久| 日韩久久不卡| 亚洲成a人v欧美综合天堂下载| 久久精品日产第一区二区三区精品版| 国产精品污网站| 国产专区一区二区| 亚洲色图第一区| 日韩精品欧美专区| 亚洲成av人综合在线观看| 亚洲二区三区四区| 日本va欧美va瓶| 欧美日本视频在线| 成人性生交大片免费看在线播放| 日韩一区二区三区观看| 成人精品在线视频观看| 久久丝袜美腿综合| 国产精品有限公司| 一区二区在线观看视频在线观看| 亚洲狠狠婷婷综合久久久| 欧美a级一区二区| 欧美久久一二区| 99久久免费视频.com| 欧美激情综合在线| 欧美激情论坛| 欧美aⅴ一区二区三区视频| 欧美日韩久久久一区| 懂色av一区二区三区免费看| 国产欧美日韩久久| 欧美日韩一区在线播放| 日本视频免费一区| 91精品国产日韩91久久久久久| 91欧美激情一区二区三区成人| 中文一区一区三区高中清不卡| 免费av在线一区二区| 日韩黄色片在线观看| 欧美一区二区三区不卡| 国产v亚洲v天堂无码| 亚洲香蕉伊在人在线观| 欧美精品一二三| 91视频免费观看| 亚洲日本va午夜在线影院| 正在播放91九色| 高清国产一区二区| ...av二区三区久久精品| 正在播放国产精品| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 一二三区精品福利视频| 色哟哟在线观看一区二区三区| 成人免费视频一区| 亚洲免费成人av| 欧美福利视频导航| 久久99久久99精品蜜柚传媒| 裸体健美xxxx欧美裸体表演| 久久综合九色综合97_久久久| 欧美一二三四五区| 国产精品一二一区| 亚洲欧美日韩一区二区三区在线观看 | 精品国产制服丝袜高跟| 麻豆久久久9性大片| 精品影视av免费| 国产精品久久久久影院| 色成人在线视频| 91文字幕巨乱亚洲香蕉| 午夜精品福利久久久| 久久久五月婷婷| 欧美在线免费播放| 国产一区二区精品在线| 国产精品 日产精品 欧美精品| 中文字幕日韩一区| 日韩欧美一二三| 中文字幕一区二区三区在线乱码| 91网站最新网址| 日韩高清电影一区| 亚洲欧美综合另类在线卡通| 91精品麻豆日日躁夜夜躁| 日本精品二区| 91九色在线观看| 国产一区二区三区观看| 亚洲精品国产第一综合99久久| 日韩视频免费直播| 中文字幕久久综合| 农村寡妇一区二区三区| 成人av电影在线网| 精品一区二区三区免费视频| 亚洲精品国产视频| 久久日韩粉嫩一区二区三区| 在线观看日韩高清av| 日本一区二区高清视频| 成人自拍爱视频| 99这里都是精品| 国产美女精品在线| 日本欧美久久久久免费播放网| 国产精品色噜噜| 久久综合狠狠综合久久综合88 | 在线观看亚洲a| 欧美另类一区| 国产九色精品| 99在线首页视频| 97久久精品人人爽人人爽蜜臀| 国产精品一区二区无线|