반응형

 

 

 

Lattice Diamond NODE-locked license

집에서 사용하던 노트북을 다른데 나가서 사용려고 Lattice Diamond를 실행시켰는데...

 

라이선스 에러...

집에서 유선랜 NIC 물리 주소로 했는데 외부에서는 Wifi 를 썼다... ㅡ.ㅡ;

 

그래서 license 를 다시 요청. 이번에는 NODE-locked license 다.

사이트의 license 요청 페이지에 들어가서 NODE-locked license를 선택하고 이번에는 무선랜의 NIC 물리 주소 입력.

 

 

다시 license 파일을 받았다.

 

 

license 에러 후 뜨는 창에 받은 파일을 선택하고 Start 하니... 맞는 것 같다.

되었겠지... 하며 다시 실행하니... 여전히 동일한 에러 발생...

 

그냥 에러 메시지가 나는 창에 표시된 경로에 새로 받은 license를 덮어쓰기

  C:\lscc\diamond\3.12\license

 

 

잘 실행된다. 결론은 덮어쓰기~ ^^ 

이렇게 편한걸 괜히 어렵게 메뉴얼에 나와있는 floating license를 썼다.

NODE-lock license 설치 방법도 문서에 있었던거 같았는데... 못찾았다. ㅡ.ㅡ;

 

 

 

728x90
반응형

'공부 > HW' 카테고리의 다른 글

211118 Lattice Diamond Node-lock license  (0) 2021.11.19
211117 PuTTy 재시작  (0) 2021.11.17
211115 Cypress EZ USB Control transfer out  (0) 2021.11.15
211112 무료 Hex editor HxD  (0) 2021.11.12
211105 Cypress EZ USB GPIO 1  (0) 2021.11.05
반응형

 

 

 

STM32 HAL_UART_Transmit

 

자꾸 이것의 사용법을 잊어버려 기록한다.

 

UART_HandleTypeDef huart2;

// Direct write
HAL_UART_Transmit(&huart2, "a", 1, 10);

// Variable write
uint8_t rx_data = 'a';
HAL_UART_Transmit(&huart2, &rx_data, 1, 10);

// String write
uint8_t *tx_data = "Init.";
HAL_UART_Transmit(&huart2, tx_data, sizeof(tx_data), 10);

 

참고로 printf의 사용법.

 

#ifdef __cplusplus
extern "C" int _write(int32_t file, uint8_t *ptr, int32_t len) {
#else
int _write(int32_t file, uint8_t *ptr, int32_t len) {
#endif
    if( HAL_UART_Transmit(&huart2, ptr, len, len) == HAL_OK ) return len;
    else return 0;
}

 

위 코드를 사용하고자 하는 부분의 위에 정의해 놓고 사용하면 된다.

 

printf("NUCLEO-L476RG Init. Ver.%d-%d\r\n", 1112, 2);

 

그러면 위와 같이 사용할 수 있다.

 

위의 예는 모두 UART2 번을 사용하는 것으로 예를 들었다.

다른 포트의 경우 huart2 를 다른 번호로 변경하면 된다.

 

 

 

728x90
반응형

'공부 > STM32' 카테고리의 다른 글

211116 STM32 Project example  (0) 2021.11.16
211101 NUCLEO-F401RE Run configuration  (0) 2021.11.02
211101 NUCLEO-F401RE GPIO  (0) 2021.11.01
반응형

 

 

Cy;press EZ USB FX3 kit (Superspeed Explorer kit)

Control transfer test.

 

예제의 소스를 보면 구조가 비슷하다.

그러나 control transfer 부분을 Thread 에서 처리한 것도 있고 Callback 에서 처리한 것도 있다.

아래는 GpifToUsb 예제 소스에서 수정하여 테스트 해 보았다.

 

1. Control out

 

CyFxAppInUSBSetupCB 함수에서.

 

 

 

위 부분에 아래와 같이 Vendor command 추가.

디버그 포트로 간단히 출력만 한다.

반드시 CyU3PUsbAckSetup(); 을 해 주어야 정상적으로 전송 완료 된다.

USB Control Center 에서

인식된 디바이스의 Control endpoint (0x00)을 선택 

Bytes to transfer를 0, Direction : out, Req code : 0xAA, Req type : Vendor

나머지는 기본으로 두고 Transfer Data button.

'Zero-length data transfer completed' 가 표시된다.

 

 

이렇게 하면 Debug UART로 문자가 출력되는 것이 나온다.

참고) Debug UART의 default 설정은 115200 bps.

 

 

 

 

 

 

 

 

728x90
반응형

'공부 > HW' 카테고리의 다른 글

211117 PuTTy 재시작  (0) 2021.11.17
211116 Lattice Diamond NODE-locked license  (0) 2021.11.16
211112 무료 Hex editor HxD  (0) 2021.11.12
211105 Cypress EZ USB GPIO 1  (0) 2021.11.05
211026 Lattice Diamond 설치  (0) 2021.10.27
반응형

 

 

 

무료 Hex editor HxD

 

 

항상 무료 툴을 사용할 때 우려되는 라이선스.

아래와 같이 개인과 상업용 모두 무료라고 나와 있다.

 

https://mh-nexus.de/en/hxd/license.php

 

HxD License | mh-nexus

HxD License Short, non-legally binding version HxD is free of charge for private and commercial use. Since it is free, feedback that shows what you did with HxD, where or why you use it, or any other motivating feedback is welcome. Selling HxD is not allow

mh-nexus.de

용량도 작아서 첨부~ ^^

HxDSetup.zip
3.19MB

 

중요한 것은 검색 기능. 

 

 

간단히 Ctrl + F 하고,

  16진수 값 탭에서 16진수 값을 입력하고 검색하면 된다.

  F3 으로 검색된 값들을 이동할 수도 있다.

 

 

참고로 다른 Hex editor로 Frhed 도 있는데 이것은 검색이 불편하다.

https://en.wikipedia.org/wiki/Frhed

 

Frhed - Wikipedia

 

en.wikipedia.org

위 링크 내용에 있듯이 검색창에서 <bh:00> 이런 형식으로 써야지 검색이 된다.

 

 

 

 

 

728x90
반응형

'공부 > HW' 카테고리의 다른 글

211116 Lattice Diamond NODE-locked license  (0) 2021.11.16
211115 Cypress EZ USB Control transfer out  (0) 2021.11.15
211105 Cypress EZ USB GPIO 1  (0) 2021.11.05
211026 Lattice Diamond 설치  (0) 2021.10.27
210814 NUCLEO-F746ZG UDP Server  (0) 2021.08.19
반응형

 

TortoiseGit clone & checkout

 

Git client로 Fork를 쓰다가 유료라 회사에서는 무료툴을 써야 하기에 

회사에서도 써도 된다고 승인된 TortoiesGit

SourceTree도 무료라고 하는데... 그냥 사내 허가된 것 설치.

처음 써 보니 적응이 안 된다. ㅡ.ㅡ;

 

Git을 먼저 설치하고 TortoiseGit 을 설치한다.

TortoiseGit을 설치할 때 Git의 경로를 자동으로 인식하기에 이 순서로 설치한다.

Git 이나 TortoiseGit을 설치할 때 기본 설정으로만 Next 계속~ ㅋㅋㅋ

 

Git Clone

Clone을 원하는 폴더에서 오른쪽 클릭하고 Git Clone... 선택.

 

 

URL은 gitlab 에서 clone을 복사해 두면 자동으로 입력된다.

별다른 설정없이 OK.

 

암호를 묻는데 gitlab ID, PW를 입력한다.

 

 

Clone이 되었다. 그런데 소스가 왜 없지?

Fork는 clone 하면 다 다운 받는데...

Pull을 해도 안 나오네... 아직 Git 사용이 어색하다.

그래서 Checkout 확인!

 

Checkout

Clone 한 폴더에 오른쪽 클릭하고 TortoiseGit >> Switch/Checkout...

 

 

원하는 브랜치 선택하고 OK.

 

 

이제 소스가 보이는군!!! ^^

 

 

 

728x90
반응형
반응형

 

 

Visual C++ 2019 Debug 메시지 출력

 

static TCHAR szMsg[256];
sprintf(szMsg, "Bulk Data error %d - %d = %d\n", *buffers[i], bufOld, iResult);
OutputDebugString(szMsg);

 

위와 같이 하면 간단히 디버그 메시지를 출력할 수 있다.

C#을 하다가 오랜만에 C++을 하니 적응이 안 된다... ㅡ.ㅡ;

 

 

 

 

 

728x90
반응형
반응형

 

 

 

 

 

Cypress EZ USB kit GPIO 설정.

Superspeed explorer kit

 

CyU3PIoMatrixConfig_t io_cfg;

/* Configure the IO matrix for the device. On the FX3 DVK board,
 * the COM port is connected to the IO(53:56). This means that
 * either DQ32 mode should be selected or lppMode should be set
 * to UART_ONLY. Here we are choosing UART_ONLY configuration. */
CyU3PMemSet ((uint8_t *)&io_cfg, 0, sizeof(io_cfg));
io_cfg.isDQ32Bit = CyFalse;
io_cfg.s0Mode = CY_U3P_SPORT_INACTIVE;
io_cfg.s1Mode = CY_U3P_SPORT_INACTIVE;
io_cfg.useUart   = CyTrue;
io_cfg.useI2C    = CyFalse;
io_cfg.useI2S    = CyFalse;
io_cfg.useSpi    = CyFalse;
io_cfg.lppMode   = CY_U3P_IO_MATRIX_LPP_UART_ONLY;

/* GPIO 45 is used as input pin. GPIO 21 is also used but cannot
 * be selected here as it is part of the GPIF IOs (CTL4). Since
 * this IO is not used, it can be overridden to become a GPIO by
 * invoking the CyU3PDeviceGpioOverride call. */
io_cfg.gpioSimpleEn[0]  = 0;
io_cfg.gpioSimpleEn[1]  = 0x00001000; /* GPIO 44 */
//io_cfg.gpioSimpleEn[1]  = 0x00002000; /* GPIO 45 */
//io_cfg.gpioSimpleEn[1]  = 0x00003000; /* GPIO 44 & 45 */
io_cfg.gpioComplexEn[0] = 0;
io_cfg.gpioComplexEn[1] = 0;
status = CyU3PDeviceConfigureIOMatrix (&io_cfg);
if (status != CY_U3P_SUCCESS)
{
    goto handle_fatal_error;
}

 

io_cfg.gpioSimpleEn[0], [1] 으로 Gpio로 사용할 포트 설정.

 

위 레지스터 내용은 io_cfg.gpioSimpleEn[1] 의 하위 부분이다.

 

0x00001000 중 0x1000 => 0b0001/0000/0000/0000 이므로 위 표에서 b44 만 GPIO 로 설정한다.

 

Reference) Technicsl reference manual

 

 

 

 

 

728x90
반응형

'공부 > HW' 카테고리의 다른 글

211115 Cypress EZ USB Control transfer out  (0) 2021.11.15
211112 무료 Hex editor HxD  (0) 2021.11.12
211026 Lattice Diamond 설치  (0) 2021.10.27
210814 NUCLEO-F746ZG UDP Server  (0) 2021.08.19
210817 이탈리아형 전원 어뎁터  (0) 2021.08.18
반응형

 

 

 

 

 

NUCLEO-F401RE 

Run configuration 개발 환경 구축.

 

이렇게 편한 방법을 가지고 왜 매번 복사하기를 했는지...

복사하면 복사 후 탐색기는 자동으로 꺼지고...

 

STM32CubeIDE (V 1.7.0) 환경에서 아래와 같이하면 별다른 설정없이 Run configuration이 된다.

Run >> Run configuration 에서

STM32 Cotrex-M c/C++ Application 더블 클릭 >> 현재 프로젝트에 대한 설정이 생성된다.

 

 

별다른 설정없이 Run 실행.

NUCLEO board의 ST-link FW가 구버전이면 FW 업데이트 하라고 나오는데

업데이트 모드 활성화 하고 업데이트 하면 된다.

 

 

다운르드 까지 성공.

Shutting donw... 상태에서 끝나는데 Board는 정상 동작한다.

이제 쉽게 테스트 해 볼 수 있게 되었다. ^^

 

Run - Debug configuration... 도 동일한 설정으로 사용가능하다.

Debug mode 실행도 잘 되고 간단한 테스트 및 STM32 사용법 익히기에 편하다.

 

 

 

 

 

 

 

728x90
반응형

'공부 > STM32' 카테고리의 다른 글

211116 STM32 Project example  (0) 2021.11.16
211115 STM32 HAL_UART_Transmit  (0) 2021.11.15
211101 NUCLEO-F401RE GPIO  (0) 2021.11.01

+ Recent posts