2018/04 15

아리랑 슈챔 이벤트

길마인 프사마가 허락해줘서 아리랑에서 슈챔이벤트를 하였습니다. 생각은 머덜 집단들이 싸우고 그 사이에서 블루들이 슈챔을 잡고 나가는 상상을 하였는데 별 일없이 끝났습니다. ㅠㅠ (그럴 일이 없다는 걸 알고 있는데도...) 천사챔하느라 고생했는데 그래도 나름 많은 분들이 오셔서 기분이 좋았습니다. 하... 하지만 천사챔 또 하고 싶진 않으다. ㅠㅠ

My UO/Ultima Online 2018.04.22

통신 프로토콜

홈네트워크 통신연동할 때 쓴 후로 통신 프로토콜 짤 때 기본으로 잡고 가장 많이 썼던 구조입니다.(홈넷 통신 프로토콜과는 약간 다름) 간단하면서도 필요한 부분은 다 있어서 괜찮았습니다. 데이터 무결성차원에서 Check Sum과 Check Xor 자리에 CRC16을 사용하기도 하였고 HMAC을 사용하기도 하였습니다.(HMAC의 경우 앞 바이트만 잘라서 사용) Byte 1 1 1 N 1 1 1 Data 0x02 Var. Var. Var. Var. Var. 0x03 Field Start Cmd Length Data N Sum Xor End Host쪽에서 CMD에서 0x01를 보내면 Slave쪽에서 최상위 비트에 1을 넣어서 0x81로 데이터를 보내는 방식을 사용하였고, CMD 1바이트로 부족한 경우가 많아 D..

ST에서 지원하는 Low Layer 드라이버

ST에서 이제 Stdlib를 지원하지 않고 Hal만 지원하여 답답했었는데 보다보니 Hal 드라이버만이 아닌 LL Driver을 지원했습니다. Drivers\STM32L1xx_HAL_Driver\Src 폴더에 보면 stm32fxxx_hal로 시작하는 것말고 stm32fxxx_ll로 시작하는 것들이 있는데 이게 Low Layer Driver이었습니다. 처음에 드라이버 추가할 때 뭘까 했었는데 이게 Low Layer였다니... 기존에 Stdlib를 썼거나 hal이 뜻하는대로 되지 않아 불편한 사람들에게는 정말 좋은 것 같습니다. (다른 건 몰라도 SPI나 UART등등 통신으로 Hal 처리하는 게 원하는 대로 되지 않아 불편했었는데 다행이었습니다.) /*********************************..

HAL_UART_Receive_IT 사용하지 않기

ST에서 기존 드라이버들에서 Hal 드라이버로 변경한 후 UART 데이터 수신 후 문제가 많았습니다. 물론 틀에 박혀서 사용해야한다는 고정관념 때문이었습니다. 그러다 어떤 분이 올려놓으신 글(당근이)과 아래 사이트를 보면서 아! 꼭 제시해준 방법을 쓰지 않아도 되는구나 기존처럼 사용해도 되는 구나! 하는 것을 알게 되었습니다. (세상에는 똑똑하신 분들이 많네요. 고정관념 진짜 ㅠㅠ) https://www.basic4mcu.com/bbs/board.php?bo_table=d1&wr_id=40&page=3 Uart 설정 char Uart1RxData; /* USART1 */ Uart1Handle.Instance = USART1; Uart1Handle.Init.BaudRate = 115200;//Baud Ra..