본문 바로가기
  • 경제적 자유를 얻는 그날까지
728x90
반응형

분류 전체보기247

728x90
반응형
[ STM32 ] VS Code로 Nuttx OS 빌드 및 디버깅 환경설정하기 arm-none- eabi-gdb가 없을 때 해결방법 참고 사이트 https://askubuntu.com/questions/1243252/how-to-install-arm-none-eabi-gdb-on-ubuntu-20-04-lts-focal-fossa How to install arm-none-eabi-gdb on Ubuntu 20.04 LTS (Focal Fossa) I tried to install arm-none-eabi-gdb as a part of gcc-arm-embedded. I added PPA: sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa and executed: sudo apt install gcc-arm-embedded It res.. 2023. 5. 7.
[ STM32 ] STM32F4보드에 NuttxOS 설치하기 이전에 STM32보드에 CubeIDE를 이용하여 드론개발을 진행하였다. 편리한 GUI 인터페이스와 자동화 코드로 쉽게 구현할수 있어 장점이 많았다. 요즘 PX4 또는 github에서 오픈소스코드를 살펴보면 Nuttx OS 기반으로 비행제어 프로그램이 개발되어 있는 경우가 많아서 확장성을 고려하여 Nuittx OS 기반으로 프로그래밍을 개발하는 방법을 스터디해보고자 한다. 1. 하드웨어 준비 사용한 보드는 예전에 자작드론 개발시 사용했던 STM32F405RGxx 보드이다. 해당 보드는 omibus F4와 호환되는 보드로 LED, 자이로, PWM등을 온보드 형태로 사용할 수 있다. 보드에 대한 내용은 아래 포스팅을 참고하면 된다. 에뮬레이터는 J-Link를 사용한다. https://swiftcam.tisto.. 2023. 5. 7.
NuttX OS 알아보기 개발 환경 장비: 노트북 OS: Ubuntu 20.04 타겟보드: STM32F407 에뮬레이터: SEGGER J-Link 1. 개발 환경설정 필수 패키지 설치 sudo apt-get install automake bison build-essential flex gcc-arm-none-eabi gperf git libncurses5-dev libtool libusb-dev libusb-1.0.0-dev pkg-config -y OpenOCD 설치 설치 configure 에는 다양한 에뮬레이터를 활성화하는 옵션이 포함되어 있다. 본인은 J-link를 사용하는데 configure 실행시 아래와 같은 에러가 나면 J-link용 libjaylink-0.2 패키지를 별도로 설치해야 한다. $ mkdir nuttxs.. 2023. 3. 16.
STM32 CubeMX 에서 빌드시 'multiple definition of ... '오류 해결 방법 STM32 CubeMX에서 소스코드와 헤더파일을 추가하여 컴파일하다보면 아래와 같은 multiple definition of ... 오류가 빈번하게 나타난다. 특별히 문제가 될 만한 것이 없어 보이는데 자꾸 에러를 띄어서 여기저기 찾아보았다. /opt/st/stm32cubeide_1.11.2/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.linux64_1.0.100.202210260954/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld: ./Core/Src/usart.o:/home/swift/workspace/STM32Cub.. 2023. 2. 25.
[STM32 자작드론] FrSky SBUS 수신기 구현 사용된 수신기는 FrSky 사의 XSR수신기이며, 16채널 SBUS, CPPM 형태로 출력이 가능한 수신기이다. 입출력 인터페이스를 보면, SBUS와 S.Port, CPPM 포트가 나와있다. CPPM은 PWM 신호 형태로 입력을 받아서 사용해야 하고, S.Port는 텔레메트리 데이터 수신용으로 사용한다. 그리고 SBUS는 다채널 수신기 데이터 수신용으로 사용이 가능하다. 다만, 이 제품의 경우 SBUS 수신시 inverted serial 형태로 들어오기 때문에 inverting이 필요하다. 실제 수신기로 들어오는 SBUS 신호는 아래와 같이 측정된다. Serial 신호를 뒤집어 놓은 것과 같은 형태로 출력되기 때문에 inverted 되었다고 말한다. 일부 프로세서들은 UART 입력 핀의 Polarity를.. 2023. 2. 18.
[독서] 아들공부 “지금 당신의 사랑스런 아이에서 남자로 되어가고 있는 거예요 그러니 전혀 걱정할 필요가 없어요. 아이 입장에서 생각하고 이야기를 들어주세요. 그리고 무엇보다 믿고 기다려줘야 해요. 그러면 아이에게 엄마의 마음이 반드시 전달될거고 결국 아이는 당신에게 돌아올 거예요. 그때 당신은 제자리에 있어 주면되요.” 아들 육아의 핵심은 엄마의 아들에 대한 사랑을 아들의 성장에 맞추어 조금씩 조정하고 엄마와 아들 사이에 새로운 유대감을 형성해가는 것이 되어야 한다. 1. 아들의 첫사랑은 엄마이다. 아들은 항상 엄마의 관심을 필요로 한다. 자신과 함께 있어서 행복하다는 것을 엄마의 얼굴에서 읽어내면 아이는 행복감을 느낀다. 많은 남자 아이들이 엄마의 관심을 끌기 위해 스포츠를 한다고 한다. 평범해서는 엄마의 사랑을 받지.. 2023. 2. 7.
[STM32 자작드론] GPS 데이터 수신기 UART DMA 구현하기 Ublox NEO M8 GNSS 모듈 GPS, Galileo, GLONASS, DeiDou 수신 UART, SPI, I2C 인터페이스 NMEA, UBX 메시지 프로토콜 최대 30Hz(High Nav), 보통 1~10Hz 사용 u-center 프로그램있음 NMEA(The National Marine Electronics Association) 0183 프로토콜 UART 인터페이스 $GP??? 로 시작하는 아스키 Message 방식(데이터 길이가 가변이고 파싱코드 필요) ,로 데이터 필드 구분 범용적이며 데이터를 직관적으로 확이할 수 있음 NMEA 프로토콜 구조 애플리케이션 레이어에서의 문장 구조의 형식 및 특징은 다음과 같다. '$'로 시작한다. 첫 두 자리는 제품의 종류를 나타낸다. GPS 제품일 경우 .. 2023. 2. 5.
Github.io 블로그 만들기(3) - Jekyll에 테마 적용하기 앞글을 못보신 분은 차근차근~ 1) Github.io 블로그 생성하기 https://swiftcam.tistory.com/647 Github.io 블로그 만들기(1) - 생성하기 1. Github에서 새로운 Repository 생성하기 repository name에 반드시 username.github.io로 새로운 repository를 만들어주어야 한다. Create repository 하면 아래와 같이 메인 페이지가 보이는 repository가 생성된다. 2. L swiftcam.tistory.com 2) Github.io 블로그의 Jekyll Local 서버 설정하기 https://swiftcam.tistory.com/648 Github.io 블로그 만들기(2) - Local 서버 설정 블로그 생성하.. 2023. 1. 26.
Github.io 블로그 만들기(2) - Local 서버 설정 블로그 생성하기 내용은 아래 게시글 참고 https://swiftcam.tistory.com/647 Github.io 블로그 만들기(1) - 생성하기 1. Github에서 새로운 Repository 생성하기 repository name에 반드시 username.github.io로 새로운 repository를 만들어주어야 한다. Create repository 하면 아래와 같이 메인 페이지가 보이는 repository가 생성된다. 2. L swiftcam.tistory.com 생성된 블로그를 꾸미는 방법 시작~! 1. jekyll 및 기타 프로그램 설치 설치하기전 기존의 github.io에 있던 README.md과 index.html 파일은 모두 삭제한다. 터미널을 열고 아래 명령어로 jekyll을 설치한.. 2023. 1. 26.
Github.io 블로그 만들기(1) - 생성하기 1. Github에서 새로운 Repository 생성하기 repository name에 반드시 username.github.io로 새로운 repository를 만들어주어야 한다. Create repository 하면 아래와 같이 메인 페이지가 보이는 repository가 생성된다. 2. Local로 내려받기 녹색으로 된 Code 버튼을 클릭하면 나의 주소를 복사할 수 있다. https://github.com/shlee853/shlee853.github.io.git 내려받을 폴더를 지정하고, 터미널을 열어서 아래 명령어로 remote에서 local로 자료를 내려받는다. $ git clone https://github.com/shlee853/shlee853.github.io.git swift@swift-HP.. 2023. 1. 26.