freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

vxworks培訓(xùn)講稿(嵌入式系統(tǒng))-資料下載頁(yè)

2025-08-26 10:02本頁(yè)面

【導(dǎo)讀】VxWorks是一種嵌入式的實(shí)時(shí)操作系統(tǒng),所謂嵌入式系統(tǒng)就是用戶(hù)自己開(kāi)發(fā)設(shè)計(jì)板子,板子上通常有一顆CPU,VxWorks支持32位的CPU,包括Intel公司的x86、Motorola公司。的68k和PowerPC、MIPS、ARM、Intel公司的i960、Hitachi公司的SH。開(kāi)發(fā)環(huán)境可以運(yùn)行在Windows95/NT或UNIX下,包括交叉編譯器和交叉。代碼IMAGE,交叉調(diào)試器就是通過(guò)宿主機(jī)和目標(biāo)機(jī)之間的某種耦合方式實(shí)現(xiàn)前后臺(tái)調(diào)試。在系統(tǒng)安裝的時(shí)候,集成調(diào)試環(huán)境和VxWorks的原材料都安裝。下面我們分別來(lái)介紹這。VxWorks的IMAGE有三個(gè)層次、四個(gè)部分。2.windkernel對(duì)外設(shè)不做假設(shè)。統(tǒng)的移植中,外設(shè)必須符合BIOS標(biāo)準(zhǔn)。與調(diào)度,我們稱(chēng)其為納核,可以只有8k)。VxWorks的API是由操作系統(tǒng)內(nèi)核提供的服務(wù)原語(yǔ)搭建起來(lái)的??赡苄?、盡可能是常量和可確定。所謂可確定是指tc和ts有一個(gè)上限,而不是一個(gè)統(tǒng)計(jì)的。結(jié)果,即不會(huì)出現(xiàn)峰值,不會(huì)隨系統(tǒng)任務(wù)的增多而增多。除了提供TCP/IP協(xié)議棧,還支持其他協(xié)議。最大的特點(diǎn)就是采用零拷貝機(jī)制,Carrier網(wǎng):邊緣交換機(jī),VoIP網(wǎng)關(guān),核心路由器;

  

【正文】 rules.*)。 2. 針對(duì)不同目標(biāo)環(huán)境,修改編譯規(guī)則可通過(guò) Project facility進(jìn)行。 P 控制算法 24 生成文件的類(lèi)型:庫(kù)文件 : *.a IMAGE: RAM類(lèi)型為 loadable image,ROM類(lèi)型分為壓縮的、非壓縮的、 ROM內(nèi)執(zhí)行的 image;每一種類(lèi)型的 image格式有 Hex和 bin兩種。 第二章 系統(tǒng)調(diào)用 第四部分 BSP 第一章 BSP 常識(shí) 第一節(jié) BSP的功能 1. Initialization: 2. Driver: 舉例: BEGIN 命令 ?Rc。 FOR IF(Rs==Ready) Rd?memory。 Break。 ELSE wkafter()。 END FOR END 第二節(jié) 怎樣理解 BSP 分析 BSP可以從兩個(gè)角度出發(fā): 1. BSP在宿主機(jī)上由什麼函數(shù)和文件組成,以及目錄情況 2. BSP在目標(biāo)機(jī)上是以什麼邏輯執(zhí)行的 第二章 BSP 的函數(shù)與文件 第一節(jié) BSP的文件構(gòu)成 VxWorks的 BSP組成文件主要包含在四個(gè)目錄下: Tornado\target\config\all :所有 BSP的公共部分 Tornado\target\config\ps\vxworks :基本模塊描述文件( *.cdf) Tornado\target\config\ps\src :模塊配置文件(被 ) Tornado\target\config\bspname :與目標(biāo)板相關(guān)的部分 下面分別介紹這兩個(gè)目錄下的文件: 1. config\all:在該目錄下主要有如下幾個(gè)文件 :是所有 Boot Rom 的主要初始化與控制文件。 是 的一個(gè)子集,所以 Boot Image只能提供完整 VxWorks Image 中的部分功能。 Boot Image 不使用 MMU庫(kù)( SPARC 除外)。在集成環(huán)境下修改工程相關(guān)的配置信息不會(huì)影響 Boot Image,只有直接修改 , 和 25 Boot Image; :定義了 romStart()函數(shù),用于 Boot Rom的第二階段初始化。首先把 text和 data段從 ROM拷到 RAM中,然后初始化部分 RAM,進(jìn)行解壓; :包含 VxWorks Image 的主要初始化代碼。使用命令行編譯時(shí)才會(huì)用到此文件; 2. config\bspname: 在該目錄下主要有如下幾個(gè)文件 makefile: 用 于 命 令 行 下 編 譯 。 其 中 定 義 了 一 些 宏 , 如 :ROM_TEXT_ADRS,ROM_WARM_ADRS,ROM_SIZE,RAM_LOW_ADRS,RAM_HIGH_ADRS; :包含所有的頭文件和與 CPU相關(guān)的宏定義,如:對(duì) Cache和 MMU的配置, RAM和 ROM的定位以 及大小配置 ,外部總線(xiàn)地址映射, PCI地址宏; : 該文件包含 Boot Rom和 Rombased VxWorks Image的初始化入口匯編代碼,即實(shí)現(xiàn)了 romInit()。目標(biāo)板一上電就開(kāi)始執(zhí)行 romInit(),主要完成三部分工作: (1) 屏蔽中斷,初始化 CPU。 (2) 配置內(nèi)存系統(tǒng),通常包括關(guān)閉 cache,初始化內(nèi)存控制器; (3) 初始化堆棧指針和其它寄存器以執(zhí)行 C語(yǔ)言,然后調(diào)用 romStart(). Note:romInit()函數(shù)必須設(shè)計(jì)成與內(nèi)存地址無(wú)關(guān)的代碼( PIC) ,必要的初始化,其余的初始化工作可放到 sysHwInit()中實(shí)現(xiàn)。 : 包含目標(biāo)板或系統(tǒng)相關(guān)的匯編語(yǔ)言函數(shù),即實(shí)現(xiàn)了 _sysInit()。這是 Boot Rom起來(lái)以后執(zhí)行的第一段代碼, ,但它不必設(shè)計(jì)成 PIC,且可調(diào)用其它庫(kù)中的函數(shù)。 : 包含目標(biāo)板或系統(tǒng)相關(guān)的 C 語(yǔ)言函數(shù) ,該文件提供板級(jí)接口,通過(guò)該接口,VxWorks和應(yīng)用程序的實(shí)現(xiàn)與目標(biāo)系統(tǒng)無(wú)關(guān), src\drv目錄下的驅(qū)動(dòng)程序子文件,驅(qū)動(dòng)程序的安裝和初始化 在子文件中完成。 :串口驅(qū)動(dòng)程序的安裝和初始化。 :網(wǎng)絡(luò)接口設(shè)備的安裝和初始化。 :包含與板子相關(guān)的宏定義。若要把 src\drv 下的某驅(qū)動(dòng)程序移植到目標(biāo)板上,必須在 target\h\drv下該驅(qū)動(dòng)程序相對(duì)應(yīng)的頭文件。 :中斷向量或中斷號(hào); I/O設(shè)備地址;設(shè)備寄存器位的含義定義;系統(tǒng)時(shí)鐘和輔助時(shí)鐘最大和最小時(shí)鐘速率。 第二節(jié) BSP的函數(shù)構(gòu)成 : 1. 系統(tǒng)時(shí)鐘中斷相關(guān)的 函數(shù): sysClkConnect(),sysClkDisable(),sysClkEnable(), sysClkInt(),sysClkRateGet(),sysClkRateSet()。 2. 系統(tǒng)硬件初始化函數(shù): sysHwInit(),sysHwInit2() 3. 內(nèi)存相關(guān)的函數(shù): sysMemTop(),sysNvRamGet(),sysNvRamSet() 4. 串口相關(guān)的函數(shù): sysSerialHwInit(),sysSerialHwInit2(),sysSerialChanGet() 5. 雜項(xiàng)函數(shù): sysBspRev(),sysModel(),sysToMonitor() 6. 其它可選函數(shù):如:輔助時(shí)鐘中斷相關(guān)函數(shù),總線(xiàn)相關(guān)函數(shù) 第三章 BSP 的執(zhí)行邏輯 第一節(jié) Init的邏輯 1. Boot Init邏輯: Disable interrupt。 Power up reset 26 Put boot type(cold/warm) on stack。 Clear caches。 Call romStart()。 If ROMresident Image Copy the text and data to RAM。 Else Copy the data to RAM。 Initialize the unused memory。 If Compressed Image Depress the image。 If cache applicable Invalidate cache。 Init system interrupt and fault tables with default stubs。 Init all processor registers to known default states。 Enable tracing,clear all pending inter. Call usrInit() Save the boot type。 Handle all init needed before kernel start Start the kernel by calling kernelInit():。 (Many vxworks facilities can’t be used here because without task context.) Start task: usrRoot(Init cache,Zero out system bss segement,Init interrupt vectors,Init hardware to quiescent state by calling sysHwInit()) Call memInit()(or memShowInit() usrMmuInit())。 sysClkConnect()。 sysHwInit2()。 sysClkRateSet()。 sysClkEnable()。 iosInit()。(Init I/O system) excInit()。(Init exception handling) wdbConfig()。(Init agent’s mu. Interface,start agent) 2. Driver Init的時(shí)機(jī)可以有兩處: Init wind kernel root CPU board sys romInit() romStart() sysInit() usrInit() usrRoot() User application 27 Init driver 在 sysHwInit()的開(kāi)始處,這些被初始化的設(shè)備是系統(tǒng)或調(diào)試所依賴(lài)的,我們稱(chēng)為“近設(shè)備”,例如串口、時(shí)鐘;在用戶(hù)應(yīng)用程序內(nèi)被初始化的設(shè)備是依賴(lài)于操作系統(tǒng)的,我們成為“遠(yuǎn)設(shè)備”,例如在 driver中需要使用信號(hào)量。 第二節(jié) Driver的執(zhí)行邏輯 3. 2. 1 Driver的層次結(jié)構(gòu) 1. 任務(wù)與 VxWorks的接口: ?fd =open (filename, flags, mode) fd=creat (filename, flags) read (fd, amp。buf, nBytes) write (fd, amp。buf, nBytes) ioctl (fd, mand, arg) close (fd) remove (filename) 2. 驅(qū)動(dòng)程序表: (I/O System Driver Table: iosDrvShow()) Driver Num create delete open close read write ioctl 1 2 3 myOpen NULL myOpen myClose myRead myWrite myIoctl 4 設(shè)備表:( Devs List: devs()) 文件描述符表( File Descriptor Table) : iosFdShow() Driver Device ID (Index in driver table) (Driver dependent value) 1 2 3 4 “/pipe/abc” 2 “/pipe/xyz” 2 “/tyCo/0” 1 “sacto:” 4 Drv driver data Serial driver data Pipe driver data Pipe driver data 28 5 3. Driver的操作規(guī)整,參數(shù)規(guī)整和 I/O管理: xxOpen(pDevHdr, pName, flags, mode): 返回設(shè)備 Id 號(hào); xxClose(deviceId) xxRead(deviceId, pBuf, nBytes) xxWrite(deviceId, pBuf, nBytes) xxIoctl(deviceId, cmd, arg) xxDrv(args,…) : iosDrvInstall (xxCreat, xxDelete, xxOpen,xxClose, xxRead, xxWrite, xxIoctl) 往I/O 系統(tǒng)驅(qū)動(dòng)程序表添加 Driver。 xxDrv()在設(shè)備初始化階段被調(diào)用,而且只能調(diào)用一次,輸入?yún)?shù)是設(shè)備相關(guān)的; xxDevCreate(devName,arg,…) :為設(shè)備描述結(jié)構(gòu)分配內(nèi)存,執(zhí)行設(shè)備相關(guān)的初始化,調(diào)用iosDevAdd(pDevHdr,devName,drvNum)往設(shè)備列表內(nèi)添加設(shè)備描述符,并用設(shè)備名字( drvName)和驅(qū)動(dòng)程序號(hào) (drvNum)初始化 DEV_HDR;
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1