スキップしてメイン コンテンツに移動

投稿

10月, 2023の投稿を表示しています

STM32F407VET6上のFreeRTOSでccmramを全てheapに割り当てる

STM32F407VET6の場合、トータルでRAMは192kbなのですがこの内64kbがccmram(Core Coupled Memory RAM)で残りのsram128kbと分離していて、何もしない場合SRAMしか使いません。そこでccmram全部をheapに割り当て、他はSRAMを使うようにしてみました。とはいっても非常に簡単にできます。 まず、FreeRTOSConfig.hでconfigAPPLICATION_ALLOCATED_HEAP を 1 にします。 FreeRTOSConfig.h #define configAPPLICATION_ALLOCATED_HEAP 1 続いてmain.cで以下のようにします。 /* USER CODE BEGIN PV */ #ifdef configAPPLICATION_ALLOCATED_HEAP uint8_t ucHeap[ configTOTAL_HEAP_SIZE ] __attribute__((section(".ccmram"))); #endif /* USER CODE END PV */ 基本的にはこれだけです。ビルド後、以下のようになっていればOKです。 ccramがすべてheapに割り当てられているのでUSAGEが100%になっていますが、正常です。簡単ですが備忘録として挙げてみました。今回は以上です。それでは。