분류 전체보기 61

라즈베리파이 5에 mqtt를 컴파일 할 때 추가하기

저번에 mqtt를 다운로드 했었는데(https://termuni.tistory.com/56)이걸 gcc로 컴파일 할 때 포함 되어있을 까? 라는 생각에 확인을 해보았다.pkg-config --modversion mosquitto 결과는..?Package mosquitto was not found in the pkg-config search path.ㅜㅜㅠㅠㅠㅠ 없다고 나온다... 그래서, 이걸 해결하는 겸 다음과 같은 문제들도 해결하려고 한다.VSCode로 코드 작성 시 mosquitto가 없다고 나오는 문제 해결gcc로 컴파일 시 자동으로 mosquitto를 포함하는 컴파일 명령 제작 (nano make를 통해 make 명령어를 만들 예정)1. VSCode로 코드 작성 시 mosquitto가 없다고 나..

Wiring Pi - PWM.c 분석

#include #include #include #include int main (void){ int bright ; printf ("Raspberry Pi wiringPi PWM test program\n") ; if (wiringPiSetup () == -1) exit (1) ; pinMode (1, PWM_OUTPUT) ; for (;;) { for (bright = 0 ; bright = 0 ; --bright) { pwmWrite (1, bright) ; delay (1) ; } } return 0 ;}해당 코드가 pwm의 예제 코드이며, 이 코드에서 다시 pinMode부터 분석해보려고 한다.주요 분석 코드로 pinMode, pwmWrite ..

함수 포인터란?

라즈베리파이를 c언어로 다루기 위해, 이것저것 공부를 하고 있다. 그러던 와중, 함수포인터가 매우 자주 보여 이를 정리하고자 한다! 원리 위주로 파해칠 예정이며, 활용은 다른 게시글 참고바란다! 그리고 제일 중요한 것은, 포인터를 잘 모르겠으면 무조건 이해하고 와야한다.꼭!!!! 무조건이다!!https://dojang.io/mod/page/view.php?id=591 C 언어 코딩 도장: 68.0 함수 포인터 사용하기C 언어에서 함수는 이름이 정해져 있죠. 그래서 함수를 호출하려면 함수 이름으로 직접 호출했습니다. void hello() { printf("Hello, world!\n"); } int main() { hello(); // 함수 이름으로 함수를 직접 호출 returndojang.io이 글을 ..

CS 지식 정리 2025.03.14

Wiring Pi - ISR.c (인터럽트 서비스 루틴) 분석

이번에는 인터럽트 서비스 루틴에 대해서 분석해볼 예정이다. 뭐,,, 인터럽트에 대한 내용은 따로 CS 지식 정리 할 때 정리하겠다.  애초에, 인터럽트는 너무 흔한 개념이기도 하고 기본적으로 이게 궁금해서 온 사람은 모를리 없다는 것을 전제로 하여 진행할 것이기 때문!isr.c#include #include #include #include #include // globalCounter:// Global variable to count interrupts// Should be declared volatile to make sure the compiler doesn't cache it.static volatile int globalCounter [8] ;/* * myInterrupt: ************..

라즈베리파이 5에 Wiring Pi 다운로드하고 실행 점검하기

거두절미하고, 바로 스타트!sudo apt install gitgit clone https://github.com/WiringPi/WiringPi.git # 원하는 위치에서 clone하길 권장cd WiringPi만약 git이 다운로드 되어있지 않다면, git부터 다운로드 하자. cd WiringPi./build이 명령어까지 사용해주자. 그런 다음, wiringPi를 다운로드 하고 난 뒤 빌드를 할 때 같이 사용되게 하고 싶다. 원래는 다음과 같은 명령어를 통해 일일히 wiringPi를 연결시켜주어야 한다.gcc -o myapp myapp.c -l wiringPi 그러나 너무 귀찮다! 그렇기에, 다음 과정을 통해, 자동으로 링크해주도록 하겠다.find /home/pi/WiringPi -name wiring..

라즈베리파이 MQTT 설치 및 자동 실행 설정

프로젝트에 대해서 회의를 해 본 결과, 데이터를 측정한 다음을 어떻게 할 것인지 회의를 했다. 그 과정에서, MQTT를 Python으로 주고받자고 결론을 낼까 했는데.. C언어로 하는 것이 더 좋을 수 있다고 하는 의견에 좀 더 생각해보았다. 근데 어차피 라즈베리파이에 다운로드도 내가 할 거고, 설정도 내가 할 건데.. 그리고 제일 중요한 건라즈베리파이에서 데이터를 측정한 것을 그대로 코드에서 이어서 보내면 더 좋을 것 같은데? 라는 생각에 (반은 설득 당했다) C언어를 기반으로 MQTT 서비스를 통해 송수신을 구현하기로 했다. 그러면 일단 MQTT 서비스를 다운로드 해야하니, 이 다운로드 하는 방법을 찾아보겠다!https://velog.io/@imkkuk/%EB%9D%BC%EC%A6%88%EB%B2%A..

Wiring Pi 파헤치기 (2) PI-Thread 알아보기

오늘은 Wiring Pi의 Thread를 알아볼 예정이며, 이 과정에서 C언어로 Threading을 제작하는 방법도 알아볼 예정이다.#include #include // LED Pin - wiringPi pin 0 is BCM_GPIO 17.#define LED 0PI_THREAD (blinky){ for (;;) { digitalWrite (LED, HIGH) ; // On delay (500) ; // mS digitalWrite (LED, LOW) ; // Off delay (500) ; }}int main (void){ printf ("Raspberry Pi blink\n") ; wiringPiSetup () ; pinMode (LED, OUTPUT) ; piT..

AUTOSAR - SW 컴포넌트 개념

오늘의 CS 지식은 AUTOSAR 관련 지식이다. 차량 쪽의 지식을 굳이 CS로 정리하는 이유? 그것은 이러한 SW 컴포넌트는 어딜 가던 비슷할 것 같아서.. 실제로도 유니티 SW 개발을 하던 당시에도 SW Component를 제작하고 이걸 재활용하는 방안을 최대한 모색했었다. 그렇기에, 순수 SW에서도 쓰이는 개념을 임베디드에서 안 쓸리가 없었고, 이러한 형태는 차량뿐만 아닌 방산, 의료기기 등 여러 분야에 쓰일 가능성이 높다고 생각하여 정리하게 되었다. https://blog.naver.com/PostView.naver?blogId=mds_datasecurity&logNo=222674332146&categoryNo=37&parentCategoryNo=0&photoView=1 [RapidAUTO] AU..

CS 지식 정리 2025.03.10

Wiring Pi 파헤치기 (1) 예제부터 차근차근 알아보기

https://github.com/WiringPi/WiringPi GitHub - WiringPi/WiringPi: The arguably fastest GPIO Library for the Raspberry PiThe arguably fastest GPIO Library for the Raspberry Pi - WiringPi/WiringPigithub.com 이 예제는 위 Git에 올라와있는 Wiring Pi에서 가져온 내용이다.단순히 Wiring Pi를 쓰는것 부터 시작해서, 이 Pi를 어떻게 만들었는지까지 살펴볼 예정이다.#include #include // LED Pin - wiringPi pin 0 is BCM_GPIO 17.#define LED 0int main (void){ printf ..