목록stm32 (11)
Brise
STM32를 사용하여 펌웨어를 작성할 때에 태스크 코드에서 printf를 수행할 때 특정 경우에 오류가 발생하는 것을 볼 수 있다. 또는 malloc을 사용하여 큰 용량의 데이터를 Heap에서 확보하고자 할때 오류가 발생한다. malloc에서 보았다시피 이 문제는 FreeRTOS 때문에 생기는 문제다.(정확히는 FreeRTOS와 STM32에서 기본적으로 제공하는 newlib의 Heap이 충돌하는 문제이다. 둘 모두 ST마이크로에서 제공하는 코드인 것은 함정) 자세히 내용을 설명하자면 newlib에서는 printf를 수행하거나 malloc을 수행할 때 특정 경우에 한하여 더 큰 메모리를 요구하여 메모리 영역을 확보하는 코드인 _sbrk함수를 호출한다. 기본적인 펌웨어에서는 힙이 스택을 침해하는 것을 막기 ..
디스커버리 보드의 BSP는 사용자에게 여러 기능들을 편리하게 사용할 수 있는 기능들을 제공하지만, 예제 프로젝트가 CubeMX기반이 아니다 보니 유저가 설정을 추가하거나 바꾸기 힘든 부분이 있습니다. 때문에 CubeMX로 생성하고 BSP설정을 추가하는 노가다를 해야하는데, 이 부분의 수고를 덜기 위해 CubeMX프로젝트에 BSP을 추가하여 연동하는 방법을 이 포스트에서 소개합니다. 전체 프로젝트를 올리면 편하겠지만, 용량 문제로 필요한 파일만 업로드 합니다. 1. CubeMX를 설치합니다. 2. 첨부된 파일을 이용하여 프로젝트 코드를 생성합니다. (프로젝트 생성 디렉토리 변경 필요)3. 생성된 프로젝트를 엽니다. 4. BSP 관련 파일을 추가합니다. C:\Users\${UserName}\STM32Cube..
STM32 C/C++ software librariesStandard peripheral library.USB device library.DSP library.Encryption library.Motor control library.MP3 / WMA / Speex codecs and audio engine.Self-test routines. Motr Control library 에는 PMSM모터를 구동할수있는 함수들이 있는듯하다. http://en.wikipedia.org/wiki/STM32