아학아학 463

통신 프로토콜

홈네트워크 통신연동할 때 쓴 후로 통신 프로토콜 짤 때 기본으로 잡고 가장 많이 썼던 구조입니다.(홈넷 통신 프로토콜과는 약간 다름) 간단하면서도 필요한 부분은 다 있어서 괜찮았습니다. 데이터 무결성차원에서 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..

Coocox Misc Controls에서 지원하는 옵션 모음

Coocox Misc Controls에서 --help;를 입력하면 나옵니다. 매뉴얼 없다고 계속 찾아다녔는데 이런 방법이.... 국내에서 들어오는 아이피를 막았는지 Coocox사이트에 접속이 불가능하네요. 이런 컴파일러를 써야하다니. ㅠㅠ Set architecture -a KEYWORD Shared library control for HP/UX compatibility -A ARCH, --architecture ARCH -b TARGET, --format TARGET Specify target for following input files -c FILE, --mri-script FILE Read MRI format linker script -d, -dc, -dp Force common symbols t..