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


曙海教育集團(tuán)論壇嵌入式硬件開發(fā)專區(qū)嵌入式硬件技術(shù)討論專區(qū) → net_config_t數(shù)據(jù)結(jié)構(gòu):


  共有7060人關(guān)注過本帖樹形打印

主題:net_config_t數(shù)據(jù)結(jié)構(gòu):

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個(gè)性首頁(yè) | 博客 | 信息 | 搜索 | 郵箱 | 主頁(yè) | UC


加好友 發(fā)短信
等級(jí):青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊(cè):2010-11-12 11:08:23
net_config_t數(shù)據(jù)結(jié)構(gòu):  發(fā)帖心情 Post By:2010-11-19 9:09:17

 SkyEye支持網(wǎng)絡(luò)模擬,目前描述網(wǎng)絡(luò)配置的數(shù)據(jù)結(jié)構(gòu)是net_config_t,它的具體內(nèi)容如下:

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;

     其中各個(gè)field的含義描述如下:
●state:是一個(gè)布爾變量,為1表示網(wǎng)絡(luò)芯片工作,為0表示網(wǎng)絡(luò)芯片不工作
●macaddr:用來(lái)保存網(wǎng)絡(luò)芯片的mac地址
●hostip:用來(lái)保存主機(jī)上與SkyEye進(jìn)行網(wǎng)絡(luò)通信所用的IP地址


●ethmod:表示與主機(jī)的模擬網(wǎng)絡(luò)交互的方式,目前定義的交互方式有:
#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內(nèi)核模塊進(jìn)行網(wǎng)絡(luò)交互)和 NET_MOD_TUNTAP(與linux的tun.on內(nèi)核模塊進(jìn)行網(wǎng)絡(luò)交互)。
●fd:表示SkyEye用于與主機(jī)進(jìn)行網(wǎng)絡(luò)交互的設(shè)備文件描述符
●hubindex:用于NET_MOD_VNET方式,表示所處的是第幾個(gè)虛擬hub網(wǎng)段。如果它的值是i,則處于第i個(gè)hub網(wǎng)段中。
●net_init/net_input/net_output:這三個(gè)函數(shù)與具體的模擬網(wǎng)絡(luò)交互方式有關(guān),分別完成初始化操作和與主機(jī)網(wǎng)絡(luò)的輸入輸出操作。相關(guān)的實(shí)現(xiàn)在文件skyeye_net_*.c中。
    有關(guān)8019AS模擬芯片(NE2000兼容)的具體配置與實(shí)現(xiàn)位于文件skyeye-ne2k.[ch]中。

6、ARMul_State數(shù)據(jù)結(jié)構(gòu):
    上面講述的是與SkyEye的硬件配置相關(guān)的數(shù)據(jù)結(jié)構(gòu),可以理解為一種靜態(tài)硬件配置的數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu)中的域基本不隨著SkyEye模擬硬件的運(yùn)行而改變。而ARMul_State描述的是一種動(dòng)態(tài)硬件配置的數(shù)據(jù)結(jié)構(gòu),它保存了隨著SkyEye模擬硬件的運(yùn)行而時(shí)刻改變的硬件數(shù)據(jù)。

ARMul_State中的域數(shù)量繁多,大體分為:
與CPU模擬相關(guān)的域、與協(xié)處理器模擬相關(guān)的域、與內(nèi)存和MMU/CACHE相關(guān)的域
、與統(tǒng)計(jì)相關(guān)的域、與具體開發(fā)板相關(guān)的io部分。


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


●    與協(xié)處理器模擬相關(guān)的域:
ARMul_CPInits *CPInit[16]:16個(gè)協(xié)處理器的初始化函數(shù)
ARMul_CPExits *CPExit[16]:16個(gè)協(xié)處理器的退出函數(shù)
ARMul_LDCs *LDC[16]:16個(gè)協(xié)處理器的LDC指令函數(shù)
ARMul_STCs *STC[16]:16個(gè)協(xié)處理器的STC指令函數(shù)
ARMul_MRCs *MRC[16]:16個(gè)協(xié)處理器的MRC指令函數(shù)
ARMul_MCRs *MCR[16]:16個(gè)協(xié)處理器的MCR指令函數(shù)
ARMul_CDPs *CDP[16]:16個(gè)協(xié)處理器的CDP指令函數(shù)
ARMul_CPReads *CPRead[16]:16個(gè)協(xié)處理器的讀CP寄存器函數(shù)
ARMul_CPWrites *CPWrite[16]:16個(gè)協(xié)處理器的寫CP寄存器函數(shù)
unsigned char *CPData[16]:16個(gè)協(xié)處理器的數(shù)據(jù)指針
ARMword CP14R0_CCD:在xscale體系結(jié)構(gòu)的CP14協(xié)處理器中,用于統(tǒng)計(jì)時(shí)鐘周期


●與內(nèi)存和MMU/CACHE相關(guān)的域:
mmu_state_t mmu:mmu/cache的數(shù)據(jù)結(jié)構(gòu),在armmmu.h中定義,詳解請(qǐng)參考"SkyEye的MMU/CACHE和Memory模擬實(shí)現(xiàn)"一節(jié)
mem_state_t mem:memory的數(shù)據(jù)結(jié)構(gòu),在armmem.h中定義,詳解請(qǐng)參考"SkyEye的MMU/CACHE和Memory模擬實(shí)現(xiàn)"一節(jié)
與統(tǒng)計(jì)相關(guān)的域
unsigned long NumScycles, NumNcycles, NumIcycles, NumCcycles, NumFcycles:用于統(tǒng)計(jì)不同狀態(tài)下的周期數(shù)
unsigned long NumInstrs:當(dāng)前執(zhí)行的指令數(shù)
其它與特定CPU和開發(fā)板相關(guān)的各種io寄存器的定義放到了各個(gè)與開發(fā)板相關(guān)的文件中,如skyeye_mach_at91/ep7312/pxa/sa.c等處,詳解請(qǐng)參考"SkyEye的開發(fā)板IO模擬實(shí)現(xiàn)"。

●與具體開發(fā)板相關(guān)的io部分:
ARMul_io mach_io;
其中ARMul_io的結(jié)構(gòu)目前為

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:是記錄當(dāng)前的中斷狀態(tài)
net_flag:判斷網(wǎng)絡(luò)選項(xiàng)是否打開
net_int:用來(lái)記錄網(wǎng)絡(luò)中斷號(hào)
lcd_is_enable:來(lái)記錄LCD是否使能
lcd_addr_begin:記錄lcd顯存的起始位置
lcd_addr_end:記錄顯存的結(jié)束位置

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

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

ARMul_EmulateInit:初始化與執(zhí)行機(jī)器指令相關(guān)的數(shù)據(jù)ARMul_ImmedTable和ARMul_BitList
ARMul_NewState:初始化結(jié)構(gòu)為ARMul_State的全局變量state
skyeye_option_init:初始化全局變量skyeye_config
skyeye_read_config:讀取配置文件skyeye.conf并根據(jù)配置文件進(jìn)行相關(guān)配置
nic_init:根據(jù)配置文件信息配置網(wǎng)絡(luò)模擬環(huán)境
skyeye_config.mach->mach_init(state, skyeye_config.mach):根據(jù)配置文件信息配置CPU和開發(fā)板的相關(guān)I/O函數(shù)
ARMul_Reset(state):進(jìn)一步初始化全局變量state,并根據(jù)配置文件信息配置MMU/CACHE和memory
io_reset:初始化特定CPU和開發(fā)板的IO寄存器

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

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

支持(0中立(0反對(duì)(0單帖管理 | 引用 | 回復(fù) 回到頂部

返回版面帖子列表

net_config_t數(shù)據(jù)結(jié)構(gòu):








簽名
久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
日韩欧美亚洲在线| 一区二区三区**美女毛片| 美脚丝袜一区二区三区在线观看| 成人一区二区三区在线观看| 国产suv一区二区三区88区| 国内外精品视频| 国产一区二区免费看| 国产乱人伦偷精品视频不卡| 国产福利一区二区| 91亚洲精品久久久蜜桃| 91香蕉国产在线观看软件| 操一操视频一区| 精品不卡在线| 亚洲精品中字| 欧美精品tushy高清| 欧美va天堂va视频va在线| 久久精品视频在线免费观看| 国产精品久久久99| 亚洲综合视频在线观看| 日本欧洲一区二区| 成人国产视频在线观看| 国产精品日韩欧美一区二区三区| 日韩欧美国产二区| 91精品国产综合久久久久久久| 精品电影一区二区三区| 亚洲精品成人悠悠色影视| 久久综合综合久久综合| 丁香激情综合国产| 国产精品一区二区a| 亚洲精品中字| 91麻豆精品国产91久久久使用方法| 久久久久免费观看| 亚洲视频 欧洲视频| 日韩av成人高清| 91在线视频18| 亚洲欧洲精品在线观看| 欧美人妖巨大在线| 国产区在线观看成人精品 | 午夜国产精品一区| 国产高清在线精品| 国产自产精品| 欧美日韩免费观看一区二区三区| 国产欧美日韩在线看| 午夜精品久久久久久久久| 成人免费观看视频| 日韩免费三级| 精品精品国产高清一毛片一天堂| 亚洲激情综合网| 欧美性色黄大片| 伊人色综合久久天天| 一区不卡字幕| 日韩网站在线看片你懂的| 国产精品理伦片| 久久激情五月婷婷| 成人午夜影院在线观看| 欧美在线影院一区二区| 国产精品免费视频网站| 精品一区二区三区av| 精品视频第一区| 日韩一区二区电影网| 午夜欧美视频在线观看| av资源站久久亚洲| 欧美一区二区三区性视频| 一卡二卡三卡日韩欧美| 91色.com| 欧美一区二区三区日韩| 亚欧色一区w666天堂| 国产98在线|日韩| 欧美一区二区三区系列电影| 亚洲一区二区视频在线| 国产精品高清一区二区三区| 欧美大白屁股肥臀xxxxxx| 伦理电影国产精品| 日韩av一级大片| 综合久久久久久| 91麻豆123| 日韩免费在线观看| 韩国理伦片一区二区三区在线播放| 日产中文字幕在线精品一区 | 欧美一区二区三区人| 视频在线观看一区二区三区| 久久精品一二三区| 中文字幕+乱码+中文字幕一区| 国产成人av一区二区三区在线观看| 在线天堂一区av电影| 夜色激情一区二区| 国产区一区二区| 久久亚洲一级片| 不卡的看片网站| 日韩欧美国产一区二区三区| 国产精品亚洲第一区在线暖暖韩国 | 91国产在线播放| 欧美成人免费网站| 成人精品视频一区二区三区尤物| 欧美美女黄视频| 久草这里只有精品视频| 欧美性受xxxx黑人xyx| 日韩在线卡一卡二| 一区二区三区四区视频在线观看| 亚洲成人你懂的| 亚洲欧美久久234| 亚洲成年人网站在线观看| 视频在线99| 夜夜亚洲天天久久| 香蕉久久免费影视| 日韩激情一二三区| 欧美体内she精视频| 国产揄拍国内精品对白| 日韩一区二区电影网| av电影天堂一区二区在线观看| 337p日本欧洲亚洲大胆色噜噜| 91啪亚洲精品| 国产精品毛片久久久久久| 国产一区精品视频| 亚洲中国最大av网站| 一本大道久久a久久综合婷婷| 日韩电影免费在线观看网站| 在线欧美一区二区| 国产美女精品在线| 2017欧美狠狠色| 国产一级特黄a大片99| 亚洲免费资源在线播放| 在线播放豆国产99亚洲| 国产在线国偷精品产拍免费yy| 欧美一区二区三区在线视频| 99久久精品国产精品久久| 国产日韩v精品一区二区| 欧美精品与人动性物交免费看| 亚洲国产精品一区二区久久恐怖片| 午夜精品一区二区在线观看| 美国毛片一区二区| 精品成人一区二区三区| 激情视频一区二区| 三级一区在线视频先锋| 欧美一区二区在线看| 国产厕所精品在线观看| 一区二区三区波多野结衣在线观看| 中文字幕色一区二区| 国产成人免费av在线| 国产精品亲子伦对白| 亚洲精品视频一二三| 狠狠色综合色综合网络| 国产精品私人影院| 最新国产精品久久| aaa亚洲精品| 性感美女久久精品| 欧美成人免费网站| 婷婷亚洲婷婷综合色香五月| 国产美女av一区二区三区| 国产精品欧美一区喷水| 欧美私模裸体表演在线观看| aa日韩免费精品视频一| 午夜视频在线观看一区| 亚洲精品一区二区三区蜜桃下载 | 蜜臀99久久精品久久久久久软件 | 国产精品看片你懂得 | 欧美刺激午夜性久久久久久久| 国产伦精品一区二区三区四区免费 | 亚洲伊人伊色伊影伊综合网 | 欧美国产精品劲爆| 中文网丁香综合网| 成人在线免费观看一区| 蜜臀av性久久久久蜜臀aⅴ | 最新国产精品久久| 3d动漫啪啪精品一区二区免费| 亚洲成av人片一区二区三区| 精品少妇一区二区三区| 一本久久精品一区二区| 国产91色在线|亚洲| 精品一区二区在线观看| 亚洲女子a中天字幕| 日韩免费成人网| 在线观看亚洲视频啊啊啊啊| 999精品在线观看| 国产一区91精品张津瑜| 亚洲成人激情av| 国产日韩精品视频一区| 欧美日本免费一区二区三区| 欧美视频小说| 99在线热播| 成人一级片在线观看| 美国欧美日韩国产在线播放| 一区二区三区四区精品在线视频 | 91麻豆精品国产自产在线| 亚洲国产欧美一区二区三区不卡| 99久久伊人精品| 国产一二三精品| 日韩黄色在线观看| 一区二区三区在线免费视频| 欧美激情一区二区三区在线| 欧美一激情一区二区三区| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 久久人人爽人人爽| 在线播放国产精品二区一二区四区 | 韩国av一区二区三区在线观看| 亚洲一级不卡视频| 亚洲人成网站影音先锋播放| 国产喂奶挤奶一区二区三区| 精品乱人伦小说| 日韩三级.com|