亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
久久亚洲影视婷婷| 51精品久久久久久久蜜臀| 婷婷综合五月天| 一区二区三区中文在线观看| 欧美激情一区二区三区在线| 2020国产精品| 久久久久久久久蜜桃| 精品乱码亚洲一区二区不卡| 制服视频三区第一页精品| 欧美亚洲国产一区二区三区va | 成人黄色在线视频| 国产精品伊人色| 国产在线国偷精品产拍免费yy| 欧美aⅴ一区二区三区视频| 婷婷亚洲久悠悠色悠在线播放| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲精品大片www| 亚洲不卡av一区二区三区| 亚洲国产精品久久久男人的天堂| 午夜免费久久看| 三级在线观看一区二区| 日韩电影一二三区| 精品一区二区三区香蕉蜜桃| 韩国欧美国产1区| 成人性视频免费网站| 99国产欧美久久久精品| 91国产精品成人| 欧美夫妻性生活| 久久午夜色播影院免费高清| 亚洲国产激情av| 亚洲一区在线观看视频| 日本亚洲视频在线| 国产成人精品网址| 欧美性猛片xxxx免费看久爱| 91精品国产综合久久精品性色| 欧美一二三四在线| 国产精品久久影院| 亚洲高清免费一级二级三级| 美女一区二区三区| 不卡影院免费观看| 欧美理论电影在线| 欧美国产精品中文字幕| 亚洲国产美女搞黄色| 国产美女在线观看一区| 一本大道av伊人久久综合| 日韩一区二区电影网| 中文字幕一区三区| 捆绑调教美女网站视频一区| 成人av网站在线观看免费| 337p亚洲精品色噜噜噜| 亚洲欧美在线高清| 精品一二线国产| 欧美色手机在线观看| 久久久久久**毛片大全| 香蕉av福利精品导航| 成年人国产精品| 337p粉嫩大胆噜噜噜噜噜91av| 一区二区三区日韩| 国产成人av电影| 日韩欧美一级片| 一区二区成人在线观看| 成人免费视频app| 欧美精品一区二区三区久久久| 《视频一区视频二区| 精品一区二区三区日韩| 欧美精品高清视频| 亚洲精品欧美二区三区中文字幕| 国产综合久久久久影院| 日韩一级大片在线观看| 亚洲成人福利片| 欧美伊人久久大香线蕉综合69| 国产欧美日韩一区二区三区在线观看| 午夜视频在线观看一区二区 | 成人免费视频caoporn| 亚洲精品一区二区三区蜜桃下载 | 亚洲成a人在线观看| 91网站黄www| 国产精品区一区二区三| 大胆亚洲人体视频| 久久久久久久网| 国产乱码精品一区二区三| 精品国产乱码久久久久久图片| 日本vs亚洲vs韩国一区三区 | 日本欧美肥老太交大片| 欧美日韩一区二区三区在线| 一卡二卡三卡日韩欧美| 99久久99久久久精品齐齐| 国产精品成人免费在线| 成人爱爱电影网址| 国产精品毛片高清在线完整版| 国产成人精品在线看| 日本一区二区三区久久久久久久久不| 国产精品香蕉一区二区三区| 久久精品网站免费观看| 豆国产96在线|亚洲| 中文字幕一区二区三区色视频| 成人av电影在线网| 亚洲最新视频在线观看| 欧美日韩一区不卡| 精品在线播放免费| 国产欧美日韩精品一区| 91老师片黄在线观看| 亚洲高清视频中文字幕| 欧美大片在线观看| 国产成人免费视频| 亚洲日本欧美天堂| 91精品国产麻豆| 国产成人精品三级| 一区二区三区不卡视频在线观看| 欧美精品 日韩| 国产伦精品一区二区三区免费迷| 欧美极品aⅴ影院| 色欧美乱欧美15图片| 男女视频一区二区| 国产精品久久综合| 欧美一级日韩不卡播放免费| 国产精品一区专区| 一区二区三区四区不卡在线| 日韩免费观看高清完整版在线观看| 国产精品一区二区男女羞羞无遮挡 | 精品制服美女丁香| 亚洲免费在线视频| 日韩欧美在线123| a级精品国产片在线观看| 五月婷婷另类国产| 国产精品成人午夜| 日韩情涩欧美日韩视频| 91视视频在线观看入口直接观看www | 国产成人啪免费观看软件| 亚洲一线二线三线久久久| 久久亚洲私人国产精品va媚药| 91麻豆swag| 精品影视av免费| 亚洲成人在线观看视频| 国产精品久久久久毛片软件| 91精品国产综合久久福利软件| www.66久久| 蜜臀av在线播放一区二区三区 | 99re6这里只有精品视频在线观看| 日韩av电影天堂| 亚洲精品亚洲人成人网 | 国产成a人亚洲精品| 三级精品在线观看| 一区二区三区在线观看动漫| 国产无一区二区| 日韩免费看的电影| 欧美一区二区三区人| 日本韩国精品一区二区在线观看| 国产精品 欧美精品| 精品一区二区三区免费| 日本成人在线不卡视频| 亚洲成人免费av| 亚洲一区二区黄色| 一级女性全黄久久生活片免费| 欧美高清一级片在线观看| 精品粉嫩超白一线天av| 欧美成人video| 日韩欧美在线影院| 欧美zozo另类异族| 精品少妇一区二区三区免费观看 | 免费一区二区视频| 日产国产高清一区二区三区| 一卡二卡三卡日韩欧美| 亚洲一区二区三区自拍| 一个色妞综合视频在线观看| 一区二区三区精品| 午夜欧美在线一二页| 丝袜诱惑亚洲看片| 毛片基地黄久久久久久天堂| 久久精品国产亚洲a| 久久66热re国产| 国产河南妇女毛片精品久久久| 国产呦精品一区二区三区网站 | 精品福利一区二区三区| 久久精品在线免费观看| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 欧美aaa在线| 国产在线精品不卡| 91欧美一区二区| 欧美日韩久久久一区| 欧美一区中文字幕| 久久亚洲精品国产精品紫薇 | 成人综合婷婷国产精品久久免费| 成人亚洲一区二区一| 日本韩国视频一区二区| 69久久夜色精品国产69蝌蚪网| 日韩欧美三级在线| 国产精品久久久久久久久动漫| 亚洲精品久久久蜜桃| 青青草国产精品亚洲专区无| 国内精品伊人久久久久影院对白| 国产成人精品www牛牛影视| 91在线视频播放| 欧美精品123区| 国产精品热久久久久夜色精品三区 | 蜜臀av性久久久久蜜臀aⅴ流畅| 国产精品1区2区3区在线观看| 日本二三区不卡| 久久网站热最新地址| 亚洲精品五月天|