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

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

?? main.c

?? i.Mx31 bootloader(for WinCE6.0)
?? C
字號:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
//------------------------------------------------------------------------------
//
// Copyright (C) 2006, Freescale Semiconductor, Inc. All Rights Reserved.
// THIS SOURCE CODE, AND ITS USE AND DISTRIBUTION, IS SUBJECT TO THE TERMS
// AND CONDITIONS OF THE APPLICABLE LICENSE AGREEMENT
//
//------------------------------------------------------------------------------
//
// File: main.c
//
// OEM IPL routines for Freescale MX31 ADS hardware platform.
//
//------------------------------------------------------------------------------
#include <windows.h>
#include <iplcommon.h>
#include <bootpart.h>   // Needed for partition types...
#include <fmd.h>
#include "bsp.h"
#include "keys.h"

//-----------------------------------------------------------------------------
// External Functions
extern void Launch(UINT32 ulLaunchAddr);

//-----------------------------------------------------------------------------
// External Variables

//-----------------------------------------------------------------------------
// Defines
// Version number
#define IPL_VERSION_MAJOR   1
#define IPL_VERSION_MINOR   0

//-----------------------------------------------------------------------------
// Types

//-----------------------------------------------------------------------------
// Global Variables
//
// These four variables below are used by iplcommon
//
// Flash start and length. They are used for NOR IPL.
// We only support NAND IPL so just set them 0.
UINT32 g_ulFlashBase = 0;
UINT32 g_ulFlashLengthBytes = 0;

// BootPart work buffer start and length that will 
// be set in OEMIPLInit.
UINT32 g_ulBPartBase;
UINT32 g_ulBPartLengthBytes;

//-----------------------------------------------------------------------------
// Local Variables

//-----------------------------------------------------------------------------
// Local Functions

//------------------------------------------------------------------------------
//
// Function: main
//
// This function is the IPL main entry.
//
// Parameters:
//      None.
//
// Returns:
//      None.
//
//------------------------------------------------------------------------------
void main(void)
{
    // Call into the IPLcommon main routine.
    IPLmain();
}

//------------------------------------------------------------------------------
//
// Function: OEMMessageHandler
//
// This function is the OEM message handler.
//
// Parameters:
//      MessageCode
//          [in] IPL message code.
//
//      pMessageString
//          [in] The message to output.
//
// Returns:
//      None.
//
//------------------------------------------------------------------------------
static void OEMMessageHandler(IPL_MESSAGE_CODE MessageCode, 
    LPWSTR pMessageString)
{
    OEMWriteDebugString((UINT16 *)pMessageString);
}

//------------------------------------------------------------------------------
//
// Function: OEMIPLInit
//
// This function performs OEM initializaiton for IPL.
//
// Parameters:
//      None.
//
// Returns:
//      TRUE indicates success. FALSE indicates failure.
//
//------------------------------------------------------------------------------
BOOLEAN OEMIPLInit(void)
{
    // Initialize the UART.
    OEMInitDebugSerial();

    KITLOutputDebugString("Microsoft Windows CE IPL %d.%d for MX31 ADS (%s %s)\r\n",
                         IPL_VERSION_MAJOR, IPL_VERSION_MINOR, __DATE__, __TIME__);

    // Set BootPart work buffer start and length
    g_ulBPartBase = (UINT32)OALPAtoUA(IMAGE_BOOT_NANDCACHE_RAM_START);
    g_ulBPartLengthBytes = IMAGE_BOOT_NANDCACHE_RAM_SIZE;

    // Messaging handler callback.
    g_pfnMessageHandler = OEMMessageHandler;

    // Initialize Keypad for ULDR forcing key read
    KeypadInit();

    return(TRUE);
}

//------------------------------------------------------------------------------
//
// Function: OEMGetUpdateMode
//
// This function determines whether the device is in update mode or 
// normal boot mode. It also implements the IPLCOMMON helper routines. 
//
// Parameters:
//      None.
//
// Returns:
//      TRUE indicates success. FALSE indicates failure.
//
//------------------------------------------------------------------------------
BOOLEAN OEMGetUpdateMode(void)
{
    BOOL fUpdateMode = FALSE;

    // Check the left softkey for forcing ULDR
    if (KeypadRead() & KEY_TSOFT1)
    {
        fUpdateMode = TRUE;
        KITLOutputDebugString("IPL: Forcing ULDR soft key 1 is down\r\n");
    }

    // Check the RAM flag
    if (!fUpdateMode)
    {
        BOOL *pfUpdateMode = OALArgsQuery(OAL_ARGS_QUERY_UPDATEMODE);
        if (pfUpdateMode != NULL)
        {
            fUpdateMode = *pfUpdateMode;
            // Tell us when update flag is set
            if (fUpdateMode)
                KITLOutputDebugString("IPL: RAM Update Flag is set\r\n");
        }
        else
        {
            KITLOutputDebugString("IPL: RAM Update is not available!!\r\n");
        }
    }

    // When RAM flag isn't set check persistent one
    if (!fUpdateMode)
    {
        // Get persistent flag
        if (!BP_GetUpdateModeFlag(&fUpdateMode))
            KITLOutputDebugString("IPL: Failed to get Persistent Update Flag\r\n");

        if (fUpdateMode)
            KITLOutputDebugString("IPL: Persistent Update Flag is set\r\n");
    }

    if (fUpdateMode)
        KITLOutputDebugString("IPL: Launching the Update Loader\r\n");
    else
        KITLOutputDebugString("IPL: Launching the OS image\r\n");

    return(fUpdateMode);
}

//------------------------------------------------------------------------------
//
// Function: OEMTranslateBaseAddress
//
// This function converts an image virtual address into an 
// IPL-compatible address.
//
// Parameters:
//      ulPartType 
//          [in] Specifies the partition type.
//
//      ulAddr 
//          [in] Starting virtual address of the specified partition. 
//
//      pulTransAddr 
//          [out] Pointer to the translated IPL-compatible address.
//
// Returns:
//      TRUE indicates success. FALSE indicates failure.
//
//------------------------------------------------------------------------------
BOOLEAN OEMTranslateBaseAddress(UINT32 ulPartType, UINT32 ulAddr, 
    UINT32 *pulTransAddr)
{
    if (pulTransAddr == NULL)
    {
        return(FALSE);
    }

    // No translation required since IPL is operating in Virtual space.
    switch(ulPartType)
    {
    case PART_BOOTSECTION:
    case PART_XIP:
    default:
        *pulTransAddr = ulAddr;
    }

    return(TRUE);
}

//------------------------------------------------------------------------------
//
// Function: OEMLaunchImage
//
// This function launches the loaded image.

//
// Parameters:
//      ulLaunchAddr 
//          [in] Jump address of the image to launch. 
//
// Returns:
//      None.
//
//------------------------------------------------------------------------------
void OEMLaunchImage(UINT32 ulLaunchAddr)
{
    UINT32 ulPhysicalJump = 0;

    // The IPL is running with the MMU on - before we jump to the loaded image, we need to convert
    // the launch address to a physical address and turn off the MMU.

    // Convert jump address to a physical address.
    ulPhysicalJump = OALVAtoPA((void *)ulLaunchAddr);

    KITLOutputDebugString("Jumping to VA 0x%x PA 0x%x...\r\n", ulLaunchAddr, ulPhysicalJump);

    // Jump...
    Launch(ulPhysicalJump);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产福利一区二区| 老司机午夜精品| 色又黄又爽网站www久久| 国产精品久久三| 一本久道久久综合中文字幕| 亚洲人成电影网站色mp4| 欧美亚洲高清一区二区三区不卡| 午夜精品福利一区二区蜜股av| 制服丝袜日韩国产| 国产一区二区久久| ㊣最新国产の精品bt伙计久久| 欧美喷潮久久久xxxxx| 久久精品国产一区二区三区免费看| 久久婷婷成人综合色| 成人综合在线网站| 一区二区三区高清在线| 91精品国产一区二区| 国产激情一区二区三区四区| 亚洲精品精品亚洲| 日韩欧美国产三级| av一二三不卡影片| 视频在线在亚洲| 中文字幕精品综合| 欧美日韩一区二区不卡| 激情久久五月天| 亚洲女与黑人做爰| 日韩欧美不卡一区| a在线播放不卡| 免费av网站大全久久| 国产农村妇女毛片精品久久麻豆| 在线观看亚洲专区| 国产精品乡下勾搭老头1| 亚洲一区二区偷拍精品| 久久久久久久久久久久久夜| 欧美三级电影在线观看| 成人app软件下载大全免费| 午夜精品福利视频网站| ●精品国产综合乱码久久久久| 91麻豆精品国产自产在线观看一区| 国产成人免费在线观看| 欧美a级一区二区| 亚洲人成精品久久久久久| 久久久久久久免费视频了| 777亚洲妇女| 色综合久久久久| 成人自拍视频在线| 精品一区二区三区免费视频| 国产激情视频一区二区三区欧美| 精品国产sm最大网站免费看| 91丨porny丨首页| 亚洲日本在线a| xnxx国产精品| 欧美丰满高潮xxxx喷水动漫| 成人黄色免费短视频| 美女尤物国产一区| 婷婷六月综合网| 亚洲人123区| 国产精品久久久久四虎| 久久亚洲欧美国产精品乐播 | 视频一区二区不卡| 一区二区三区四区视频精品免费 | 欧美国产综合一区二区| 精品久久一区二区三区| 欧美高清精品3d| 欧美日韩久久一区二区| 在线免费观看视频一区| 99精品久久免费看蜜臀剧情介绍| 国产成人免费av在线| 国产乱码精品一品二品| 精品系列免费在线观看| 久久国产精品72免费观看| 蜜桃久久av一区| 久久er精品视频| 韩国午夜理伦三级不卡影院| 久久99精品久久久久久国产越南 | 国产精品免费视频网站| 国产拍揄自揄精品视频麻豆| 国产日韩影视精品| 欧美国产成人精品| 国产精品久久久一本精品 | 国产成人精品www牛牛影视| 国产精品白丝jk黑袜喷水| 国产精品中文字幕日韩精品| 粉嫩嫩av羞羞动漫久久久| 成人av免费观看| 在线观看一区二区视频| 欧美日韩和欧美的一区二区| 欧美色爱综合网| 欧美大片在线观看| 国产日韩在线不卡| 亚洲私人黄色宅男| 午夜欧美一区二区三区在线播放| 亚洲444eee在线观看| 日本在线不卡视频一二三区| 久久精品国产精品亚洲红杏| 国产伦精品一区二区三区免费迷| 国产精品996| 96av麻豆蜜桃一区二区| 在线亚洲一区观看| 538prom精品视频线放| 久久一日本道色综合| 欧美国产综合一区二区| 亚洲在线一区二区三区| 看片的网站亚洲| 成人动漫一区二区| 欧美美女黄视频| 久久亚区不卡日本| 中文字幕一区二区在线观看| 亚洲一区在线播放| 美女免费视频一区二区| eeuss鲁片一区二区三区在线看| 欧美日韩一级片在线观看| 久久亚洲欧美国产精品乐播| 亚洲综合一二三区| 精品一二线国产| 一本到三区不卡视频| 日韩午夜激情视频| 中文字幕字幕中文在线中不卡视频| 亚洲福利一区二区三区| 国产精品性做久久久久久| 欧美亚洲国产一区二区三区| 久久精品日韩一区二区三区| 亚洲va韩国va欧美va| 从欧美一区二区三区| 欧美一区二区三级| 亚洲女性喷水在线观看一区| 九一久久久久久| 欧美日韩亚洲高清一区二区| 国产精品色婷婷久久58| 日产国产高清一区二区三区| 99精品国产99久久久久久白柏| 日韩欧美电影一区| 一区二区欧美视频| 粉嫩高潮美女一区二区三区 | 日本一区二区三区视频视频| 日韩精彩视频在线观看| 91啪在线观看| 国产日韩一级二级三级| 久久草av在线| 精品视频免费看| 亚洲伦在线观看| 国产成人一区二区精品非洲| 日韩欧美不卡在线观看视频| 亚洲国产精品一区二区久久恐怖片| 成人国产精品免费| 26uuu国产一区二区三区| 日本在线不卡一区| 欧美日韩一级大片网址| 亚洲区小说区图片区qvod| 国产精品99久久久久久久vr| 亚洲精品一区二区三区99| 日韩电影网1区2区| 欧美亚洲日本国产| 一级做a爱片久久| 91丨九色丨尤物| 亚洲日本在线视频观看| 99久久精品免费看国产| 国产精品传媒入口麻豆| 丁香一区二区三区| 欧美国产日韩一二三区| 成人福利视频网站| 中文字幕日本不卡| 成人精品在线视频观看| 中文字幕欧美日韩一区| 福利一区福利二区| 中文字幕免费观看一区| 成人午夜伦理影院| 国产精品伦理在线| 成人国产亚洲欧美成人综合网| 中文字幕在线不卡视频| fc2成人免费人成在线观看播放| 国产精品午夜春色av| 99视频在线精品| 亚洲男人的天堂在线aⅴ视频| 91精品福利在线| 亚洲第一福利一区| 日韩一区二区在线看片| 激情深爱一区二区| 国产日产欧美一区| av电影在线观看不卡| 一区二区三区精品| 91精品一区二区三区久久久久久| 欧美a级一区二区| 久久久不卡网国产精品二区| 成人一区二区三区在线观看| 亚洲婷婷国产精品电影人久久| 在线观看网站黄不卡| 日韩福利电影在线观看| 2020日本不卡一区二区视频| 国产白丝网站精品污在线入口| 国产精品高清亚洲| 欧美性受xxxx| 久久国产精品免费| 国产精品久久久久aaaa樱花| 色婷婷亚洲精品| 美女脱光内衣内裤视频久久网站| 久久久高清一区二区三区| 91小视频在线免费看| 免费成人结看片| 国产精品久久久久久妇女6080 |