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

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

?? dnw.cpp

?? 三星公司的2440的調試軟件
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
#define STRICT
#define WIN32_LEAN_AND_MEAN

#include <windows.h>
#include <windowsx.h>
#include <commctrl.h>
#include <tchar.h>
#include <string.h>
#include <process.h>
#include <stdlib.h>

#include "resource.h"

#include "def.h"
#include "dnw.h"
#include "engine.h"
#include "fileopen.h"
#include "d_box.h"
#include "usbtxrx.h"

//NOTE: _beginthread() 
// To use _beginenthread(),Activate "Project/Settings/C/C++/Categry/Code generation/
// Use Run-Time library/Multithreaded or Debug Multithreaded"

// If DDK2000 is used,
// 1. Project_Settings/CC++/Preprocessor/Additional_include_directories = C:\NTDDK\inc
// 2. Project_Settings/Link/Input/Additional_library_path=c:\NTDDK\libfre\i386

// If DDKXP is used,
// 1. Project_Settings/CC++/Preprocessor/Additional include directories = C:\WINDDK\2600\inc\w2k
// 2-1. Project_Settings/Link/Input/Additional_library_path=C:\WINDDK\2600\lib\w2k\i386
//      This causes some warning about '.rdata' section attribute.
// 2-2. Project_Settings/Link/Input/Additional_library_path==C:\WINDDK\2600\lib\i386\free
//      There's no warning.

/*
===================== REVISON HISTORY =====================
1. 2000. 3.30: V0.01 
  First release of DNW
2. 2000.10.11: V0.2
  The edit control is used for scroll, copy&paste, smooth screen update
3. 2001.1.26: V0.3
  a) The CPU usage will be less. Sleep() is inserted during TX.
  b) The filesize and checksum are transmitted together with bin file.
  c) WriteCommBlock() bug is fixed. The txEmpty flag should be changed in only DoRxTx().
4. 2001.2.24: V0.31
  a) The size of edit buffer is changed by EM_LIMITTEXT message.
     EDIT_BUF_SIZE(30000) -> MAX_EDIT_BUF_SIZE(65000)
  b) If the edit box is greater than 50000,
     the size of edit box is reduced by 10000.
  c) The horizontal scroll bar is removed for better look. 
  d) In WaitCommEvent() loop, 
     the following condition is inserted to clear the overrun condition.
    	if((dwEvtMask & EV_ERR){...}
  e) EB_Printf() have some error to process large string data.
5. 2001.3.8: V0.32
  a) EDIT_BUF_SIZE is reduced 25000 because the EM_REPLACESEL message is done very slowly
     if the size is over about 30000.
6. 2001.4.11: V0.32A
  a) Experimentally, MAX_EDIT_BUF_SIZE is set to the default value(32767). 
     //SendMessage(_hwndEdit, EM_SETLIMITTEXT, MAX_EDIT_BUF_SIZE, 0L);
     RESULT: MAX_EDIT_BUF_SIZE doesn't affect the display delay problem.
             I think that the new method for deleting the contents should be applied
	     Let's do tonight
7. 2001.5.14: V0.34
   a) I have known that the edit control isn't adequate for console program.
      So, I would give up the development of DNW using the edit control
      The last decision is as follows;
      MAX_EDIT_BUF_SIZE (65000) //up to 65535
      EDIT_BUF_SIZE (30000)   
      EDIT_BUF_DEC_SIZE (10000)
   b) If the selected text is deleted, the edit control displays the first of the text.
      In this case, to show the end of the text, dummy REPLACE_SEL is added.

8. 2001.11.23: V0.4
   a) USB download function is added.
   b) GetOverlappedResult() is used in TxFile() in order to save the cpu time more efficiently 
   c) Serial Configuration dialog box
   d) In secbulk.sys is changed to support IRP_MN_QUERY_CAPABILITIES.
      So, the surpriseRemoval is allowed. When the USB is yanked impolitely, 
      the warning dialog box won't appear in WIN2000.

9. 2001.11.24: v0.41alpha
   a) WriteFile() supports overlapped I/O to check broken pipe.
   b) progress bar is added for transmit operation.
   c) USB,serial status is printed on the window title bar
   
10. 2001.12.5: v0.42a
   a) In secbulk.sys, the maximum number of bulk packit in 1ms frame duration is changed to 16 from 4.
      So, transfer rate is increased from 220KB/S to 405KB/S 
   b) Although the fileopen was failed(or canceled), the transmit wasn't canceled. This is fixed.      
   c) When the options menu is selected, a serial port will be reconnected.
   d) The receive test menu is added. 

11. 2001.12.6: v0.43
   a) Fou USB tx operation, TX_SIZE is increased from 2KB to 16KB.
      So, transfer rate is increased from 405KB/S to 490KB/S.
      (2KB:405KB/S 4KB:450KB/S  8KB:470KB/S 16KB:490KB/S)

12. 2001.12.7: v0.44b
   a) Although a serial port is not connected, the serial port is connected 
      after Configuration/Options menu -> fixed.
   b) The name dnw.cfg for v 0.4x is changed to dnw.ini 
      in order not to confuse old dnw.cfg for ver 0.3x
      
12. 2002.01.2: v0.44c
   a) The edit box size is changed to display 80x25 characters 
      
13. 2002.02.22: v0.45
   a) In windows95, DNW doesn't search USB stack.
   b) When download, there should be a cancel button
   c) Sometimes, the progress bar is not filled although download is doing.
      I think it's because InitDownloadProgress() is executed 
      before than DownloadProgressProc().
      So, I inserted the code to wait until DownloadProgressProc() is executed as follows;
	  while(_hDlgDownloadProgress==0); //wait until the progress dialog box is ready.
   d) secbulk is optimized 
14. 2002.04.01: v0.46
   a) If DNW is start to transmit although the b/d is not ready, DNW will be hung.
      It's only solution to turn off and on the b/d.
      To solve this problem smoothly, the overlapped I/O will be used for USB transfer. 
      But, secbulk.sys may not support overlapped I/O. 
      Although I implemented the overlapped I/O, WriteFile() function didn't return before its completion.
   b) Because the overlapped I/O doens't work as my wish,
      and in order to quit the dnw.exe hung, modaless dialogue box is used for the progress bar.
   c) *.nb0

  15. 2002.04.10: v0.47
   a) I reduce the edit box size as follows;  
	#define MAX_EDIT_BUF_SIZE (0x7FFE) 
	#define EDIT_BUF_SIZE (0x6000)   
	#define EDIT_BUF_DEC_SIZE (0x1000)
      There is no good cause about why I change. I want to just reduce the edit box size.
   b) Sometimes, when transmit, there is no transmit although the transmit progrss dialog box is shown.
      I think that it's because the _enthread() fails.
      To debug this problem, the _enthread result is checked.

  16. 2002.04.19: v0.48
   a) The bug of WIN2K WINAPI is found. ->It's not fixed perfectly.
      Please let me know of the solution to avoid the memory problem of SetWindowText() API.

      The SetWindowText()(also,WM_SETTEXT message) consumes 4KB system memory every times.
      I think there is some bug in SetWindowText API.
      In my case, because SetWindowText() is called every 1 seconds, 
      the system memory used by DNW.exe is increased by 4KB every 1 seconds.
      For emergency fix, SetWindowText() will be called only when its content is changed.
      
      NOTE. This memory problem is not memory leakage problem 
            because the memory is flushed when the window is shrinked.

  17. 2002.05.03:v0.49
   a) Sometimes, when transmit, there is no transmit although the transmit progrss dialog box is shown.
      I have found the cause.
      It's because _hDlgDownloadProgress.
      If the TxFile thread is executed first than WM_INITDIALOG message,
      while(_hDlgDownloadProgress==NULL); will not exited because _hDlgDownloadProgress 
      in CPU register will be checked. So, the volatile should have been used 
      because _hDlgDownloadProgress value is changed in another thread.
      The solution is as follows;
      volatile HWND _hDlgDownloadProgress=NULL;
   b) Sometimes, the CPU usage will be always 100% if dnw.exe is being executed.
      This is because of the just above problem.
      If the problem 17-a) is occurred, the TxFile will be an obsolete thread.
      while(_hDlgDownloadProgress==NULL); will use the CPU at 100%.
      I think that this problem may be cleared because the problem 17-a) is cleared.
   c) The small icon,DNW is displayed in the window shell task bar and the window title.

  18. 2003.04.25:v0.50
   a) In case that a USB2Serial cable is used when COMPAQ Presario 1700, 
      a few last character display is postponed until the next group is received.
      -> MSDN recommends the while() for read operation, which has solved the problem.
   b) In DoRxTx(), the EV_ERR is added to SetCommMask(); -> which is more correct, I think.
   c) For overlapped WaitCommEvent,ReadFile,WriteFile, the return value should be checked.
      For ReadFile,WriteFile cases, the operation has no change.
      In previous version(V0.49), WaitCommEvent(,,NULL) should have not been used because OVERLAPPED I/O was being used.
      The combination of WaitCommEvent(,,&os) and GetOverlappedResult() will fix this problem.
   d) During developing the DNW v0.50, I had experienced some blue screen without any USB connection when I reset the SMDK2410.
      This problem was occurred when WaitCommEvent(,,&os) without GetOverlappedResult().
      This problem was not revived when is WaitCommEvent(,,NULL) although it's not correct. 
      
      From this phenomenon, I assume that the blue-screen, which is caused sometimes when resetting the SMDK2410, 
      may be caused by the mis-use of WaitCommEvent(,,NULL).

      But, it's still truth that the abnormal USBD response may cause the windows blue-screen
      ,which I experienced many times during my secbulk.sys development.
   
  19. 2003.04.29:v0.50A
   a) If the break condition is detected, "[DBG:EV_ERR]" message is displayed.
      So, the display of "[DBG:EV_ERR]" is removed.
*/

/*   
Items to be enhanced.
   - avoid SetWindowText() API problem.
   - remove debug stuff in following functions.
         void InitDownloadProgress(void);   
	 void DisplayDownloadProgress(int percent);
   - make status bar.
   - malloc() uses too much memory for large file transfer.
   - Enlarge the scroll buffer -> the edit box is not adequate.
   - file logging function
   - Ctrl+C should be work as copy function.
*/ 

/*
Edit Box Note:
- Check if the edit box is scrolled to show the text being deleted
  when the selected text is deleted in Win2000. In windows98, It's scrolled to show the deleted portion unfortunately.
*/

#define IS_OVERLAPPED_IO    (TRUE)

int userBaudRate,idBaudRate;
int userComPort;

#define MAX_BLOCK_SIZE (4096)

HANDLE idComDev;
OVERLAPPED osWrite,osRead;
volatile int isConnected=FALSE;
TCHAR rxBuf[MAX_BLOCK_SIZE+1];
volatile char *txBuf;
volatile DWORD iTxBuf;
DWORD txBufSize;

volatile int txEmpty=TRUE;



void MenuAbout(HWND hwnd)
{
    MessageBox(hwnd,TEXT("Serial Console with Serial/USB Download\n\n")
		    TEXT("1. e-mail: purnnamu@sec.samsung.com\n")
	  	    TEXT("2. USB Tx format: addr(4)+size(4)+data(n)+cs(2)   \n")
		    TEXT("3. Serial Tx format: size(4)+data(n)+cs(2)\n"),
	   	    TEXT("About ")APPNAME,MB_OK | MB_ICONINFORMATION );
}





void Quit(HWND hwnd)
{
    CloseComPort();
}



void MenuConnect(HWND hwnd)
{
    if(isConnected==TRUE)
    {
	CloseComPort();
    }

    OpenComPort(userComPort);
}



void UpdateWindowTitle(void)
{
    TCHAR title[256];
    TCHAR tch[16];
    
    static int prevComPort=0xff;
    static int prevBaudRate=0xff;
    static int prevUsbAlive=0xff;
    static int prevIsConnected=0xff;
    int usbAlive;

    lstrcpy(title,APPNAME);
    lstrcat(title,TEXT("   [COM"));

    if(isConnected==TRUE) //serial O.K.
    {
	tch[0]='0'+userComPort;
	tch[1]='\0';
	lstrcat(title,tch);
	lstrcat(title,TEXT(","));
	lstrcat(title,_itot(userBaudRate,tch,10) );   //_itot :TCHAR version of itoa 
	lstrcat(title,TEXT("bps]"));
    }
    else
    {
	lstrcat(title,TEXT(":x]"));
    }

    
    if(IsUsbConnected())
    {
	lstrcat(title,TEXT("[USB:OK]"));
	usbAlive=1;
    }
    else
    {
	lstrcat(title,TEXT("[USB:x]"));
	usbAlive=0;
    }

    //The bug of WIN2K WINAPI is found.
    //The SetWindowText()(also,WM_SETTEXT message) consumes 4KB system memory every times.
    //I think there is some bug in SetWindowText API.
    //In my case, because SetWindowText() is called every 1 seconds, 
    //the system memory used by DNW.exe is increased by 4KB every 1 seconds.
    //For emergency fix, SetWindowText will called only when its content is changed.
    //NOTE. This memory leakage is flushed when window is shrinked.

    if(userComPort!=prevComPort || userBaudRate!=prevBaudRate || usbAlive!=prevUsbAlive ||
       isConnected!=prevIsConnected )
    {
	SetWindowText(_hwnd,title);
    }
    prevComPort=userComPort;
    prevBaudRate=userBaudRate;
    prevUsbAlive=usbAlive;
    prevIsConnected=isConnected;
}



void MenuTransmit(HWND hwnd)
{
    HANDLE hFile;
    DWORD fileSize;
    unsigned short cs=0;
    DWORD i;
    BOOL result;
    unsigned long threadResult;

    if(!isConnected)
    {
	EB_Printf(TEXT("[ERROR:Not Connected]\n"));
	return;
    }
    result=PopFileOpenDlg(hwnd,szFileName,szTitleName);
    
    if(result==0) //file open fail
    {
	return;
    }

    hFile=CreateFile(szFileName,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL);

    if(hFile==INVALID_HANDLE_VALUE)
    {
	EB_Printf(TEXT("[ERROR:File Open]\n") );
	return;
    }
    
    fileSize=GetFileSize(hFile,NULL);

    txBuf=(char *)malloc(fileSize+6);
    if(txBuf==0)
    {
	EB_Printf(TEXT("[ERROR:Memory Allocation Fail:(%d)]\n"),fileSize+6 );
	return;
    }

    ReadFile(hFile,(void *)(txBuf+4),fileSize,&txBufSize,NULL);
    if(txBufSize!=fileSize)    
    {
    	EB_Printf(TEXT("[ERROR:File Size Error]\n") );
	return;
    }

    *((DWORD *)txBuf)=fileSize+6;   //attach filesize(n+6) 

    for(i=4;i<(fileSize+4);i++)
	cs+=(BYTE)(txBuf[i]);
    *((WORD *)(txBuf+4+fileSize))=cs;   //attach checksum 
    
    txBufSize+=6;
    iTxBuf=0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人看片黄a免费看在线| 亚洲精品国产精品乱码不99| 亚洲欧美日韩国产综合在线| 粉嫩久久99精品久久久久久夜| 中文一区二区在线观看| jlzzjlzz亚洲日本少妇| 亚洲自拍另类综合| 欧美一区二区久久| 久久99国产精品麻豆| 精品99一区二区| 成人教育av在线| 视频在线在亚洲| 久久夜色精品国产噜噜av| av资源站一区| 91视频免费看| 精品亚洲aⅴ乱码一区二区三区| 久久国产精品99久久人人澡| 国产精品国产三级国产aⅴ入口 | 蜜臀精品一区二区三区在线观看| 2021久久国产精品不只是精品| 久久日韩精品一区二区五区| 99久久久精品| 国产精品一二三四| 性做久久久久久| 国产欧美日韩在线| 精品久久人人做人人爱| 欧美怡红院视频| 精品一区二区国语对白| 成人av免费在线播放| 欧美日韩你懂得| 91亚洲男人天堂| 欧美肥大bbwbbw高潮| 91亚洲精品乱码久久久久久蜜桃| 欧美酷刑日本凌虐凌虐| 国产丝袜美腿一区二区三区| 欧美精品一区二区在线播放| 中文字幕 久热精品 视频在线| 亚洲国产精品一区二区www| 综合久久久久综合| 国产精品女主播av| 国产精品久久久久久久久快鸭| 亚洲国产成人精品视频| 国产成a人亚洲精品| 欧美一二三四在线| 日韩久久精品一区| 亚洲精品一区在线观看| 一区二区在线免费| 国产精品中文有码| 7777精品伊人久久久大香线蕉经典版下载 | 国产馆精品极品| 激情国产一区二区| 国产一区二区主播在线| 九色|91porny| 欧美性生交片4| 国产精品女主播在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅| 99久久夜色精品国产网站| 亚洲精品在线观| 久久精品国产亚洲高清剧情介绍| 色综合视频在线观看| 色国产综合视频| 欧美喷水一区二区| 日韩精品一区二区三区中文精品| 亚洲免费在线播放| 97精品国产97久久久久久久久久久久| 欧美一区二区三区白人| 亚洲电影一级片| 色先锋aa成人| 亚洲欧美成人一区二区三区| 国产成人精品1024| 久久久不卡网国产精品一区| 国产suv精品一区二区883| 日韩一区二区精品葵司在线| 婷婷久久综合九色综合绿巨人| 在线观看一区二区视频| 成人开心网精品视频| 成人aa视频在线观看| 国产三级精品三级| 国产美女精品在线| 精品国产3级a| 国产精品123区| 国产欧美日韩视频一区二区 | 日韩一区二区在线看| 午夜精品一区在线观看| 91精品在线麻豆| 免费看欧美女人艹b| 国产精品99久久久久| 国产亚洲污的网站| 国产精品99久久久| 国产精品视频第一区| 一本一道综合狠狠老| 午夜一区二区三区在线观看| 中文av一区二区| 亚洲一区精品在线| 另类小说图片综合网| 日韩欧美卡一卡二| 国产精品自拍一区| 亚洲色图一区二区| 欧美一区二区性放荡片| 国产伦精品一区二区三区免费 | 欧美日韩一级黄| 麻豆精品视频在线| 国产精品免费丝袜| 欧美日韩五月天| 国产福利电影一区二区三区| 亚洲精品视频在线观看免费| 制服丝袜成人动漫| www.66久久| 青青草原综合久久大伊人精品 | 99riav一区二区三区| 亚洲午夜免费视频| 久久一日本道色综合| 色女孩综合影院| 久久国产综合精品| 1区2区3区国产精品| 久久99精品久久只有精品| 欧美激情自拍偷拍| 欧美日韩亚洲综合一区| 国产精品自拍av| 亚洲综合色网站| 久久久久久久久久久电影| 午夜伦欧美伦电影理论片| 欧美精品第一页| 国产日产欧美一区二区三区| 一区二区三区国产| 综合自拍亚洲综合图不卡区| 欧美日韩和欧美的一区二区| 国产一区视频导航| 午夜伦欧美伦电影理论片| 亚洲欧洲性图库| 久久久影视传媒| 91精品久久久久久蜜臀| 色综合久久天天综合网| 国产成人在线免费观看| 日韩成人伦理电影在线观看| 91麻豆精品国产91久久久久| 91丝袜美女网| 国产不卡视频在线观看| 精东粉嫩av免费一区二区三区| 亚洲国产精品天堂| 亚洲在线视频一区| 亚洲少妇最新在线视频| 国产日韩成人精品| 久久综合色综合88| 欧美性视频一区二区三区| 天堂成人国产精品一区| 精品国产网站在线观看| 欧美一区二区视频网站| 欧美狂野另类xxxxoooo| 欧美狂野另类xxxxoooo| 欧美精品在线一区二区三区| 色视频成人在线观看免| 日本精品一区二区三区高清 | 日韩欧美中文一区二区| 欧美日韩国产乱码电影| 色一情一伦一子一伦一区| 91亚洲国产成人精品一区二区三| 成人免费av在线| 成人av影院在线| 99久久99久久精品免费看蜜桃| 99久久免费精品| 色屁屁一区二区| 91超碰这里只有精品国产| 91精品综合久久久久久| 精品美女在线播放| 国产色综合一区| 最新久久zyz资源站| 亚洲影院免费观看| 日韩中文字幕麻豆| 精品亚洲国内自在自线福利| 国产麻豆欧美日韩一区| www.欧美精品一二区| 欧美亚洲综合一区| 日韩三级视频中文字幕| 久久午夜老司机| 国产精品国产a级| 一区二区三区av电影 | 欧美电视剧免费全集观看| 精品成人佐山爱一区二区| 国产精品毛片大码女人| 尤物视频一区二区| 青青草原综合久久大伊人精品| 国产乱码精品一区二区三| zzijzzij亚洲日本少妇熟睡| 欧美午夜电影在线播放| 精品国产乱码久久久久久浪潮| 国产精品嫩草影院av蜜臀| 午夜精品久久久久久| 国内外成人在线视频| 91麻豆国产自产在线观看| 这里只有精品电影| 国产精品毛片a∨一区二区三区| 午夜视频一区二区三区| 国产九九视频一区二区三区| 欧美亚洲另类激情小说| 久久久国产精品麻豆| 日韩在线一区二区三区| 国产精品99久久久久久久女警 | 国产亚洲欧美在线| 亚洲专区一二三|