일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- vscode
- 리눅스
- atmel
- AVR
- C++
- STM32
- 디버깅
- buildroot
- Debugging
- bare metal
- GPIO
- Linux
- AArch64
- Raspberry
- Visual Studio
- Visual Studio Code
- yocto
- BeagleBone
- UART
- raspberrypi
- 라즈베리파이
- avr-gcc
- USART
- nucleo
- esp32
- Debug
- 아두이노
- platformio
- QEMU
- Arduino
- Today
- Total
목록Embedded (61)
임베디드를 좋아하는 조금 특이한 개발자?

해당 문제의 발생 원인은 gperf 버전이 업데이트 되면서 발생하는 문제입니다. 해당 문제를 해결하기 위해서는 3.0.4버전으로 다운그레이드를 할 필요가 있습니다. 먼저 다음의 명령어로 기존에 설치되었던 gperf 를 삭제합니다.sudo apt-get --purge remove gperf 이제 3.0.4버전의 gperf를 설치하도록 하겠습니다.wget http://ftp.gnu.org/gnu/gperf/gperf-3.0.4.tar.gzcd ./gperf-3.0.4.tar.gz./configuremakesudo make install 위 명령어를 사용하여 설치를 완료하였다면 /usr/local/bin 폴더에 gperf파일이 있는 것을 확인 할 수 있습니다.해당 파일을 저희가 터미널에서 사용하기 위해서 파..

1. STM32의 UART 통신의 문제점 STM32의 가장 큰 문제점은 아두이노에 비해 UART를 사용하기 매우 힘들기에 배우기 힘들어 한다고 생각한다. 내가 경험한 바로 크게 2가지 정도 UART를 사용하는데 힘들어하는 점은 다음과 같다. 1.1. 수신하려는 데이터 길이가 고정 많은 사람들이 STM32를 다루기전에 아두이노를 먼저 사용한 경험이 있는 사람이 대부분일 것이다. 아두이노에서는 굳이 데이터의 길이를 알지 않아도 자동적으로 처리해주기에 개발하는데 매우 편리하다. 하지만, STM32의 경우 데이터를 송수신 하는 경우 데이터의 길이를 미리 알아야 송수신이 가능하다. 특히, 데이터의 길이가 가변적인 경우( ex. 명령어를 보내는 경우) 매우 난감하다. 1.2. 인터럽트가 도중 멈추는 경우 ..

#ifdef __cplusplusextern "C" {#endifint __io_putchar(int ch){ // UART3에 ch에 있는 문자 1개를 1ms내 전송 if(HAL_UART_Transmit(&huart3, (uint8_t*)&ch, 1 ,1) != HAL_OK) return 0; //출력 실패 시 0 리턴 return ch; //출력 성공 시 출력한 데이터 리턴}#ifdef __cplusplus}#endif 재정의한 __io_putchar() 함수에 extern"C"를 감싸주면 정상적으로 동작 한다.

1. 개발 환경반드시 VScode의 STM32 Extension의 버전이 2.1.0 이상인지 확인해야 한다. 2. 설정2.1. 파일 확장자를 cpp로 변경먼저, cpp로 빌드 하고자 하는 파일의 확장자를 cpp로 변경한다.2.1. CMake 설정CMake파일에서 확장자를 변경한 파일에 대해서 변경해주어야 한다.

1. printf()를 사용하고자 하는 이유1.1. 코드 길이 축소 UART 통신은 데이터를 송수신 할때 자주 사용하는 통신으로 디버깅이나 현재 로그를 출력하기 위해 자주 사용된다.기본적으로 STM32에서 UART를 이용하여 데이터를 PC에 전송할 때 HAL_UART_Transmit() 함수를 사용하지만, 필요한 인수가 4개(통신할 UART, 전송할 메세지, 메세지 길이, 타임아웃 시간) 이므로 자주 사용하는 함수임에도 사용이 매우 불편하다. 그러므로, C언어를 사용할 때 부터 자주 사용하였던 printf()함수로 대체하여 기본 HAL_UART_Transmit() 함수보다 편하게 사용하고자 한다. // 기존 UART 통신 함수 사용char* Message = "Hello world";HAL_UART_T..

STM32을 개발하기 위해서 STmicronics 회사에서 제공하는 "STM32 CubeIDE"를 사용하였습니다. 하지만, 기존 Visual studio code를 자주 사용하는 저에게 있어 Eclipse 기반의 STM32 CubeIDE는 사용하기 매우 불편하였습니다. 다행이 STmicronics 회사에서 Visual studio code에서 개발 할 수 있는 extension를 제공하고 있습니다.아직, 많은 기능이 부족하지만 제가 사용하기에는 충분하여 Visual studio code로 개발환경을 구축해보았습니다. 1. 사전 필요 프로그램1) STM32 CubeCLT (Version: V1.16.0)https://www.st.com/en/development-tools/stm32cubeclt.html ..