diff --git a/Core/Src/stm32h7xx_it.c b/Core/Src/stm32h7xx_it.c index 7cef548..54b606a 100644 --- a/Core/Src/stm32h7xx_it.c +++ b/Core/Src/stm32h7xx_it.c @@ -95,7 +95,7 @@ void NMI_Handler(void) void HardFault_Handler(void) { /* USER CODE BEGIN HardFault_IRQn 0 */ - HAL_GPIO_WritePin(LED_P_GPIO_Port, LED_P_Pin, GPIO_PIN_RESET); + HAL_GPIO_WritePin(LED_P_GPIO_Port, LED_P_Pin, GPIO_PIN_SET); /* USER CODE END HardFault_IRQn 0 */ while (1) { diff --git a/User/audio/audio_flac.c b/User/audio/audio_flac.c index 18700c8..b35161a 100644 --- a/User/audio/audio_flac.c +++ b/User/audio/audio_flac.c @@ -124,6 +124,11 @@ void music_flac_play(const char *file_name) return; } + /* + * TODO: 该函数用于打开文件的缓冲区位于栈中,且栈位于DTCM中。该函数将缓冲区用于SD卡读取,这会导致访存失败。 + * 因打开文件时该函数所读取的数据均未超出第一个扇区,FATFS只需将其内部位于AXI RAM的缓冲区返回给该函数(打开文件时读取), + * 并未产生实际SD卡读取操作,所以该函数暂时能正常运行。此操作极其危险,未来需要考虑如何优化。 + */ drflac* pFlac = drflac_open(flac_read, flac_seek, file, &flac_allocation_cbs); //创建flac解码器 if (pFlac == NULL) { elog_error(TAG, "error while opening flac file"); diff --git a/User/tasks/task_debug.c b/User/tasks/task_debug.c index 88be62a..89b3814 100644 --- a/User/tasks/task_debug.c +++ b/User/tasks/task_debug.c @@ -16,8 +16,8 @@ static tlsf_pool_statistics *axi_heap_statistics; #define TASK_DEBUG_INTERVAL_MS 100 #define TASK_DEBUG_LED_TOGGLE_INTERVAL_MS (500) //每500ms闪烁一次LED #define TASK_DEBUG_OLED_REFRESH_INTERVAL_MS (200) //每200ms更新一次OLED显示 -#define TASK_DEBUG_HEAP_USAGE_PRINT_INTERVAL_MS (1000*60) //每分钟打印一次堆状态信息 -#define TASK_DEBUG_RUNTIME_STATS_PRINT_INTERVAL_MS (1000*60) //每分钟打印一次任务统计信息 +#define TASK_DEBUG_HEAP_USAGE_PRINT_INTERVAL_MS (1000*10) //每10秒打印一次堆状态信息 +#define TASK_DEBUG_RUNTIME_STATS_PRINT_INTERVAL_MS (1000*10) //每10秒打印一次任务统计信息 static uint32_t task_debug_heap_usage_update_interval_ms = TASK_DEBUG_HEAP_USAGE_PRINT_INTERVAL_MS; //更新堆状态信息的时间间隔 static uint32_t task_debug_runtime_stats_update_interval_ms = TASK_DEBUG_RUNTIME_STATS_PRINT_INTERVAL_MS; //更新任务统计信息的时间间隔 diff --git a/User/tasks/task_main.c b/User/tasks/task_main.c index dc7083a..6de22a3 100644 --- a/User/tasks/task_main.c +++ b/User/tasks/task_main.c @@ -149,15 +149,24 @@ void task_main_entry(void *param) util_i2c_scan(&hi2c1); + uint32_t watermark = uxTaskGetStackHighWaterMark(NULL); + elog_debug(TAG, "task stack watermark before decode: %d", watermark * sizeof(StackType_t)); + while (1) { - music_flac_play("HOYO-MiX - Village Surrounded by Green 葳蕤林野间.flac"); - music_flac_play("四季音色 - 斑光.flac"); - music_flac_play("唐九夏 - 一克拉月光.flac"); - music_mp3_play("HoneyWorks,早見沙織 - 可愛くてごめん.mp3"); + music_flac_play("96猫 - 嘘の火花.flac"); + watermark = uxTaskGetStackHighWaterMark(NULL); + elog_debug(TAG, "task stack watermark after flac decode: %d", watermark * sizeof(StackType_t)); + music_mp3_play("倉木麻衣 - Time after time〜花舞う街で〜.mp3"); + watermark = uxTaskGetStackHighWaterMark(NULL); + elog_debug(TAG, "task stack watermark after mp3 decode: %d", watermark * sizeof(StackType_t)); + + music_flac_play("HOYO-MiX - Village Surrounded by Green 葳蕤林野间.flac"); + music_mp3_play("HoneyWorks,早見沙織 - 可愛くてごめん.mp3"); + music_flac_play("唐九夏 - 一克拉月光.flac"); music_mp3_play("Candy_Wind - Go For The Next !.mp3"); + music_flac_play("四季音色 - 斑光.flac"); music_mp3_play("July - Somewhere.mp3"); - music_mp3_play("Wiz Khalifa; Charlie Puth - See You Again.mp3"); } }