Don't think! Just do it!

종합 IT 기술 정체성 카오스 블로그! 이... 이곳은 어디지?

임베디드 소프트웨어/FreeRTOS 4

FreeRTOS + Lwip socket 갯수 조정

STM cube에서 rtos + lwip 서버를 돌릴 때 접속가능한 클라이언트 갯수를 조정해보려고 ㅎ 상당히 간단한데 난 엄한 이유로 개고생했어 ㅋ 다른 사람들은 나처럼 고생하지 말라고!! 🤬🤬🤬 간단하게 설명하면 MEMP_NUM_TCP_PCB MEMP_NUM_TCP_PCB_LISTEN MEMP_NUM_NETCONN 이 세가지를 조정하면 끝이야. 내용이 중복되는 느낌이지만 암튼 이것들이 클라이언트의 접속 갯수에 영향을 미쳐. 설정은 아래와 같이 👇👇👇👇 총 소캣 수 = 클라이언트 수 + 1 서버니까 listen 소켓 하나 + 클라이언트용 소켓들로 총 소켓 수가 나오겠지? 난 3개의 클라이언트의 접속을 허용할거니까 +1해서 4로 설정했어. 👇👇👇👇 간단하지? ㅋㅋㅋㅋ 그런데 내가 고생했던 부분은 여기가 아..

LWIP TCP Send가 느릴 때

stm32f407vg + freeRTOS 조합에서 lwip을 사용하고 있는데 TCP Send에 문제가 있는 걸 발견했어! 왠지 모르게 조금 늦게 패킷이 나가더라구. 작은 패킷은 상관없는데 약간 큰 패킷(그래봐야 1024bytes)은 바로 나갈 때도 있고 딜레이가 생길 때도 있고 하더라구. 한.. 0.5초에 한번쯤 나가는 느낌? 해결하려고 신나게 뻘짓을 했지. TCP Thread 스택 크기가 작아서 그런가? 하고 TCP_THREAD_STACKSIZE도 4096 Word(16k)까지 늘려봐도 안되고~ 혹시 Segment 때문에 그런가 싶어서 536 bytes -> 1460 bytes(최대값)으로도 변경하고 Sender buffer도 이빠이 늘려보고~ Queue length도 늘리고~ 해봐도 증상에 변함이 없..

vApplicationStackOverflowHook()

스택 오버플로우는... 많은 도움을 받고 있는 곳(사이트)이지만 ㅋㅋㅋ 내 프로그램에서 발생한다면 지옥인거지 ㅋㅋ 임베디드에서는 딱히 볼일이 없었는데 요즘은 RTOS 때문에 신경써야 할 부분이 되었어 ㅋㅋ 일부는 RTOS를 사용하더라도 malloc, free는 절대 사용안하고 task의 stack을 과도하게 설정한다던지 하는 방법으로 스택 오버플로우를 피해왔지만 그건 근본적인 해결책이 아니지 ㅋㅋㅋ 어차피 고급 라이브러리들 (lwip, usb stack, mbed tls, file system 같은 고귀한 분들) 은 malloc, free를 사용하고 있어서 Stack overflow를 피할수가 없어 ㅎ 그러니까 괜히 쓸데없는 노력하지 말고 malloc, free 그리고 heap과 stack 구조를 받아들..

STM32 MCU를 또 만지네...

회사를 때려치우면서 이제 다시는 임베디드 쪽 만질 일이 없을 것 같았는데 ㅎㅎ 세상일이 내맘대로 되는 게 하나도 없어 참.. 말도 안되게 전세 대출 연장이 막히면서 어쩔 수 없이 취직해야 할 상황이 되었단 말야.. 취직할 수 밖에 없었던 상황 => 난 카뱅 전세 대출이었는데 LH 신혼부부 전세 임대?(이자 엄청 쌈! 1.9%) 거기 심사에 통과했단 말이지. 그래서 LH 전세 자금 + 기존 카뱅 전세 대출 + 내 돈, 이렇게 해서 새로운 전세집으로 이사를 갔지! 좀 있다가 카뱅 전세 만기가 돌아와서 신청을 했더니 전세 연장 불가... 이럴까봐 이사하기 전에 카뱅하고 LH 양쪽에 미리 확인 전화까지 했는데 괜찮다고 그랬거든 ㅋㅋㅋ 그런데 갑자기 연장 불가 ㅋㅋㅋ "고객님의 심정은 알지만 도와드리지 못해서 정..

반응형