亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? romstart.c

?? IXP425的BSP代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* romStart.c - ROM initialization module *//* Copyright 1989-2001 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------01f,26mar02,sbs  correcting data section relocation for ROM compressed images                 (SPR 73785)01e,29nov01,sbs  Adding dual copy mechanism for copying data sections from                 ROM to RAM using new WRS labels for sdata and edata. 01d,27nov01,tpw  Manually unroll copyLongs and fillLongs.01c,06jul98,jmp  added USER_RESERVED_MEM definition if USER_RESERVED_MEM is                 not defined.01b,20may98,ms   minor cleanup to docs and code.01a,22aug97,ms   derived from 04p of bootInit.c and simplified.*//*DESCRIPTIONThis module provides a generic ROM startup facility.  The target-specificromInit.s module performs the minimal preliminary board initialization andthen jumps to the C routine romStart(). It is assumed that the romInit.smodule has already set the initial stack pointer to STACK_ADRS.This module optionally clears memory to avoid parity errors, initializesthe RAM data area, and then jumps to the routine "relocEntry".This module is a replacement for config/all/bootInit.c.CLEARING MEMORYOne feature of this module is to optionally clear memory to avoid parityerrors.Generally, we clear for the bottom of memory (the BSP's LOCAL_MEM_LOCAL_ADRSmacro), to the top of memory (LOCAL_MEM_LOCAL_ADRS + LOCAL_MEM_SIZE),but avoiding the stack area. In order to avoid trashing the stack area,the BSP's romInit.s must have set the stack pointer to the macro STACK_ADRS.There are three configuration macros which can be overridden in theBSP's config.h file to change how memory is cleared:ROMSTART_BOOT_CLEAR	undefine to not clear memory when bootingUSER_RESERVED_MEM	area at the top of memory to not clearRESERVED		area at the bottom of memory to not clear.bS 22	RAM    --------------  0x00100000 = LOCAL_MEM_LOCAL_ADRS + LOCAL_MEM_SIZE    |            |    |------------|		= " - USER_RESERVED_MEM    |            |    |  0 filled  |    |            |    |------------|  0x00001000  = RAM_DATA_ADRS    | initial sp |    |------------|		= RAM_DATA_ADRS - STACK_SAVE    |            |    | 0 filled   |    |            |  exc vectors, bp anchor, exc msg, bootline    |            |    |------------|		= LOCAL_MEM_LOCAL_ADRS + RESERVED    |            |    --------------  0x00000000  = LOCAL_MEM_LOCAL_ADRS.bENote: The STACK_ADRS macro defaults to either RAM_DATA_ADRS, orRAM_DATA_ADRS - STACK_SAVE, depending on if the stack grows upor down for the given processor.Note: The RAM_DATA_ADRS macro is passed to us from the Make system.It represents the address to which the data segment is linkedand defaults to the BSP Makefile's RAM_LOW_ADRS macro. For details onhow to change the addresses to which VxWorks is linked, refer to thedocumentation in h/make/defs.vxWorks.INITIALIZING DATAThe other main feture of this module is to initialize the RAM dataarea.The way this is done depends on the kind of image you are building.There are three ROM image types that are supported by the Makesystem:  ROM_RESIDENT	run from ROM, with only the data segment placed in RAM.  ROM_COPY	copy the main image from ROM to RAM and jump to it.  ROM_COMPRESS	uncompress the main image from ROM to RAM and jump to it.The make system will define one of these macros for you, depending on thename of the target you are building (%.rom_res, %.rom_cpy, or %.rom_cmp).There are separate version of romStart for each of these cases.Let's start with the simplest case; ROM_RESIDENT.ROM_RESIDENT IMAGESWhen the board is powered on, the processor starts executing instructionsfrom ROM. The ROM contains some text (code) and a copy of the datasegment. The pictured below is a typical example:.bS 6	ROM    --------------    |            |    |------------|    |    data    |    |------------|  0xff8xxxxx  = ROM_DATA_ADRS    |    text    |    |            |  0xff800008  = ROM_TEXT_ADRS    --------------  0xff800000  = ROM_BASE_ADRS.bEromStart() copies the data segment from ROM_DATA_ADRS to RAM_DATA_ADRS -the address to which it is really linked.The picture below is an example of RAM addresses on a 1 meg board..bS 22	RAM    --------------  0x00100000 = LOCAL_MEM_LOCAL_ADRS + LOCAL_MEM_SIZE    |            |    |            |    |------------|		= RAM_DATA_ADRS + data segment size    |            |    |data segment|    |            |    |------------|  0x00001000  = RAM_DATA_ADRS    | initial sp |    |------------|		= RAM_DATA_ADRS - STACK_SAVE    |            |    |            |    --------------  0x00000000  = LOCAL_MEM_LOCAL_ADRS.bEROM_COPY and ROM_COMPRESS IMAGESThese images are slightly more complex than ROM_RESIDENT images.The Make system produces an intermediate image, called %.ram_reloc,which runs from RAM. It then embeds the binary for this subimage withina ROM image. The subimage is located between the global symbols"binArrayStart" and "binArrayEnd". The main difference betweenthe ROM_COPY and the ROM_COMPRESS images is how the subimage isstored.For ROM_COMPRESS, the subimage is compressed to save ROM space.A modified version of the Public Domain \f3zlib\fP library is used touncompress the VxWorks boot ROM executable linked with it.  Compressingobject code typically achieves over 55% compression, permitting muchlarger systems to be burned into ROM.  The only expense is the added fewseconds delay while the first two stages complete.For ROM_COPY, the subimage is not compressed to make thestartup sequence shorter.In both cases, the ROM image initially looks like this, withbinArrayStart and binArrayEnd at the end of the ROM data area.The pictured below is a typical example:.bS 6	ROM    --------------    |            |    |------------|  0xff8xxxxx	= binArrayEnd    |  subImage  |    |------------|  0xff8xxxxx	= binArrayStart    |    data    |    |------------|  0xff8xxxxx  = ROM_DATA_ADRS    |    text    |    |            |  0xff800008  = ROM_TEXT_ADRS    --------------  0xff800000  = ROM_BASE_ADRS.bEFor ROM_COPY images, romStart() copies the subimage from binArrayStart toRAM_DST_ADRSFor ROM_UNCOMPRESS images, romStart() first copies the uncompressioncode's data segment to RAM_DATA_ADRS, and then runs the uncompressionroutine to place the subimage at RAM_DST_ADRS.Both the RAM_DST_ADRS and RAM_DATA_ADRS macros are link addresseddefined by the Make system, which default to the BSP Makefile'sRAM_LOW_ADRS and RAM_HIGH_ADRS respectively.For information on how to change link addresses, refer to the filetarget/h/make/rules.bsp.The picture below is an example of RAM addresses on a 1 meg board."temp data" below refers to the uncompression code's data segment..bS 22        RAM    --------------  0x00100000 = LOCAL_MEM_LOCAL_ADRS + LOCAL_MEM_SIZE    |            |    |            |    |------------|    | temp data  |    |------------|  0x00090000  = RAM_DATA_ADRS    | initial sp |    |------------|              = RAM_DATA_ADRS - STACK_SAVE    |            |    |            |    |------------|    |            |    |  subimage  |    |            |    |------------|  0x00001000  = RAM_DST_ADRS (for non-resident images)    |            |    |            |    --------------  0x00000000  = LOCAL_MEM_LOCAL_ADRS.bESEE ALSO:inflate(), romInit(), and deflate.AUTHORThe original compression software was written by Jean-loup Gaillyand Mark Adler. See the manual pages of inflate and deflate formore information on their freely available compression software.SUMMARY OF CONFIGURATION MACROSMacro		defined		synopsys-----		-------		--------ROM_BASE_ADRS	config.h	Start of ROMROM_TEXT_ADRS	Makefile	Start of text segment within ROM, typically				a CPU-dependant offset from ROM_BASE_ADRS.ROM_DATA_ADRS	Here		Location in ROM containing a copy of the 				data segment. This must eventually be copied				to the RAM address to which it is linked.RAM_DATA_ADRS	rules.bsp	Location in RAM to which the data segment is				really linked.STACK_ADRS	configAll.h	Initial stack pointer.ROMSTART_BOOT_CLEAR configAll.h	Undefine to not clear memory when bootingUSER_RESERVED_MEM configAll.h	Area at the top of memory to not clearRESERVED	configAll.h	Area at the bottom of memory to not clearLOCAL_MEM_LOCAL_ADRS config.hLOCAL_MEM_SIZE	config.hCHANGES from bootInit.c:Three separate version of romStart to make it readable.One each for ROM_COMPRESS, ROM_RESIDENT, and ROM_COPY images.* The ROM_COPY image copys the main image from binArrayStart to  RAM_DST_ADRS and then jumps to it.  The array binArrayStart and the macro RAM_DST_ADRS are provided by the  Make system.* The ROM_COMPRESS image uncompresses the main image from binArrayStart to  RAM_DST_ADRS and then jumps to it.  Before the uncompression can run, this image needs to initialize the  uncompression code's data segment. It does this by copying data from  ROM_DATA to RAM_DATA_ADRS.  The array binArrayStart and the macros RAM_DST_ADRS and RAM_DATA_ADRS  are provided by the Make system. The macro ROM_DATA is a toolchain  dependant macro, which defaults to the global symbol "etext".* The ROM_RESIDENT image copys its data segment from ROM to RAM. As with  the ROM_COMPRESS image, it does this by copying from ROM_DATA to  RAM_DATA_ADRS.*/#include "vxWorks.h"#include "sysLib.h"#include "config.h"#include "usrConfig.h"/* default uncompression routine for compressed ROM images */#ifndef	UNCMP_RTN#   define	UNCMP_RTN	inflate#endif/* toolchain dependant location of the data segment within ROM */#ifndef	ROM_DATA_ADRS#   define	ROM_DATA_ADRS	(UINT *)(etext)#endif/* MIPS needs to write to uncached memory, others just do normal writes */#ifndef UNCACHED#    define	UNCACHED(adr)	adr#endif/* USER_RESERVED_MEM must be set to 0 if not defined */#ifndef USER_RESERVED_MEM#    define USER_RESERVED_MEM 0#endif/* handy macros */#define ROM_DATA(adrs) ((UINT)adrs + ((UINT)ROM_DATA_ADRS - RAM_DATA_ADRS))#define	SYS_MEM_TOP \	(LOCAL_MEM_LOCAL_ADRS + LOCAL_MEM_SIZE - USER_RESERVED_MEM)#define SYS_MEM_BOTTOM \	(LOCAL_MEM_LOCAL_ADRS + RESERVED)#define BINARRAYEND_ROUNDOFF    (ROUND_DOWN(binArrayEnd, sizeof(long)))

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品久久只有精品| 日韩一区欧美小说| 国产亚洲欧美一级| 五月天中文字幕一区二区| 成人看片黄a免费看在线| 欧美精品乱码久久久久久| 日韩理论片中文av| 懂色中文一区二区在线播放| 制服视频三区第一页精品| 亚洲天堂久久久久久久| 粉嫩在线一区二区三区视频| 日韩欧美中文字幕公布| 日日摸夜夜添夜夜添亚洲女人| 91麻豆123| 国产精品成人网| 国产夫妻精品视频| 国产丝袜欧美中文另类| 精品一区二区三区日韩| 日韩一区二区三| 日本午夜精品一区二区三区电影| 91极品美女在线| 亚洲精品成a人| 欧美在线不卡视频| 亚洲伦理在线免费看| 99久久精品99国产精品| 国产欧美va欧美不卡在线| 国产成人一区在线| 国产午夜精品福利| 成人性生交大合| 中文字幕一区二区在线观看| 99视频一区二区| 亚洲人成在线观看一区二区| 91视频.com| 久久国产精品免费| 精品国产污污免费网站入口| 久久91精品国产91久久小草| 日韩美女主播在线视频一区二区三区| 奇米精品一区二区三区在线观看 | 欧美一级二级三级蜜桃| 免费观看久久久4p| www日韩大片| 国产a精品视频| 亚洲精品久久7777| 91色在线porny| 亚洲一本大道在线| 欧美一区二区三区日韩视频| 久久99精品一区二区三区| 国产情人综合久久777777| 99久久精品免费看| 亚洲精品国产高清久久伦理二区| 欧美在线播放高清精品| 另类欧美日韩国产在线| 国产精品嫩草影院com| 欧美在线一区二区三区| 美女国产一区二区| 国产精品萝li| 91精品国产91久久久久久一区二区 | 亚洲精品国产a久久久久久 | 91色|porny| 日本网站在线观看一区二区三区| 精品日韩一区二区三区| av激情综合网| 蜜桃av一区二区| 国产精品久久网站| 日韩一区二区影院| 99re8在线精品视频免费播放| 视频一区二区三区在线| 国产精品久久久久久久久久久免费看| 91成人在线观看喷潮| 激情综合色综合久久| 亚洲欧美日韩人成在线播放| 精品福利二区三区| 欧美午夜影院一区| 粉嫩久久99精品久久久久久夜| 视频一区视频二区中文| 成人欧美一区二区三区小说 | 成人免费视频国产在线观看| 亚洲成a人v欧美综合天堂下载| 亚洲精品一区二区在线观看| 欧美性色黄大片手机版| 高清不卡一区二区在线| 美女视频网站黄色亚洲| 一区二区三区在线观看网站| 国产欧美日本一区视频| 91精品国产乱| 色噜噜狠狠成人中文综合| 国产精品77777竹菊影视小说| 日韩国产精品久久久| 一区二区三区日韩精品视频| 欧美激情艳妇裸体舞| 欧美白人最猛性xxxxx69交| 欧美在线一二三| 91免费观看在线| 丰满少妇久久久久久久| 国内成人精品2018免费看| 男人的j进女人的j一区| 亚洲一区二区视频在线观看| 亚洲欧洲在线观看av| 久久精品视频在线看| 久久这里只有精品视频网| 日韩一区二区精品葵司在线| 欧美高清dvd| 欧美日韩精品系列| 欧美日韩国产一级二级| 欧美精品三级在线观看| 欧美在线观看视频在线| 欧美三级在线视频| 欧美日韩一区二区三区四区 | 色综合欧美在线| 不卡在线视频中文字幕| 处破女av一区二区| 高清av一区二区| 成人高清av在线| 91蜜桃网址入口| 欧美亚洲丝袜传媒另类| 在线观看视频91| 欧美美女一区二区在线观看| 欧美精品久久久久久久多人混战| 欧美午夜寂寞影院| 91精品国产一区二区三区 | 国产精品青草久久| 综合久久国产九一剧情麻豆| 亚洲欧美激情在线| 亚洲chinese男男1069| 麻豆成人综合网| 国产成人精品一区二| av成人动漫在线观看| 色老汉一区二区三区| 欧美一区午夜视频在线观看| 日韩一级视频免费观看在线| 久久久久久久久久久久久夜| 日韩毛片在线免费观看| 日韩精品免费专区| 国产成人免费9x9x人网站视频| 99在线热播精品免费| 在线观看日韩电影| 欧美成人在线直播| 亚洲天堂精品视频| 亚洲国产视频在线| 精品无码三级在线观看视频| 波多野结衣在线一区| 欧美日韩电影一区| 日本一区二区久久| 亚洲国产精品麻豆| 国产福利一区在线观看| 欧美性高清videossexo| 欧美大度的电影原声| 自拍偷拍亚洲综合| 看电视剧不卡顿的网站| 91在线观看免费视频| 日韩你懂的电影在线观看| 亚洲视频综合在线| 久久99精品一区二区三区三区| 色综合网色综合| 久久品道一品道久久精品| 亚洲成在人线在线播放| 国产精品白丝jk黑袜喷水| 欧美私模裸体表演在线观看| 国产亚洲短视频| 日本vs亚洲vs韩国一区三区二区 | 欧美曰成人黄网| 国产日产欧美一区二区视频| 一区二区三区美女| 国产成人高清视频| 日韩一区二区麻豆国产| 一区二区三区丝袜| 高清beeg欧美| 精品99一区二区三区| 日韩激情av在线| 91精彩视频在线观看| 国产精品日日摸夜夜摸av| 精品一区二区在线视频| 69堂亚洲精品首页| 亚洲制服丝袜av| www.亚洲激情.com| 日本一区二区三区四区| 久久99精品久久久久久久久久久久 | 丰满少妇久久久久久久| 久久不见久久见免费视频1| 国产一区在线看| 欧美日韩国产天堂| 亚洲欧美韩国综合色| 福利91精品一区二区三区| 日韩欧美电影在线| 亚洲va国产va欧美va观看| 色哟哟一区二区在线观看| 国产精品素人视频| 高潮精品一区videoshd| 久久久久国产精品免费免费搜索| 免费美女久久99| 欧美肥胖老妇做爰| 视频精品一区二区| 欧美高清视频在线高清观看mv色露露十八 | 久久麻豆一区二区| 精品一二线国产| 久久久久国产精品免费免费搜索| 国产一区视频导航| 国产清纯美女被跳蛋高潮一区二区久久w | 99久久99久久精品免费看蜜桃 | 日韩av中文字幕一区二区三区|