Programming/VHDL2017. 11. 9. 09:33

FPGA - Field-programmable gate array

[링크 : https://en.wikipedia.org/wiki/Complex_programmable_logic_device]


CPLD - Complex Programmable Logic Device

[링크 : https://en.wikipedia.org/wiki/Complex_programmable_logic_device]



여기 내용이 맞는진 모르겠지만..

CPLD(altera)는 로직을 굳혀서 별도의 외부 플래시가 필요없고

FPGA(xilinx)는 FPGA내 SRAM에 외부 플래시의 내용을 올리는 방식이라 외부 플래시기 필수인가?

(일단 artix-7나 kintex-7는 외부 플래시 필수이긴 하니..)

[링크 : http://cooa.tistory.com/entry/20048324430]


+

MAX V 라는 녀석인데

보드에 i2c / spi eeprom이 실장되지 않은 채 판매가 되고 있다.

CPLD 내부에 플래시가 들었거나 로직 게이트 자체를 바로 프로그래밍 하는 개념 인가?

별도의 외부 프로그램을 적재할 공간이 존재하지 않는 것이 xilinx와의 차이로 보인다.


[링크 : https://www.altera.com/.../manual/rm_maxv_cpld_dev_board.pdf]

    [링크 : https://www.altera.com/products/boards_and_kits/dev-kits/altera/kit-max-v.html]

'Programming > VHDL' 카테고리의 다른 글

VHDL 문법 공부중 1  (0) 2017.12.10
VHDL 문법 관련  (0) 2017.12.08
VHDL 문법  (0) 2017.12.07
xilinx fpga with vhdl verilog  (0) 2017.12.02
CPLD, FPGA  (0) 2009.12.17
Posted by 구차니
Programming/C Win32 MFC2017. 11. 8. 17:34

음.. 그냥.. 기본 단축키가 아니었던건가 -ㅁ-?


[링크 : http://blog.naver.com/sjplus/220436689165]

'Programming > C Win32 MFC' 카테고리의 다른 글

윈도우 ini 파일 사용하기  (0) 2017.11.13
hidpi 지원 - winform wpf mfc  (2) 2017.11.10
mfc sleep 주의  (0) 2017.11.08
win32 usb class  (0) 2017.11.03
CEdit 내용 지우기와 메모리 사용량  (0) 2017.10.26
Posted by 구차니
Programming/C++ STL2017. 11. 8. 15:59

정작 써본건 처음이라..

아무튼 이녀석은 오른쪽 부터 기본값을 정할 수 있고

값이 없으면 기본값이 들어간다.


그런데 함수 prototype에 없는거지

함수 선언에 넣으면 아래와 같이 재정의 되었다고 배를 짼다.


error C2572: 'CtestDlg::sender' : 기본 매개 변수 재정의. 매개 변수 9

'CtestDlg::sender' 선언을 참조하십시오. 


[링크 : http://shaeod.tistory.com/365]


근데 이게.. msvc 특성인지 gcc나 다른것도 포함하는 표준인지 모르겠네...

'Programming > C++ STL' 카테고리의 다른 글

cpp string 관련  (0) 2019.06.10
cpp stringstream << 연산자  (0) 2019.05.24
cpp string compare 와 ==  (0) 2017.01.31
cpp this  (0) 2016.07.18
class 기본 접근제한자  (0) 2016.07.18
Posted by 구차니
Programming/C Win32 MFC2017. 11. 8. 15:57

Sleep() 함수는 그 함수에서 멈춰버리지

메인 쓰레드 메시지를 처리하지 못하니까

시리얼 같은거 보내면서 Sleep() 하고 또 보내면

받는 쪽에서 처리를 못한채 이벤트가 쌓여서 죽어 버린다.


[링크 : http://lafirr.tistory.com/56]

[링크 : http://egloos.zum.com/sweeper/v/2942286]

'Programming > C Win32 MFC' 카테고리의 다른 글

hidpi 지원 - winform wpf mfc  (2) 2017.11.10
cedit ctrl-a 단축키 사용하기  (0) 2017.11.08
win32 usb class  (0) 2017.11.03
CEdit 내용 지우기와 메모리 사용량  (0) 2017.10.26
CEdit 길이 제한  (0) 2017.10.26
Posted by 구차니
Programming/C Win32 MFC2017. 11. 3. 16:25

GetRawInputDeviceInfo()를 통해서 받아오니..

이름이 내가 기대했던 device description이 아니라.. 식별자에 가까운 녀석이 나온다 -_-a

nResult = GetRawInputDeviceInfo(pRawInputDeviceList[i].hDevice, // Device

RIDI_DEVICENAME,                // Get Device Name

wcDeviceName,                   // Get Name!

&nBufferSize);


str.Format(_T("%s"),wcDeviceName);

\\?\HID#VID_060B&PID_6220&MI_00#7&3275dfb8&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}



[링크 : https://stackoverflow.com/questions/36453082/c-winapi-get-list-of-all-connected-usb-devices]

[링크 : https://oroboro.com/usb-serial-number/]

[링크 : https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms645597(v=vs.85).aspx]

[링크 : https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms645598(v=vs.85).aspx]



+

2017.11.05

내가 원하는 항목이 bus reported device description 인 듯?

[링크 : http://searchingforbit.blogspot.com/2014/05/winusb-communication-with-stm32-round-2.html]


        if (SetupDiGetDeviceRegistryProperty (hDevInfo, &DeviceInfoData, SPDRP_DEVICEDESC,

                                              &dwPropertyRegDataType, (BYTE*)szDesc,

                                              sizeof(szDesc),   // The size, in bytes

                                              &dwSize))

            _tprintf (TEXT("    Device Description: \"%s\"\n"), szDesc);


            if (fn_SetupDiGetDevicePropertyW (hDevInfo, &DeviceInfoData, &DEVPKEY_Device_BusReportedDeviceDesc,

                                              &ulPropertyType, (BYTE*)szBuffer, sizeof(szBuffer), &dwSize, 0))

                _tprintf (TEXT("    Bus Reported Device Description: \"%ls\"\n"), szBuffer); 


[링크 : https://stackoverflow.com/questions/3438366/setupdigetdeviceproperty-usage-example]

   [링크 : https://stackoverflow.com/.../how-to-retrieve-bus-reported-device-description-from-arriving-usb-device]


SetupDiGetDeviceProperty function

[링크 : https://msdn.microsoft.com/en-us/library/windows/hardware/ff551963(v=vs.85).aspx]

SetupDiGetDeviceRegistryProperty function

[링크 : https://msdn.microsoft.com/en-us/library/windows/hardware/ff551967(v=vs.85).aspx]

'Programming > C Win32 MFC' 카테고리의 다른 글

cedit ctrl-a 단축키 사용하기  (0) 2017.11.08
mfc sleep 주의  (0) 2017.11.08
CEdit 내용 지우기와 메모리 사용량  (0) 2017.10.26
CEdit 길이 제한  (0) 2017.10.26
MFC USB 시리얼 제거 탐지하기 OnDeviceChange()  (0) 2017.10.25
Posted by 구차니
Programming/C Win32 MFC2017. 10. 26. 15:06

시리얼 모니터 만들었는데.. 입력 받을때 마다 메모리가 쭉쭉 늘어난다 ㅠㅠ

내용을 empty string으로 해도.. 삭제하고 undo 버퍼를 비워도 안되는데

멀 해야지.. 할당했던 메모리를 다시 뱉을까?


메모리 사용량 늘어남 -_-

m_eterm0.SetSel(0, -1);

m_eterm0.Clear();

m_eterm0.EmptyUndoBuffer();


메모리 사용량 변함없음(줄지 않음)


m_eterm0.SetWindowTextW(_T("")); 



[링크 : https://msdn.microsoft.com/ko-kr/library/f7yhsd2b.aspx]

'Programming > C Win32 MFC' 카테고리의 다른 글

mfc sleep 주의  (0) 2017.11.08
win32 usb class  (0) 2017.11.03
CEdit 길이 제한  (0) 2017.10.26
MFC USB 시리얼 제거 탐지하기 OnDeviceChange()  (0) 2017.10.25
MFC 다이얼로그에 웹브라우저 넣기  (0) 2017.10.24
Posted by 구차니
Programming/C Win32 MFC2017. 10. 26. 14:44

당연(?) 하겠지만 CEdit에 넣을수 있는 글씨는 제한이 있다.

풀어는 줄 수 있는데.. 적당히 풀어야 메모리 적당히 먹겠...지?


[링크 : http://blog.naver.com/joon2457/220628611105]


CEdit::SetLimitText

void SetLimitText( UINT nMax );

Parameters

nMax

The new text limit, in bytes. 

[링크 : https://msdn.microsoft.com/en-us/library/aa279321(v=vs.60).aspx]


CEdit::LimitText

void LimitText( int nChars = 0 );

Parameters

nChars

Specifies the length (in bytes) of the text that the user can enter. If this parameter is 0, the text length is set to UINT_MAX bytes. This is the default behavior. 

[링크 : https://msdn.microsoft.com/en-us/library/aa279307(v=vs.60).aspx]

Posted by 구차니
Programming/C Win32 MFC2017. 10. 25. 16:36

대부분의 툴들이..

USB 시리얼 뽑으면 먹통이 되는 경우가 많은데

그거 해결용으로 검색중..


[링크 : https://stackoverflow.com/.../identify-disconnect-event-with-a-windows-usb-virtual-com-port]


FTDI의 경우에는 이렇게 보내는 주는 듯?

class CAboutDlg : public CDialog

{

void CD2XXNotifyDlg::OnPaint();

BOOL CD2XXNotifyDlg::OnDeviceChange(UINT EventType, DWORD dwData);

protected:

DECLARE_MESSAGE_MAP()

};

void CAboutDlg::DoDataExchange(CDataExchange* pDX){}

BEGIN_MESSAGE_MAP(CD2XXNotifyDlg, CDialog)

ON_WM_PAINT()

ON_WM_DEVICECHANGE()

END_MESSAGE_MAP()

void CD2XXNotifyDlg::OnPaint()

{}

BOOL CD2XXNotifyDlg::OnDeviceChange(UINT EventType, DWORD dwData) {}

[링크 : http://www.ftdichip.com/.../AN_152_Detecting_USB_%20Device_Insertion_and_Removal.pdf]



MFC 클래스 위저드에는 WM_DEVICECHANGE가 없는데 afxmsg.h 에는 존재한다.

#define ON_WM_DEVICECHANGE() \

{ WM_DEVICECHANGE, 0, 0, 0, AfxSig_bwl, \

(AFX_PMSG)(AFX_PMSGW) \

(static_cast< BOOL (AFX_MSG_CALL CWnd::*)(UINT, DWORD_PTR) > ( &ThisClass :: OnDeviceChange)) }, 


    case WM_DEVICECHANGE:
    {
        //
        // This is the actual message from the interface via Windows messaging.
        // This code includes some additional decoding for this particular device type
        // and some common validation checks.
        //
        // Note that not all devices utilize these optional parameters in the same
        // way. Refer to the extended information for your particular device type 
        // specified by your GUID.
        //
        PDEV_BROADCAST_DEVICEINTERFACE b = (PDEV_BROADCAST_DEVICEINTERFACE) lParam;
        TCHAR strBuff[256];

        // Output some messages to the window.
        switch (wParam)
        {
        case DBT_DEVICEARRIVAL:
            msgCount++;
            StringCchPrintf(
                strBuff, 256, 
                TEXT("Message %d: DBT_DEVICEARRIVAL\n"), msgCount);
            break;
        case DBT_DEVICEREMOVECOMPLETE:
            msgCount++;
            StringCchPrintf(
                strBuff, 256, 
                TEXT("Message %d: DBT_DEVICEREMOVECOMPLETE\n"), msgCount);
            break;
        case DBT_DEVNODES_CHANGED:
            msgCount++;
            StringCchPrintf(
                strBuff, 256, 
                TEXT("Message %d: DBT_DEVNODES_CHANGED\n"), msgCount);
            break;
        default:
            msgCount++;
            StringCchPrintf(
                strBuff, 256, 
                TEXT("Message %d: WM_DEVICECHANGE message received, value %d unhandled.\n"), 
                msgCount, wParam);
            break;
        }
        OutputMessage(hEditWnd, wParam, (LPARAM)strBuff); 

} 

[링크 : https://msdn.microsoft.com/en-us/library/windows/desktop/aa363432(v=vs.85).aspx]


뽑으면 0x0007->0x8004 순서로 발생하고

꼽으면 0x0007->0x0007->0x8000->0x0007 으로 발생한다.

(근데 뽑는건 꼽는거에 비해서 반응이 많이 느리거나 안될때도 있음)

DBT_DEVNODES_CHANGED 0x0007

DBT_DEVICEARRIVAL 0x8000

DBT_DEVICEREMOVECOMPLETE 0x8004 

[링크 : https://msdn.microsoft.com/en-us/library/windows/desktop/aa363480(v=vs.85).aspx]


+

여긴 일단 .net 쪽

[링크 : https://stackoverflow.com/.../usb-serial-port-unplugged-but-still-in-the-list-of-ports]

[링크 : https://stackoverflow.com/.../com-port-disappears-when-unplugging-usb]

'Programming > C Win32 MFC' 카테고리의 다른 글

CEdit 내용 지우기와 메모리 사용량  (0) 2017.10.26
CEdit 길이 제한  (0) 2017.10.26
MFC 다이얼로그에 웹브라우저 넣기  (0) 2017.10.24
한글 코드 페이지  (0) 2017.10.23
CSliderCtrl OnHScroll() 주의사항  (0) 2017.10.20
Posted by 구차니
Programming/C Win32 MFC2017. 10. 24. 16:32

원래 원하는건.. 워드처럼

각종 서식을 넣는 디버그 창인데.. 혹시나 해서 일단 검색을 해둠..


[링크 : http://shaeod.tistory.com/537]

[링크 : http://purelab.net/zbxe/guruin/108736]

'Programming > C Win32 MFC' 카테고리의 다른 글

CEdit 길이 제한  (0) 2017.10.26
MFC USB 시리얼 제거 탐지하기 OnDeviceChange()  (0) 2017.10.25
한글 코드 페이지  (0) 2017.10.23
CSliderCtrl OnHScroll() 주의사항  (0) 2017.10.20
MFC 슬라이더 사용시 주의사항  (0) 2017.10.19
Posted by 구차니
Programming/C Win32 MFC2017. 10. 23. 15:46

한국어 코드 페이지를 대상으로 하는 랜섬웨어 라는데

CP949 / CP437로  코드 페이지 기억을 했는데

웬 뜬금없는 1042 / 0x412 인가 했더니


LANGID와 ASCII codepage 라는게 따로 있었나 보네..


[링크 : http://v.media.daum.net/v/20171023093516376]

[링크 : https://msdn.microsoft.com/en-us/library/windows/desktop/aa369771(v=vs.85).aspx]



LANGID GetSystemDefaultUILanguage(void); 

[링크 : https://msdn.microsoft.com/en-us/library/windows/desktop/dd318123(v=vs.85).aspx]


Language Identifiers

[링크 : https://msdn.microsoft.com/en-us/library/windows/desktop/dd318691(v=vs.85).aspx]


LANGID SetThreadUILanguage(

  _In_ LANGID LangId

); 

[링크 : https://msdn.microsoft.com/ko-kr/library/windows/desktop/dd374053(v=vs.85).aspx]


Posted by 구차니