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

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

?? mtkdump.cpp

?? DVD
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// **********************************************************************
//
//  MTK MT13x9 Memory Dumper
//
//  For reading/writing memory from Mediatek MT13x9 chip based
//  players.
//
// **********************************************************************
//
//  Copyright (C) 2006 MaBreaker
//
//  This program is free software; you can redistribute it and/or
//  modify it under the terms of the GNU General Public License
//  as published by the Free Software Foundation; either version 2
//  of the License, or (at your option) any later version.
//
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//
//  You should have received a copy of the GNU General Public License
//  along with this program; if not, write to the Free Software
//  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
//  02110-1301, USA.
//
// **********************************************************************

#ifndef __BORLANDC__
//  #define _DEBUG
#endif

#define THREAD

#include <stdio.h>
#include <windows.h>                // Port definitions

#ifdef THREAD
//    #define __MT__                      // Multi threading
    #include <process.h>                // _beginthread, _endthread

/*
  #ifdef __cplusplus
    extern "C" {
  #endif

    unsigned long _beginthread(void (__closure *)(void *), unsigned, void*);
    //unsigned long _beginthread(void (*)(void *), unsigned, void*);
    void _endthread(void);

  #ifdef __cplusplus
    }
  #endif
*/
#endif

#include "MTKDump.h"
#include "Mediatek.h"
#include "Print.h"
//#include "ComDef.h"
//#include "ComMain.h"

void Testi(void *)
{
    printf("Testi");
    Sleep(5000);
}

// **********************************************************************

// Main Options
bool  bDumpRead;                    // /r : Read mode
bool  bDumpWrite;                   // /w : Write mode
int   iDumpAddress;                 // /a : Target address
uchar bDumpTargetMem;               // /m : Target memory

// Read options
int   iDumpLength;                  // /l : Output / File length
uchar bDumpHexText;                 // /t : Output hex ediot look text file

// Port Options
uchar bDumpPort;                    // /c : Com port
ulong ulDumpBaud;                   // /b : Baud rate
uchar bDumpDataBit;                 // /d : Databits
char  cDumpParity;                  // /p : Parity
uchar bDumpStopBit;                 // /s : Stopbits

// Common
uchar bDumpRetry;                    // /R : Reply count
uchar bDumpDelay;                    // /D : Delay value

// **********************************************************************

#define mStopBit(Byte)      (double)(1 + Byte * 0.5)
#define mParity(Byte)       ctabParity[Byte]
const char ctabParity[6] = "NOEMS";

// **********************************************************************
//  PRINT USAGE TEXT
// **********************************************************************

void Usage(char *ptrProg)
{
    fprintf(stderr, "Dump / Write MT13x9 Player memory to a file, according to the options.\n\n");
	fprintf(stderr, "USAGE : %s /r /m=<mem> /a=<address> [option] Outfile.bin\n", ptrProg);
	fprintf(stderr, "        %s /w /m=<mem> /a=<address> [option] Patch.bin\n", ptrProg);

	fprintf(stderr, "\nOptions : \n");
	fprintf(stderr, "  /h           This help\n");
	fprintf(stderr, "  /r           Read from memory\n");
	fprintf(stderr, "  /w           Write to memory\n");
	fprintf(stderr, "  /a=LONG      Target address\n");
	fprintf(stderr, "  /m=BYTE      Target memory\n");
	fprintf(stderr, "                1 = FLASH\n");
	fprintf(stderr, "                2 = XDATA\n");
	fprintf(stderr, "                3 = IDATA\n");
	fprintf(stderr, "                4 = RISC RAM\n");
	fprintf(stderr, "                5 = DRAM\n");
	fprintf(stderr, "                6 = EEPROM\n");

	fprintf(stderr, "\nRead Options : \n");
	fprintf(stderr, "  /l=LONG      Dump length (not for write)\n");
	fprintf(stderr, "  /t    Output hex ediot look text file\n");

	fprintf(stderr, "\nPort Options : \n");
	fprintf(stderr, "  /c=BYTE      Com port (default 1)\n");
	fprintf(stderr, "  /b=LONG      Baud rate (default 115200)\n");
	fprintf(stderr, "                (56700,115200)\n");
	fprintf(stderr, "  /d=BYTE      Databits (default 8)\n");
	fprintf(stderr, "                (5,6,7,8)\n");
	fprintf(stderr, "  /p=CHAR      Parity (default N)\n");
	fprintf(stderr, "                N = None\n");
	fprintf(stderr, "                O = Odd\n");
	fprintf(stderr, "                E = Even\n");
	fprintf(stderr, "                M = Mark\n");
	fprintf(stderr, "                S = Space\n");
	fprintf(stderr, "  /s=BYTE      Stopbits (default 1)\n");
	fprintf(stderr, "                1 = One\n");
	fprintf(stderr, "                15 = 1.5 bits\n");
	fprintf(stderr, "                2 = Two\n");
	fprintf(stderr, "  /n=BYTE      Reply count (default 3)\n");
	fprintf(stderr, "  /i=BYTE      Delay value (default 10)\n");

    fprintf(stderr, "\nThis will read 32 bytes from RISC RAM address 0x1234");
    fprintf(stderr, "to Outfile.bin. Using COM port 2\n\n");
    fprintf(stderr, "EXAMPLE : %s /r /m=2 /a=0x1234 /l=32 /c=2 Outfile.bin\n", ptrProg);

    fprintf(stderr, "\nThis will patch 256 bytes of DRAM address 0x337C00");
    fprintf(stderr, "with Infile.bin. Using COM port 5\n\n");
    fprintf(stderr, "EXAMPLE : %s /w /m=3 /a=0x337C00 /l=0x100 /c=5 Outfile.bin\n", ptrProg);

}

// **********************************************************************
//  INIT DEFAULT SETTINGS
// **********************************************************************

void Init()
{
    // Main Options
    bDumpRead = false;
    bDumpWrite = false;
    iDumpAddress = -1;
    bDumpTargetMem = TARGET_NULL;

    // Read options
    iDumpLength = -1;
    bDumpHexText = false;

    // Port Options
    bDumpPort = 1;

    ulDumpBaud = CBR_115200;
    bDumpDataBit = 8;
    cDumpParity = NOPARITY; // 'N';
    bDumpStopBit = ONESTOPBIT;

    bDumpRetry = 3;
    bDumpDelay = 10;
}

// **********************************************************************
//  PARSE COMMANDLINE
// **********************************************************************
// returns the index of the first argument that is not an option; i.e.
//   does not start with a dash or a slash

int HandleOptions(int argc,char *argv[])
{
	int i, firstnonoption=-1;
    bool bRedef = false;

	for (i=1; i< argc;i++)
	{
		if (argv[i][0] == '/' || argv[i][0] == '-')
		{
			switch (argv[i][1])
			{
				/* An argument -? means help is requested */
				case '?':
				case 'h':
				case 'H':
				case 'r':
				case 'R':
				case 'w':
				case 'W':
				case 't':
				case 'T':
                    if(strlen (argv[i]) > 2) //[2] != '\0')
                    {
    					fprintf(stderr,"Bad option %s\n",argv[i]);
                        exit(EXIT_FAILURE);
                    }
                    break;

				case 'a':
				case 'A':
				case 'm':
				case 'M':
				case 'l':
				case 'L':
				case 'c':
				case 'C':
				case 'b':
				case 'B':
				case 'd':
				case 'D':
				case 'p':
				case 'P':
				case 's':
				case 'S':
				case 'i':
				case 'I':
				case 'n':
				case 'N':
                    if((argv[i][2] != '=') || (strlen(argv[i]) < 4))
                    {
    					fprintf(stderr,"Bad option %s\n",argv[i]);
                        exit(EXIT_FAILURE);
                    }
                    break;

				default:
					fprintf(stderr,"Unknown option %s\n",argv[i]);
					exit(EXIT_FAILURE);
            }

			switch (argv[i][1])
			{
				/* An argument -? means help is requested */
				case '?':
				case 'h':
				case 'H':
					Usage(argv[0]);
					exit(EXIT_FAILURE);

				// Read
				case 'r':
				case 'R':
                    if(bDumpWrite == true)
                    {
    					fprintf(stderr,"Both Read and Write defined. Remove other of these.\n");
                        exit(EXIT_FAILURE);
                    }
                    bDumpRead = true;
                    break;

				// Write
				case 'w':
				case 'W':
                    if(bDumpWrite == true)
                    {
                        bRedef = true;
                        break;
                    }
                    if(bDumpRead == true)
                    {
    					fprintf(stderr,"Both Read and Write defined. Remove other of these.\n");
                        exit(EXIT_FAILURE);
                    }
                    bDumpRead = true;
                    break;

				// Address
				case 'a':
				case 'A':
                    if(iDumpAddress != -1)
                    {
                        bRedef = true;
                        break;
                    }
                    iDumpAddress = strtol(argv[i]+3, NULL, 0);
                    break;

                // Target memory
				case 'm':
				case 'M':
                    if(bDumpTargetMem != 0)
                    {
                        bRedef = true;
                        break;
                    }
                    bDumpTargetMem = (uchar) strtol(argv[i]+3, NULL, 0);
                    switch(bDumpTargetMem)
                    {
                        case 1 :
                            bDumpTargetMem = TARGET_FLASH;
                            break;
                        case 2 :
                            bDumpTargetMem = TARGET_XDATA;
                            break;
                        case 3 :
                            bDumpTargetMem = TARGET_IDATA;
                            break;
                        case 4 :
                            bDumpTargetMem = TARGET_RISC_RAM;
                            break;
                        case 5 :
                            bDumpTargetMem = TARGET_DRAM_LONG;
                            break;
                        case 6 :
                            bDumpTargetMem = TARGET_EEPROM;
                            break;
                        default :
                            fprintf(stderr,"Unknow target mem value %d\n", bDumpTargetMem);
                            exit(EXIT_FAILURE);
                    }
                    break;

				case 'l':
				case 'L':
                    if(iDumpLength != -1)
                    {
                        bRedef = true;
                        break;
                    }
                    iDumpLength = strtol(argv[i]+3, NULL, 0);
                    break;

				// Hex Text
				case 't':
				case 'T':
                    if(bDumpHexText == true)
                    {
                        bRedef = true;
                        break;
                    }
                    bDumpHexText = true;
                    break;

                // Com port nro
				case 'c':
				case 'C':
                    bDumpPort = (uchar) strtol(argv[i]+3, NULL, 0);
                    break;

				// Com port baud rate
                case 'b':
				case 'B':
                    ulDumpBaud = (ulong) strtol(argv[i]+3, NULL, 0);
                    switch(ulDumpBaud)
                    {
                        case CBR_57600:
                        case CBR_115200:
                            break;
                        default:
        					fprintf(stderr,"Bad baud rate %s\n",argv[i]);
                            exit(EXIT_FAILURE);
                    }
                    break;

				// Com port databit count
				case 'd':
				case 'D':
                    bDumpDataBit = (uchar) strtol(argv[i]+3, NULL, 0);
                    if((bDumpDataBit < 5) || (bDumpDataBit > 8))
                    {
       					fprintf(stderr,"Bad databit count %s\n",argv[i]);
                        exit(EXIT_FAILURE);
                    }
                    break;

				// Com port parity
				case 'p':
				case 'P':
                    cDumpParity = argv[i][3];
                    switch(cDumpParity)
                    {
                        case 'N':
                            cDumpParity = NOPARITY;
                            break;
                        case 'M':
                            cDumpParity = MARKPARITY;
                            break;
                        case 'S':
                            cDumpParity = SPACEPARITY;
                            break;
                        case 'E':
                            cDumpParity = EVENPARITY;
                            break;
                        case 'O':
                            cDumpParity = ODDPARITY;
                            break;
                        default:
        					fprintf(stderr,"Bad parity setting %s\n",argv[i]);
                            exit(EXIT_FAILURE);
                    }
                    break;

				// Com port stopbit count
				case 's':
				case 'S':
                    bDumpStopBit = (uchar) strtol(argv[i]+3, NULL, 0);
                    switch(bDumpStopBit)
                    {
                        case 1:
                            bDumpStopBit = ONESTOPBIT;
                            break;
                        case 15:
                            bDumpStopBit = ONE5STOPBITS;
                            break;
                        case 2:
                            bDumpStopBit = TWOSTOPBITS;
                            break;
                        default:
        					fprintf(stderr,"Bad stop bit count %s\n",argv[i]);
                            exit(EXIT_FAILURE);
                    }
                    break;

				// Common reply
				case 'i':
				case 'I':
                    bDumpRetry = (uchar) strtol(argv[i]+3, NULL, 0);
                    if(bDumpRetry > 100)
                    {
       					fprintf(stderr,"Bad reply value %s\n",argv[i]);
                        exit(EXIT_FAILURE);
                    }
                    break;

				// Common delay
				case 'n':
				case 'N':
                    bDumpDelay = (uchar) strtol(argv[i]+3, NULL, 0);
                    break;

				default:
					fprintf(stderr,"Unknown option %s\n",argv[i]);
					break;
			}
		}
		else
		{
			if(firstnonoption == -1)
                firstnonoption = i;
		}

        if(bRedef == true)
        {
            fprintf(stderr,"Option %s is defined already.\n", argv[i]);
            exit(EXIT_FAILURE);
        }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜欧美在线一二页| 中文字幕乱码久久午夜不卡| www.久久精品| 国产成人三级在线观看| 日本欧美一区二区三区| 天天综合网天天综合色| 视频一区中文字幕| 青青草国产精品97视觉盛宴| 亚洲第一搞黄网站| 首页综合国产亚洲丝袜| 婷婷开心激情综合| 久久精品国产网站| 国产福利不卡视频| 成人高清视频免费观看| 在线视频综合导航| 欧美肥胖老妇做爰| 日韩午夜在线影院| 亚洲国产高清不卡| 亚洲综合免费观看高清完整版在线| 亚洲综合另类小说| 免费高清在线一区| 成人激情视频网站| 欧美日韩中文另类| 欧美电影免费提供在线观看| 欧美国产日韩精品免费观看| 亚洲美女在线一区| 蜜乳av一区二区三区| 成人午夜精品一区二区三区| 色综合久久久久综合| 这里只有精品免费| 亚洲欧美综合另类在线卡通| 亚洲国产va精品久久久不卡综合| 久久精品国产77777蜜臀| 国产精品18久久久久久久久 | 日韩成人伦理电影在线观看| 日本在线播放一区二区三区| 国产成人a级片| 欧美性一二三区| 久久精品人人做人人爽97| 亚洲伊人伊色伊影伊综合网| 久久成人免费电影| 在线观看一区二区视频| 久久久美女毛片| 天天影视涩香欲综合网| 99久久伊人久久99| 精品美女一区二区三区| 一区二区三区中文字幕精品精品 | 成人动漫中文字幕| 欧美一区二区在线播放| 中文字幕在线观看不卡视频| 丝袜脚交一区二区| 色乱码一区二区三区88| 久久久www成人免费毛片麻豆 | 91精品综合久久久久久| 国产精品久久久久久亚洲毛片| 男女激情视频一区| 欧美做爰猛烈大尺度电影无法无天| 久久久久9999亚洲精品| 麻豆精品精品国产自在97香蕉| 在线视频欧美精品| 国产精品久久久久久久浪潮网站| 激情综合色综合久久综合| 欧美日本在线观看| 一区二区三区电影在线播| 波多野结衣在线aⅴ中文字幕不卡| 日韩欧美成人一区| 捆绑变态av一区二区三区 | 日韩高清不卡一区| 欧美老肥妇做.爰bbww视频| 亚洲视频一区二区免费在线观看| 成人午夜视频网站| 中文字幕免费不卡| 成人h动漫精品一区二| 国产亚洲欧美日韩日本| 国产sm精品调教视频网站| 久久久久久久网| 国产在线视频精品一区| 久久久久久久综合色一本| 久久99国产精品免费网站| 日韩丝袜美女视频| 精品中文av资源站在线观看| 日韩美女主播在线视频一区二区三区| 手机精品视频在线观看| 欧美一区二区三区影视| 久久激情综合网| 精品欧美一区二区久久| 国产高清无密码一区二区三区| 国产精品三级电影| 91麻豆精品视频| 亚洲成av人综合在线观看| 欧美一区二区视频观看视频| 毛片一区二区三区| 国产欧美一区二区精品仙草咪 | 亚洲综合视频在线| 91精品国产综合久久久久久久| 奇米影视一区二区三区| 亚洲精品在线观看网站| 丁香婷婷深情五月亚洲| 亚洲激情欧美激情| 日韩无一区二区| 丁香天五香天堂综合| 亚洲综合精品自拍| 欧美xxxxxxxxx| 99久久综合色| 一区二区三区四区精品在线视频| 国产麻豆精品theporn| eeuss影院一区二区三区 | 不卡在线视频中文字幕| 国产精品久久久久久久久动漫 | 亚洲人一二三区| 3d成人动漫网站| 国产成人免费在线视频| 一区二区三区欧美亚洲| 26uuu国产日韩综合| 91视频一区二区| 麻豆国产欧美日韩综合精品二区| 欧美高清在线精品一区| 欧美疯狂性受xxxxx喷水图片| 国产精品小仙女| 日韩精品一二三| 中文字幕一区二区三区不卡在线| youjizz久久| 欧美日韩亚洲综合一区二区三区| 麻豆成人91精品二区三区| 最新国产の精品合集bt伙计| 欧美一级在线视频| 在线看不卡av| 成人一级片在线观看| 男女激情视频一区| 一区二区三国产精华液| 国产精品天美传媒沈樵| 欧美一区二区三区婷婷月色| 91片黄在线观看| 成人手机电影网| 紧缚奴在线一区二区三区| 亚洲电影一级黄| 亚洲嫩草精品久久| 国产精品系列在线| 久久日韩精品一区二区五区| 在线播放中文字幕一区| 91一区二区三区在线播放| 高清av一区二区| 国产精品一区二区在线观看不卡 | 亚洲欧美福利一区二区| 久久久国产精品麻豆| 精品国产伦一区二区三区观看体验 | 欧美国产97人人爽人人喊| 日韩一二三四区| 欧美一区二区在线视频| 欧美日韩国产123区| 欧美视频完全免费看| 色视频成人在线观看免| 91色.com| 欧美在线观看视频一区二区| 91麻豆蜜桃一区二区三区| 91一区二区在线| 色哟哟欧美精品| 欧美日韩免费一区二区三区 | 精品国产免费人成在线观看| 精品久久五月天| 久久麻豆一区二区| 中文字幕欧美日本乱码一线二线| 国产色综合一区| 欧美极品xxx| 亚洲欧洲国产日本综合| 一区二区三区在线免费观看| 亚洲精品v日韩精品| 亚洲成人777| 久久精品国产精品青草| 国产成人免费xxxxxxxx| 成人av网站免费观看| 色综合咪咪久久| 欧美日韩不卡一区二区| 精品国产三级电影在线观看| 国产香蕉久久精品综合网| 综合av第一页| 五月婷婷久久丁香| 国产精品一区三区| 99久久99久久精品国产片果冻| 欧美视频在线观看一区二区| 日韩一区二区三区四区五区六区| 精品粉嫩超白一线天av| 亚洲欧美中日韩| 天堂蜜桃一区二区三区| 国产伦精品一区二区三区免费迷| 成人免费精品视频| 69堂精品视频| 中文字幕av一区二区三区高| 亚洲在线视频免费观看| 国产自产视频一区二区三区| 色综合久久久久久久久久久| 日韩天堂在线观看| 亚洲欧美另类图片小说| 狠狠色丁香久久婷婷综合丁香| 92精品国产成人观看免费| 日韩免费视频一区| 亚洲男同1069视频| 国产一区免费电影| 欧美精品在线一区二区| 国产人伦精品一区二区|