STM32F4の情報 / FreeRTOS


  • まあ、実は デジタルオーディオプレーヤーでは、FreeRTOS は使っていないのだけど。

FreeRTOS

  • FreeRTOSの最新バージョン V7.1.1からSTM32F4が使えるようになった。
    • せっかく、水城さんが、V7.1.0で STM32F4を使うためのパッチを作ったのに・・
  • ただし、GCC用のmakefileが付加されていないので、使いにくい。
  • GitHubに、FreeRTOSのプログラムのサンプルを入れておいた。
    • GitHub自体の使い方やGiTについては、それぞれのページを見て。
  • このサンプルには、GCC用のmakefileを付けておいたので、使いやすいと思う。
  • 一応、FPUも使えるようだ。
    • まだ、厳しい試験はおこなっていないが。

必要なファイル

  • 2012/07/05 時点の最新 FreeRTOS 本体
  • STMよりライブラリー「stm32f4_dsp_stdperiph_lib.zip」をダウンロード
    • STMicroelectronics
    • 「マイコン&メモリ」のアイコンをクリック
    • 「マイクロコントローラ」のアイコンをクリック
    • 左欄の「32bit マイクロコントローラ : STM32」をクリック
      • 「STM32F4シリーズ」をクリック
    • 「リソース」のタブをクリック
    • ソフトウェアリソースの「ファームウエア」をクリック
    • リストの中から「STM32F4 DSP and ・・・」の文字列を探す。
    • stm32f4_dsp_stdperiph_lib.zip をダウンロード
  • 当然、STM32プログラム開発環境を準備しておくこと。
  • デフォルトのUSARTは、makefile の27行目で、USART1〜4から選ぶ事ができる。
    • ボーレートは、inc/uart_support.h の51行目で変える事ができる。なお、ボーレートは、外部クロックの周波数が8MHzだと言う前提で設定されようにしてある。
    • USART1からの出力は、非同期の8N1形式で設定した端末プログラムで受信するように。
    • なお、USART1〜4は同時に使うことができる(はず)ように改造している。makefile の27行目で選ぶデフォルトのUSARTとは、printf出力の切り替えにすぎない。putch_p()やgetch_p()であれば、同時に使用可能である。
  • 本サンプルプログラムは、STM32F405でもSTM32F407でも共通して動作する。
  • サンプルプログラムの入手及びコンパイル方法を下記に示す。
$ mkdir ~/STM32F4  << これは何処でも良いけど、この後の作業エリアになる
$ cd ~/STM32F4
$ unzip FreeRTOSV7.1.1.zip
$ unzip stm32f4_dsp_stdperiph_lib.zip
$ git clone https://github.com/madnoda/stm32f4-freertos stm32f4-freertos
$ cd stm32f4-freertos
$ make

注意

  • 2012.06.19 判った情報。
    • 調査の結果、
    • main()の
    • SysTickInit?(INTERVAL);
    • vTaskStartScheduler?();
    • の間に長いループを含むルーチンが入っているとハングアップすることが判った。
    • 長いループを含むルーチンは、この外に置くこと。

参考リンク


プロジェクト


共通



最新の20件

2020-11-14 2014-11-10 2014-08-17 2013-12-23 2013-09-29 2013-08-09 2013-08-07 2013-08-03 2012-11-28 2012-08-25 2012-07-05
  • STM32F4の情報/FreeRTOS
2012-07-03 2012-07-01

今日の7件

  • counter: 6079
  • today: 1
  • yesterday: 0
  • online: 2