Project

General

Profile

UsingAmazonFreeRtos » History » Revision 3

Revision 2 (mole lord, 09/12/2020 11:44 AM) → Revision 3/4 (mole lord, 09/12/2020 01:52 PM)

# UsingAmazonFreeRtos 

 {{>toc}} 

 FreeRTOSはSTM32CubeMX上で組み込むことができます。しかし、将来Ethernetにつなぐことを考えるとAmazonがgitリポジトリで配布しているFreeRTOSを使うほうが楽そうです。 
 CubeMXで作るのはピン設定の自動生成だけにして、それとAmazon FreeRTOSを合体させてみます。 

 ## ドキュメントのありか 

 [FreeRTOS ドキュメント](https://docs.aws.amazon.com/freertos/index.html) 

 ## CubeMXプロジェクトの設定 

 SVC_Handler, PendSV_Handler, SysTick_Handlerの重複を避けるために、以下の設定をします。 

 * System Core - NVIC の Code Generationタブで、 System Service~ と Pendable Request~ と System tick timer のチェックを外します 

 ## Amazon FreeRTOSのgitリポジトリをクローン 

 自分で作ったgitリポジトリのworkフォルダの中で、submoduleとして https://github.com/aws/amazon-freertos.git の tag 202007.00 をクローンします。 

 ## Makefileの設定 

 BUILD_DIRのあとに、AMAZON_DIRを追加します。 

 ~~~ Makefile 
 BUILD_DIR = build 
 AMAZON_DIR = ../../amazon-freertos 
 ~~~ 

 C_SOURCES および C_INCLUDES に、以下のようにFreeRTOSのソースを追加します。 

 ~~~ Makefile 
 C_SOURCES =    \ 
 $(AMAZON_DIR)/freertos_kernel/portable/MemMang/heap_4.c \ 
 $(AMAZON_DIR)/freertos_kernel/portable/GCC/ARM_CM4F/port.c \ 
 $(AMAZON_DIR)/freertos_kernel/croutine.c \ 
 $(AMAZON_DIR)/freertos_kernel/event_groups.c \ 
 $(AMAZON_DIR)/freertos_kernel/list.c \ 
 $(AMAZON_DIR)/freertos_kernel/queue.c \ 
 $(AMAZON_DIR)/freertos_kernel/stream_buffer.c \ 
 $(AMAZON_DIR)/freertos_kernel/tasks.c \ 
 $(AMAZON_DIR)/freertos_kernel/timers.c \ 
 Core/Src/main.c \ 
 ... 

 C_INCLUDES =    \ 
 -I$(AMAZON_DIR)/freertos_kernel/portable/GCC/ARM_CM4F \ 
 -I$(AMAZON_DIR)/freertos_kernel/include \ 
 -ICore/Inc \ 
 ... 
 ~~~