[FreeRTOS] freertos_mpool.h, freertos_os2.h No such file or directory issue
·
MCU/stm32
서론stm32cubeIDE에서 freertos를 사용하려고 하면  "freertos_mpool.h""freertos_os2.h"  위 두 헤더파일이 없어 빌드가 안 되는 상황이 발생한다. 다른 경로에 파일이 있긴한데 프로젝트 경로로 옮겨줘도 다른 에러가 나온다.   해결 방법 펌웨어 버전을 1.8.5 버전으로 바꾸면 해결됨  STM32CubeMX 6.13.0 버전에서는 해결된 문제라고 하네요 출처https://community.st.com/t5/stm32cubeide-mcus/problems-with-stm32f103zet6-using-stm2cubeide-to-build-freertos/td-p/712300?lightbox-message-images-712300=85895i03A267CFF0FF44D3
ST LINK
·
MCU/stm32
SWD(Seruak Wire Debug) 통신을 위해 사용한다.    처음 stm32를 접하면 여기서부터 애를 먹을 수 있는데 보통 해줘야 할게 1. st link 드라이버 설치 (설치해 줘야 컴퓨터에서 인식한다) 2. st link 펌웨어 업데이트  검색하면 나오니까 검색 ㄱㄱ  Nucleo보드 같은 경우는 st link 회로가 보드 안에 같이 내장되어 있다. 그래서 usb 5핀으로도 업로드/디버깅이 가능함 ㅇㅇ  st사에서 공식적으로 회로도를 제공하지는 않지만 nucleo 회로도 보면 st link 회로도가 있긴 하다.  STM32F103CBT6으로 설계된 거 같은데 봐도 뭔 소리인지 모르겠다.  위에 회로도 참고해서 나중에 시간 나면 st link를 직접 만들어보는 것도 재밌을 것 같다.
[NUCLEO-F103RB] GPIO
·
MCU/stm32
0. 개발 환경IDE: STM32CubeIDE개발보드: NUCELO-F103RB   1. 내장 LED 회로도F103RB보드에는 사용자 응용으로 내장해 둔 LED가 있다. 회로에는 LD2이다. Schematic을 보면 LD2가 PA5에 연결되어 있는 것을 확인할 수 있다.Source current라 PA5의 출력이 HIGH가 되어야 LED에 불이 켜질 것이다.    2. Pin ConfigurationPA5를 GPIO_OUTPUT으로 설정한다. 처음 프로젝트 생성할 때, nucleo보드로 생성했더라면 이미 자동으로 설정되어 있을 것이다.      그러면 이렇게 코드가 생성된 것을 확인할 수 있다. 기본 세팅들은 이미 전에 했으니 따로 설정할 건 없고 main 함수 안에 잇는 while문에서 작업을 하면 된..
[NUCELO-F103RB] stm32cubeIDE 프로젝트 생성
·
MCU/stm32
사용 보드 : NUCLEO-F103RB개발 IDE : STM32CubeIDE      Board Selector로 들어가서 보드 명을 검색하면 우측하단과 같이 해당 보드가 뜬다. 보드 선택 후 Next 클릭     프로젝트 이름 적고 Finish를 누르면 프로젝트가 생성된다.    Yes 클릭    다음과 같이 프로젝트가 생성된 것을 알 수 있다. 처음에 생 mcu가 아닌 개발보드를 선택했기 때문에 보드와 관련된 기본적인 페리페럴들은 이미 세팅되어 있는 것을 확인할 수 있다. (ex. 내장 LED(PA5), 버튼(PC13) 등..)
[NUCLEO-F103RB] 보드 분석 : OSC 32 kHz clock supply (LSE)
·
MCU/stm32
LSE : 외부에서 제공되는 클럭, HSE에 비해 느리다  1. On-board oscillatorX2 크리스탈을 통해 받는다. ABS-32.768KHZ-6-T 사용을 권장한다.   2. Oscillator from external PC14- SB48 and SB49 ON- R34 and R36 제거 CN7커넥터에 25번 pin으로 클럭을 받는다. 위와 같은 조건이 필요하다.   3. LSE not used - SB48 and SB49 ON- R34 and R36 removed PC14, PC15를 GPIO처럼 사용한다. 위와 같은 조건이 필요하다.
[NUCLEO-F103RB] 보드 분석 : OSC Clock (HSE)
·
MCU/stm32
클럭 선택은 CubeIDE를 사용하여 변경 가능. F103RB에는 HSE를 사용할 수 있는 네 가지 방법이 있다. (HSE : 외부에서 제공되는 클럭) 1.MCO from ST-LINK(default)회로도와 같이 X1(8MHz 크리스탈)이 ST-LINK로 연결된다. 그리고 시스템 clock이 제대로 동작하는 지 확인할 수 있게 PA8 핀으 MCO 신호로 clock이 출력된다.   그리고 해당 MCO신호가 U5(stm32 mcu)의 input으로 들어온다. 회로도를 보면 PF0/PD0/PH0 - OSC IN핀으로 연결되어있다. 해당 방법을 사용하려면 세 가지 조건이 필요하다 - SB55 OFF / SB54 ON (== PF0 OFF / PF1 ON)- SB16와 SB50 ON- R35와 R37 제거   ..
[NUCLEO-F103RB] 보드 분석 : Push Button
·
MCU/stm32
뉴클레오 보드에는 두 개의 Push button이 내장되어 있다. (B1 : 파란색, B2 : 검은색)  1. B1 (파란색) PC13에 연결되어 있으며 사용자 응용이다.  pull-up으로 연결되어있어 PC13핀을 통해 값을 읽으면 버튼을 안 누르면 1, 누르면 0이다.   2. B2 (검은색)NRST핀에 연결되어 있으면 리셋 버튼이다.
[NUCLEO-F103RB] 보드 분석 : LED
·
MCU/stm32
뉴클레오 보드에는 세 개의 LED가 내장되어 있다. LD1, LD2, LD3 1. LD1 세 가지 색상 (Green, Orange, Red)ST-LINK 통신 인디케이터 LED상태동작 상태천천히 LED ON / OFF전원 인가 후 USB 초기화 전 빠르게 LED ON / OFFPC와 ST-LINK/V2-1 사이 초기 정상 통신 후 빨간색 LED ON PC와 ST-LINK/V2-1 사이 초기화 완료 녹색 LED ONSTM32보드와 정상적인 통신 초기화 완료빨/녹 LED ON / OFFSTM32보드와 통신 중녹색 ONSTM32보드와 정상적인 통신 완료오렌지색 ONSTM32보드와 통신 실패    2. LD2Green LED사용자 응용, 그냥 달려있는거임 PA5(pin21)에 연결되어있음     3. LD3Re..
[NUCLEO-F103RB] 보드 분석 : Power Supply
·
MCU/stm32
뉴클레오 보드에 전원을 인가해줄 수 있는 방법은 두 가지가 있다. 1. USB 포트 사용 (U5V)2. 외부 전원 사용(VIN, E5V) 전원을 공급할 수 있는 외부 핀들은 총 세 가지가 있다.VIN : 7-12VE5V : 5V3.3V on CN6 / CN7 : 3.3V    VIN, E5V핀을 이용해 보드에 전원을 공급해도 디버깅, 업로드는 가능 하지만 아래와 같은 절차를 따라야한다.  안 그러면 컴퓨터가 데미지 입거나 전원이 제대로 인가가 안될수도 있다네요    JP5를 사용해 PC USB에서 전원을 받을 지, 별도의 외부 전원에서 받을 지 선택할 수 있다  회로도를 다시 보면 JP5에 의해 USB전원(U5V)과 외부전원(VIN, E5V)이 선택된다.외부 전원이 VIN에 공급되면 U3(5V 레귤레이터..
[NUCLEO-F103RB] 보드 분석 : ST-LINK/2-1
·
MCU/stm32
뉴클레오 보드의 윗 파트 설명. 임베디드시스템을 개발하는데 자주 쓰이는 디버거의 통신 방식이 있다.  JTAG와 SWD    뉴클레오 보드는 SWD 방식만 지원 CN2에 있는 점퍼를 사용해 두 가지 기능으로 사용할 수 있다.CN2 점퍼 두 개각 ON(끼워짐) : 보드에 있는 stm32 mcu를 사용 / 업로드 용 (default)CN2 점퍼 두 개각 OFF(빠짐) : 다른 STM32보드 사용을 위함 1. 보드 MCU 사용 (CN2 Jumpers ON)CN2에 있는 두 개의 점퍼선이 꼽혀있는 지 확인CN4는 사용 X, 통신을 방해할 수 있음 2. 외부 MCU 사용 (CN2 Jumpers OFF)CN2에 있는 점퍼선을 제거 CN4 커넥터의 SWD에 해당하는 신호선을 외부 STM32보드의 신호와 연결하여 사용..