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

正文內(nèi)容

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

2024-09-04 10:02本頁面

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

  

【正文】 rules.*)。 2. 針對不同目標環(huán)境,修改編譯規(guī)則可通過 Project facility進行。 P 控制算法 24 生成文件的類型:庫文件 : *.a IMAGE: RAM類型為 loadable image,ROM類型分為壓縮的、非壓縮的、 ROM內(nèi)執(zhí)行的 image;每一種類型的 image格式有 Hex和 bin兩種。 第二章 系統(tǒng)調(diào)用 第四部分 BSP 第一章 BSP 常識 第一節(jié) BSP的功能 1. Initialization: 2. Driver: 舉例: BEGIN 命令 ?Rc。 FOR IF(Rs==Ready) Rd?memory。 Break。 ELSE wkafter()。 END FOR END 第二節(jié) 怎樣理解 BSP 分析 BSP可以從兩個角度出發(fā): 1. BSP在宿主機上由什麼函數(shù)和文件組成,以及目錄情況 2. BSP在目標機上是以什麼邏輯執(zhí)行的 第二章 BSP 的函數(shù)與文件 第一節(jié) BSP的文件構(gòu)成 VxWorks的 BSP組成文件主要包含在四個目錄下: Tornado\target\config\all :所有 BSP的公共部分 Tornado\target\config\ps\vxworks :基本模塊描述文件( *.cdf) Tornado\target\config\ps\src :模塊配置文件(被 ) Tornado\target\config\bspname :與目標板相關的部分 下面分別介紹這兩個目錄下的文件: 1. config\all:在該目錄下主要有如下幾個文件 :是所有 Boot Rom 的主要初始化與控制文件。 是 的一個子集,所以 Boot Image只能提供完整 VxWorks Image 中的部分功能。 Boot Image 不使用 MMU庫( SPARC 除外)。在集成環(huán)境下修改工程相關的配置信息不會影響 Boot Image,只有直接修改 , 和 25 Boot Image; :定義了 romStart()函數(shù),用于 Boot Rom的第二階段初始化。首先把 text和 data段從 ROM拷到 RAM中,然后初始化部分 RAM,進行解壓; :包含 VxWorks Image 的主要初始化代碼。使用命令行編譯時才會用到此文件; 2. config\bspname: 在該目錄下主要有如下幾個文件 makefile: 用 于 命 令 行 下 編 譯 。 其 中 定 義 了 一 些 宏 , 如 :ROM_TEXT_ADRS,ROM_WARM_ADRS,ROM_SIZE,RAM_LOW_ADRS,RAM_HIGH_ADRS; :包含所有的頭文件和與 CPU相關的宏定義,如:對 Cache和 MMU的配置, RAM和 ROM的定位以 及大小配置 ,外部總線地址映射, PCI地址宏; : 該文件包含 Boot Rom和 Rombased VxWorks Image的初始化入口匯編代碼,即實現(xiàn)了 romInit()。目標板一上電就開始執(zhí)行 romInit(),主要完成三部分工作: (1) 屏蔽中斷,初始化 CPU。 (2) 配置內(nèi)存系統(tǒng),通常包括關閉 cache,初始化內(nèi)存控制器; (3) 初始化堆棧指針和其它寄存器以執(zhí)行 C語言,然后調(diào)用 romStart(). Note:romInit()函數(shù)必須設計成與內(nèi)存地址無關的代碼( PIC) ,必要的初始化,其余的初始化工作可放到 sysHwInit()中實現(xiàn)。 : 包含目標板或系統(tǒng)相關的匯編語言函數(shù),即實現(xiàn)了 _sysInit()。這是 Boot Rom起來以后執(zhí)行的第一段代碼, ,但它不必設計成 PIC,且可調(diào)用其它庫中的函數(shù)。 : 包含目標板或系統(tǒng)相關的 C 語言函數(shù) ,該文件提供板級接口,通過該接口,VxWorks和應用程序的實現(xiàn)與目標系統(tǒng)無關, src\drv目錄下的驅(qū)動程序子文件,驅(qū)動程序的安裝和初始化 在子文件中完成。 :串口驅(qū)動程序的安裝和初始化。 :網(wǎng)絡接口設備的安裝和初始化。 :包含與板子相關的宏定義。若要把 src\drv 下的某驅(qū)動程序移植到目標板上,必須在 target\h\drv下該驅(qū)動程序相對應的頭文件。 :中斷向量或中斷號; I/O設備地址;設備寄存器位的含義定義;系統(tǒng)時鐘和輔助時鐘最大和最小時鐘速率。 第二節(jié) BSP的函數(shù)構(gòu)成 : 1. 系統(tǒng)時鐘中斷相關的 函數(shù): sysClkConnect(),sysClkDisable(),sysClkEnable(), sysClkInt(),sysClkRateGet(),sysClkRateSet()。 2. 系統(tǒng)硬件初始化函數(shù): sysHwInit(),sysHwInit2() 3. 內(nèi)存相關的函數(shù): sysMemTop(),sysNvRamGet(),sysNvRamSet() 4. 串口相關的函數(shù): sysSerialHwInit(),sysSerialHwInit2(),sysSerialChanGet() 5. 雜項函數(shù): sysBspRev(),sysModel(),sysToMonitor() 6. 其它可選函數(shù):如:輔助時鐘中斷相關函數(shù),總線相關函數(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的時機可以有兩處: Init wind kernel root CPU board sys romInit() romStart() sysInit() usrInit() usrRoot() User application 27 Init driver 在 sysHwInit()的開始處,這些被初始化的設備是系統(tǒng)或調(diào)試所依賴的,我們稱為“近設備”,例如串口、時鐘;在用戶應用程序內(nèi)被初始化的設備是依賴于操作系統(tǒng)的,我們成為“遠設備”,例如在 driver中需要使用信號量。 第二節(jié) Driver的執(zhí)行邏輯 3. 2. 1 Driver的層次結(jié)構(gòu) 1. 任務與 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ū)動程序表: (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 設備表:( 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): 返回設備 Id 號; 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ū)動程序表添加 Driver。 xxDrv()在設備初始化階段被調(diào)用,而且只能調(diào)用一次,輸入?yún)?shù)是設備相關的; xxDevCreate(devName,arg,…) :為設備描述結(jié)構(gòu)分配內(nèi)存,執(zhí)行設備相關的初始化,調(diào)用iosDevAdd(pDevHdr,devName,drvNum)往設備列表內(nèi)添加設備描述符,并用設備名字( drvName)和驅(qū)動程序號 (drvNum)初始化 DEV_HDR;
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1