![](/img/trans.png)
[英]How to get OUT of an ISR in freertos / esp-idf
我有一個通過按下按鈕觸發的 ISR。 處理程序看起來像這樣... 當我在 ISR 中時,我不能做某些事情。 例如,調用ESP_LOGI()會導致與不允許的 memory 訪問相關的錯誤。 我原以為這些限制僅存在於buttonIsrHandler() function 中,但它們也存在於button ...
[英]How to get OUT of an ISR in freertos / esp-idf
我有一個通過按下按鈕觸發的 ISR。 處理程序看起來像這樣... 當我在 ISR 中時,我不能做某些事情。 例如,調用ESP_LOGI()會導致與不允許的 memory 訪問相關的錯誤。 我原以為這些限制僅存在於buttonIsrHandler() function 中,但它們也存在於button ...
[英]STM32 - Reading I2S to record a .WAV file. Audio choppy, what is causing it?
我正在使用 STM32 (STM32F446RE) 通過 I2S 協議從立體聲設置中的兩個INMP441 mems 麥克風接收音頻,並使用 HAL 庫將其記錄到微型 SD 卡上的 a.WAV 中。 我用 FreeRTOS 編寫了將音頻錄制到 a.WAV 中的固件。 但是我錄制的音頻文件聽起來像黑武 ...
[英]How long is a "tick" in FreeRTOS?
對於函數xTaskGetTickCount()和xTaskGetTickCountFromISR() , FreeRTOS 文檔沒有給出任何關於“滴答”是什么、它有多長的指示,也沒有任何指向查找位置的鏈接。 退貨: 自調用 vTaskStartScheduler 以來的滴答計數。 什么是 Free ...
[英]FreeRTOS Task for UART communication
我正在開發一個程序,它通過 UART 接收命令。 我的想法是創建一個 FreeRTOS 任務,它在整個程序生命周期中運行,只負責接收 uart 消息、解釋它們並將命令發送到隊列中。 在編寫我自己的 UART 函數之前,我使用內置串行函數對此進行了測試。 /*========== Static ...
[英]FreeRTOS watchdog timeout
Alguém sabe o que pode estar acontecer no esp32 para gerar este erro? Se alguém estiver disposto, posso disponibilizar o código。 Já verifiquei e n ...
[英]ESP32/FreeRTOS, how to stop currently running task when the new one was triggered (avoiding overlap)
我正在編寫代碼來控制有關門禁的 2 個模塊繼電器。 我正在尋找在運行新任務(相同任務)之前停止當前正在運行的任務的方法。 我只想避免重疊。 我的目標是延長應開門的時間。 所以基本上當第一個任務被觸發,然后在一段時間后第二個任務被觸發時,門應該再打開 6000 毫秒。 在 mu 當前代碼中,當第二個 ...
[英]Rust interop with FreeRTOS causes INVSTATE HardFault
我正在使用 STM32CubeMX 生成的代碼開發一個 STM32F4 項目。 為了向我的項目添加一些 Rust,我將 Makefile 移植到 CMake,然后使用 Corrosion 構建和鏈接 Rust 項目作為 static 庫。 在我嘗試將 FreeRTOS 添加到項目之前,這一直運行良 ...
[英]Error when runing USB_OTG_FS with RTOS for pendrive application
首先,我已經使用 STM32H745I + USB_OTG_FS + FATFS + MSHC 為 pendrive 應用程序運行項目,它運行時沒有任何錯誤,我能夠創建文件、目錄並寫入文件。 但是當我在現有項目的相同組合中添加 FreeRTOS 時,我只能掛載 USB,之后我陷入了 HardFaul ...
[英]STM32 ADC Reading Instability
我正在以輪詢模式讀取 5 個 ADC 通道。 對於每個通道,我得到 10 個樣本並計算平均值。 找samples數組,可見有些不穩定。 第一個讀數具有較高的值,並且它們會減少,直到最后一個樣本。 這種行為是非常重復的。 查看 output 數組 (ui32_ Raw Temp): 初讀 1855 最 ...
[英]difference between non preemptive and cooperative and rate-monotonic scheduler?
我已經閱讀了有關合作調度程序的信息,它不會讓優先級較高的任務運行到優先級較低的任務本身。 所以如果任務沒有延遲,較低的任務將永遠占用 CPU,對嗎? 因為我認為非搶占式是合作的另一個名稱,但還有另一篇文章讓我感到困惑,其中說在非搶占式高級任務中可以在系統節拍而不是節拍之間的中間中斷較低的任務,所以 ...
[英]Buddy allocator, blocks of memory and FreeRTOS
我正在嘗試在 C 語言中為 FreeRTOS 實現好友分配器。 我做了一個函數 buddy_free 用於內存管理。 我正在使用 struct _buddy_block 和函數進行分配和內存管理,但事情進展不順利,我需要你的幫助。 以下是我的資料來源和問題:typedef struct _budd ...
[英]Testing buddy memory allocator for real-time system in C
我正在嘗試為 FreeRTOS 編寫 Buddy 內存分配器。 結構:typedef struct _buddy_block { struct _buddy_block *next; size_t size; bool is_free; } buddy_block_t; t ...
[英]How can a #define from another headder file be used if the headderfile is not included?
我目前正在使用 FreeRTOS,並注意到一些我以前從未遇到過的事情。 文件“projdefs.h”使用文件“FreeRTOSConfig.h”中的定義,但不包含“FreeRTOSConfig.h”而不包含它。 “projdefs.h”不包含與此相關的任何其他文件。 這怎么可能? 案例如下圖:/ ...
[英]How to boot 2 OS-s in a single qemu instance?
我嘗試使用 QEMU 為具有服務核心的多核 CPU 建模。 例如,一個 3 核 CPU,其中 Linux 在 2 個內核上運行,而 RTOS 在第 3 個內核上運行。 通信應該基於共享內存。 目前我可以分別啟動每個操作系統。 ...
[英]PendSV and SVCall in RTOS
PendSV 和 SVCall 都是從軟件中調用的——SVCall 通過調用 svc 指令,PendSV 通過設置 Cortex-M 的特定寄存器。 PendSV 用於上下文切換,SVCall 用於訪問操作系統內核功能和設備驅動程序。 是什么決定了 PendSV 用於上下文切換? 為什么 SV ...
[英]How to fix esp-idf build error for "esp_heap_alloc_caps.h" and "freertos/heap_regions.h"?
我開始按照 pcbreflux 的本 教程在 esp32 上與 FreeRTOS 進行任務間通信,但我無法在 VS Code 中使用 esp-idf 構建示例,因為其中兩個頭文件引發了No such file or directory錯誤: 經過一些研究,我發現"esp_heap_caps.h"可 ...
[英]SD.open(...) Timeout How can I set it?
當我打開一個文件 SD.open(...) 時,如果沒有 microsd,它會在 1 秒后告訴我它出錯了。 如何設置更短的超時時間? 這將是一個硬運行時軟件,即使沒有 microsd 運行也必須繼續,並且不能停止 1s。 我希望你能幫助我,謝謝。 我期待這個問題的解決方案。 ...
[英]Issues Calling Functions from Freertos Task (ESP32)
目前我在運行 freertos 程序時遇到問題。 該程序的目的是控制步進電機和 LED。 在沒有微步進的情況下實現電機控制沒有任何問題,因為這兩個任務沒有參數,也沒有調用任何函數。 然而,當我引入需要 move_routine 任務調用兩個嵌套函數的微步進時,程序將不會像以前那樣做任何事情(沒有 L ...
[英]STM32 FreeRTOS - Tasks with same priority running serial
我開始使用 FreeRTOS。 在我的第一次測試中,我發現了一些我不清楚的地方。 創建了 4 個具有相同優先級 (osPriorityNormal) 的任務。 所有 4 個任務都具有相同的代碼: 查看串行監視器上的 output 數據,我期待看到幾乎並行調用所有 4 個任務。 由於 500ms 不應 ...
[英]FASTLED.show() stops working when working in core 1 FREERTOS (after deleting the task running a pattern and creating a new one)
我有幾個模式函數和一個在核心 1 上運行的任務 (Task1)。我從核心 0 中的 BLE 接收數據(模式編號)。根據數據,我創建了上面的任務,任務 function 作為選擇圖案。 當我想切換模式時,問題就來了。 我所做的是刪除已經運行的任務句柄 (Task1) 並使用新模式 function ...