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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? bootmem.c

?? 在高通的手機(jī)平臺下,一個下載手機(jī).bin文件到手機(jī)的flash中的工具,包含PC端的程序代碼和運(yùn)行在基帶處理器中的代碼.
?? C
字號:
/*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*

                  B O O T  M E M O R Y  I N I T I A L I Z A T I O N

GENERAL DESCRIPTION
  This module handles the DMSS Boot block memory initialization.  It is 
  responsible for a hardware RAM test and a ROM verification test.  The boot
  memory read/write data segments are also initialized in this module.

EXTERNALIZED FUNCTIONS
  boot_rom_test()
    Performs simple ROM image verification.

  boot_ram_init()
    Zero-Out ZI RAM and copy initialized data (RW-DATA) into RAM

INITIALIZATION AND SEQUENCING REQUIREMENTS
  All necessary initialization for normal CPU operation must have
  been performed before entering this module.

Copyright (c) 1991-2002 by QUALCOMM Incorporated. All Rights Reserved.
*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*/


/*===========================================================================

                           EDIT HISTORY FOR FILE
  This section contains comments describing changes made to the module.
  Notice that changes are listed in reverse chronological order.

$Header:   L:/src/asw/MSM6000/vcs/bootmem.c_v   1.1   20 Mar 2002 19:35:36   hromero  $
   
when       who     what, where, why
--------   ---     ----------------------------------------------------------
04/02/01   nxb     HW watchdog every 256KB during RAM init. 
03/12/01   kk      Added BOOTHW_KICK_WATCHDOG when zeroing out the zero-init 
                   data segment of application RAM.
03/06/01   bkm     Replaced KICK_WATCHDOG with BOOTHW_KICK_WATCHDOG in the 
                   code featurized by FEATURE_IRAM.
09/08/00   jcw     Merged in the following changes
           jcw     Added copy of code from ROM to IRAM
           jct     Added system mode stack declaration
08/27/00   rmd     Replaced KICK_WATCHDOG with BOOTHW_KICK_WATCHDOG (in boothw.h).
                   Removed macro definition for KICK_WATCHDOG
08/20/99   mk      ARM2.5 compiler update.
03/24/99    ms     Added support for FEATURE_SI_STACK_WM
03/17/99    ms     Changed ROM check to use VBB provided symbols, not pointers
02/19/99    ms     Featurized the declaration of fiq_stack.
11/05/98   mdd     Improved formatting and comments in boot_ram_init.
11/03/98   mdd     Checked into SS archive -- no changes.  Version numbers
                   restart, however.
10/21/98   hcg     Initialize all RW RAM areas - Only zero-out ZI areas, 
                   not all of RAM - Added IRQ and FIQ stack definitions
10/14/98   hcg     Added h/w watchdog kicks to avoid h/w reset
09/13/98   hcg     Updates to ROM/RAM test.
07/26/98   hcg     Revised for coding standard, removed unused code
06/01/98   hcg     Created

===========================================================================*/


/*===========================================================================

                     INCLUDE FILES FOR MODULE

===========================================================================*/
#include "bootmem_include.h"

//;#include "armasm.h"
//;#include "mem6000reg.h"

typedef  unsigned char      boolean;     /* Boolean value type. */

typedef  unsigned long int  uint32;      /* Unsigned 32 bit value */
typedef  unsigned short     uint16;      /* Unsigned 16 bit value */
typedef  unsigned char      uint8;       /* Unsigned 8  bit value */

typedef  signed long int    int32;       /* Signed 32 bit value */
typedef  signed short       int16;       /* Signed 16 bit value */
typedef  signed char        int8;        /* Signed 8  bit value */

/* This group are the deprecated types.  Their use should be
** discontinued and new code should use the types above
*/
typedef  unsigned char     byte;         /* Unsigned 8  bit value type. */
typedef  unsigned short    word;         /* Unsinged 16 bit value type. */
typedef  unsigned long     dword;        /* Unsigned 32 bit value type. */



/*----------------------------------------------------------------------------
  System stacks for each processor mode
----------------------------------------------------------------------------*/
byte svc_stack[SVC_Stack_Size];
   /* supervisor mode stack */

byte abort_stack[Abort_Stack_Size];
   /* abort mode stack */

byte undef_stack[Undef_Stack_Size];
   /* undefined mode stack */

byte irq_stack[IRQ_Stack_Size];
   /* IRQ mode stack */
   
byte sys_stack[Sys_Stack_Size];
   /* IRQ mode stack */
   
#if defined FEATURE_INT_125_FIQ
byte fiq_stack[FIQ_Stack_Size];
   /* FIQ mode stack */
#endif

/*----------------------------------------------------------------------------
  Static LCD Error Messages
----------------------------------------------------------------------------*/
const char rom_error_msg[] = "ROM FAILED";

/*===========================================================================

  FUNCTION boot_rom_test

  DESCRIPTION
    This function performs a simple ROM test to verify that the target ROM
    contains a valid application image by reading the target model number
    from the target model number location.

  PARAMETERS
    None.

  DEPENDENCIES
    None.

  RETURN VALUE
    Value of Zero if ROM test passed, otherwise a const char* to the ROM test
    fail error message is returned.

SIDE EFFECTS
  None.
===========================================================================*/
void*
boot_rom_test()
{
  extern word stamp_mob_model;
  extern word boot_mob_model;

  if (boot_mob_model == stamp_mob_model)
    return (void*)0;  /* pass */
  else
    return ( (void *) rom_error_msg);
}

/*============================================================================

  FUNCTION BOOT_RAM_INIT

  DESCRIPTION
    Zero-Out RAM and copy initialized data (RW-DATA) into RAM for both
    the bootblock (BB_RAM) and for the application area (APP_RAM).
    Note that this function cannot use any variables stored in RAM.
    In theory we can use the stack for local variables, but we're not
    going to do that just to be safe.  Therefore, we bind our local
    variables to registers 1-3.

    See the scatter loading file (*.scl) for a description of the 
    structure of RAM.

  FORMAL PARAMETERS
    None.

  DEPENDENCIES
    None.

  RETURN VALUE
    None.

  SIDE EFFECTS
    Memory not in the initialized image or in the zero-init section is
    not affected by this function -- those locations are left in an
    unknown state.  Also, the watchdog timer is kicked more often than
    is strictly necessary, but that is a cheap (time-wise) operation
    and will prevent future problems (in case we increase our memory usage).

============================================================================*/
__global_reg(1) dword *dst32;
__global_reg(2) dword *src32;
__global_reg(3) dword *stop_point;

/* 
 * Pointers to the base and length of BB_RAM segments 
 *
 * These symbols are generated by the linker with $'s instead of _'s.  We
 * re-name the symbol to use _'s to make valid C identifiers.  We embed 
 * those symbols in bootsys.s so that we have them in the flash.
 */
extern byte *Image__BB_RAM__Base;       
extern byte *Image__BB_RAM__Length;     
extern byte *Load__BB_RAM__Base;        
extern byte *Image__BB_RAM__ZI__Base;   
extern byte *Image__BB_RAM__ZI__Length;

/* 
 * Pointers to the base and length of APP_RAM segments 
 *
 * These symbols are generated by the linker with $'s instead of _'s.  We
 * re-name the symbol to use _'s to make valid C identifiers.  We embed 
 * those symbols in bootsys.s so that we have them in the flash.
 */
extern byte *Image__BB_RAM__Base;       
extern byte *Image__BB_RAM__Length;     
extern byte *Load__BB_RAM__Base;        
extern byte *Image__BB_RAM__ZI__Base;   
extern byte *Image__BB_RAM__ZI__Length;

#if defined(FEATURE_IRAM)
#error code not present
#endif /* FEATURE_IRAM */


void
boot_ram_init()
{
  /* kick watchdog at least every 426 ms. */
  BOOTHW_KICK_WATCHDOG();

  /* Copy initialized data segment for the boot block
   *
   * This copies data from Load__BB_RAM__Base to Image__BB_RAM__Base
   * for the length Image__BB_RAM__Length.  This is accomplished by
   * running two pointers in parallel -- one points to the flash area
   * where the data is stored, and the other points to the RAM.  We
   * stop when the destination pointer reaches the end of the
   * initialized segment (Base + Length).  We pre-calculate this point
   * and store it in a register for effeciency.
   */
  stop_point = (dword *) ( (dword) Image__BB_RAM__Base + 
                           (dword) Image__BB_RAM__Length); 
  for( src32 = (dword *) Load__BB_RAM__Base, 
         dst32 = (dword *) Image__BB_RAM__Base; 
       dst32 < stop_point;
       src32++, dst32++ ) 
    {
      *dst32 = *src32;
    }

  /* kick watchdog at least every 426 ms. */
  BOOTHW_KICK_WATCHDOG();

  /* Zero out the zero-init data segment of the boot block
   *
   * This writes zeros into the RAM in the zero-init section of the
   * boot block ram.  This area starts at Image__BB_RAM__ZI_Base and
   * continues for Image__BB_RAM__ZI_Length dwords.
   */
  stop_point = (dword *) ( (dword) Image__BB_RAM__ZI__Base + 
                           (dword) Image__BB_RAM__ZI__Length); 
  for( dst32=(dword *) Image__BB_RAM__ZI__Base; 
       dst32 < stop_point;
       dst32++ ) 
    {
      *dst32 = 0;
    }

  /* kick watchdog at least every 426 ms. */
  BOOTHW_KICK_WATCHDOG();   

 

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区三区在线观看 | 依依成人精品视频| 91蝌蚪porny九色| 亚洲一区二区三区在线播放| 欧美三日本三级三级在线播放| 亚洲一级电影视频| 91精品免费在线观看| 久草中文综合在线| 欧美国产激情二区三区| 成人激情小说乱人伦| 亚洲久本草在线中文字幕| 在线成人高清不卡| 精品一区二区三区视频| 国产精品九色蝌蚪自拍| 欧美日韩一区二区在线观看视频| 欧美aaaaaa午夜精品| 久久久久久久精| 91福利国产精品| 欧美aaaaa成人免费观看视频| 欧美激情一区二区三区在线| 色美美综合视频| 免费高清在线视频一区·| 欧美国产日韩精品免费观看| 在线免费不卡视频| 极品尤物av久久免费看| 国产精品久久久爽爽爽麻豆色哟哟 | 色综合一个色综合| 日韩在线一二三区| 中文av字幕一区| 欧美日韩国产一级二级| 国产精品一区在线观看你懂的| 中文字幕的久久| 欧美剧情电影在线观看完整版免费励志电影 | 日本成人在线看| 国产精品色在线| 5858s免费视频成人| 国产成人亚洲综合a∨婷婷| 亚洲一区二区av在线| 久久女同精品一区二区| 欧美日精品一区视频| 懂色av一区二区三区免费看| 舔着乳尖日韩一区| 日本一区二区三区dvd视频在线| 欧美丝袜自拍制服另类| 国产馆精品极品| 日韩精品一区第一页| 亚洲三级电影网站| 久久久久久久久久久久久女国产乱 | 国产成人免费xxxxxxxx| 性做久久久久久久久| 中文字幕欧美日韩一区| 日韩欧美激情四射| 91成人免费在线| 国产91精品露脸国语对白| 欧美aaa在线| 洋洋av久久久久久久一区| 久久久久久久久蜜桃| 欧美一区二区视频在线观看2020| av激情成人网| 国内精品自线一区二区三区视频| 亚洲一区二区四区蜜桃| 国产精品免费观看视频| 日韩精品一区二区三区四区视频| 欧美图区在线视频| 99麻豆久久久国产精品免费| 韩国av一区二区三区在线观看| 亚洲成av人综合在线观看| 国产精品美女久久久久久| 日韩欧美中文字幕精品| 欧美日韩高清一区二区不卡| 一本大道久久a久久综合婷婷| 国产一区在线视频| 日本大胆欧美人术艺术动态| 夜夜操天天操亚洲| 国产精品久久精品日日| 久久久久国产精品麻豆| 欧美日韩色一区| 91丨九色丨蝌蚪丨老版| 国产**成人网毛片九色| 国产精品一区在线观看你懂的| 蜜桃av噜噜一区| 天天av天天翘天天综合网色鬼国产| 亚洲啪啪综合av一区二区三区| 国产日韩av一区| 久久夜色精品国产噜噜av| 日韩区在线观看| 日韩一区二区视频| 欧美男生操女生| 欧美视频一区二区| 欧美性大战xxxxx久久久| 91丨porny丨国产入口| 99在线精品观看| 波多野结衣的一区二区三区| 国产二区国产一区在线观看| 激情久久五月天| 国产综合色产在线精品| 久久99国产精品麻豆| 久久国产精品72免费观看| 秋霞av亚洲一区二区三| 午夜视频在线观看一区二区三区| 亚洲图片欧美一区| 亚洲成a人片综合在线| 亚洲va国产va欧美va观看| 亚洲成人在线网站| 五月天一区二区| 天堂va蜜桃一区二区三区| 婷婷激情综合网| 青青青伊人色综合久久| 久久精品国产精品亚洲综合| 久久成人综合网| 国产成人综合亚洲网站| 懂色av中文字幕一区二区三区| 成人黄色免费短视频| 91在线小视频| 欧美综合一区二区| 欧美日韩国产成人在线免费| 欧美一区二区免费| 26uuu久久综合| 久久久久久久久蜜桃| 国产精品视频yy9299一区| 亚洲猫色日本管| 亚洲国产一区在线观看| 日韩黄色一级片| 精品无码三级在线观看视频| 国产成人综合网| 色综合咪咪久久| 欧美日韩国产免费| 日韩女优av电影在线观看| 久久综合中文字幕| 国产精品国产三级国产普通话99 | 精品国产乱码久久久久久蜜臀| 精品99999| 国产精品免费观看视频| 一区二区三区精密机械公司| 五月婷婷另类国产| 国产在线日韩欧美| 99精品视频在线免费观看| 欧美色倩网站大全免费| 日韩精品一区二| 中文字幕在线观看一区二区| 亚洲一区日韩精品中文字幕| 免费在线看一区| 国产99久久久国产精品免费看| 91精品1区2区| 日韩美女视频在线| 国产精品乱人伦| 午夜a成v人精品| 国产乱人伦偷精品视频不卡| 99久久99精品久久久久久| 欧美日韩一区二区在线视频| 久久女同互慰一区二区三区| 亚洲免费av高清| 激情成人综合网| 91免费精品国自产拍在线不卡| 欧美久久一二区| 国产精品美女视频| 日韩国产一区二| 东方aⅴ免费观看久久av| 欧美三区在线观看| 久久精品在线免费观看| 亚洲永久免费视频| 国产真实乱偷精品视频免| 色婷婷av一区二区三区大白胸| 欧美一级片在线看| 日韩伦理av电影| 日韩精品亚洲一区| 91亚洲国产成人精品一区二区三| 日韩一级黄色大片| 最新欧美精品一区二区三区| 美女尤物国产一区| 91福利精品视频| 久久精品亚洲国产奇米99| 亚洲国产精品精华液网站| 国产成人av一区| 91精品午夜视频| 亚洲三级免费电影| 国产乱淫av一区二区三区| 欧美综合在线视频| 国产精品情趣视频| 久久99久久久久| 欧美伊人久久大香线蕉综合69| 2020国产精品| 日韩精品一二区| 色综合激情五月| 国产午夜精品久久久久久免费视| 亚欧色一区w666天堂| 成人精品鲁一区一区二区| 欧美岛国在线观看| 同产精品九九九| 91麻豆国产香蕉久久精品| 2014亚洲片线观看视频免费| 天堂在线亚洲视频| 99re8在线精品视频免费播放| 精品国产免费久久| 亚洲大片精品永久免费| 97久久久精品综合88久久| 久久精品视频在线看| 久久精品国产免费| 欧美精品三级日韩久久| 亚洲一区视频在线|