在這個在家工作的新時代,固件工程師可能沒有他們在辦公室里所擁有的所有設備和開發(fā)板。有什么解決辦法嗎?仿真!
雖然它們不是真的,但是這些模擬器可以運行我們的固件,通過 UART 打印數據,從 I2C 傳感器讀取寄存器,甚至在 SPI 閃存設備上運行文件系統(tǒng)。這足夠寫一些真正的程序來執(zhí)行了!
在本文中,我們將詳細介紹了如何設置 Renode 模擬器并在其中為 STM32運行程序。使用這種設置,我們將調試程序,通過集成測試運行它,并縮短開發(fā)的迭代周期。
什么是 Renode
Renode 是一個用于嵌入式平臺的開源仿真器。今天,它支持 x86(Intel Quark)、 Cortex-A (NVIDIA Tegra)、 Cortex-M、 SPARC (Leon)和基于risc-v 的平臺。
Renode 可以采用運行在真實硬件設備上的相同程序,并在模擬核心、外圍設備甚至傳感器和驅動器上運行它。更好的是,它廣泛的網絡支持和多系統(tǒng)仿真使它成為由多個設備組成的一個測試系統(tǒng)。
使用 Renode,您可以在硬件準備就緒之前開始開發(fā),在不部署硬件的情況下測試程序,并通過減少閃存加載延遲來縮短迭代周期。并且,Renode 是使用 Mono 框架構建的,它允許跨平臺運行。
Renode和QEMU之間的差異?- 具有仿真經驗的讀者指出 QEMU 已經存在了很長時間,并且能夠仿真 Cortex-M 目標。根據我們的經驗,QEMU 專注于模仿面向更高級別操作系統(tǒng)(如 Linux 計算機)的系統(tǒng),而不是嵌入式設備。到目前為止,它只支持兩個 cortex-M 系列MCU,都是 TI 公司制造的。
Renode初體驗
Renode 項目發(fā)布 Windows、 MacOS 和多個 Linux 發(fā)行版的安裝程序。在撰寫本文時,您可以在 Github 上找到 v1.9版本。
本指南是在Windows 上編寫的,但并不是特定于操作系統(tǒng)。為了驗證你的 Renode 安裝,你可以運行一個例子:
1.打開renode終端,并輸入命令:start @scripts/single-node/stm32f4_discovery.resc

2.這時,我們可以看到到一個新的終端彈出,里面顯示的是串口的輸出

由此可見,示例中的系統(tǒng)已經跑起來了,并且顯示了串口輸出!
關注&&聯(lián)系
gitee: https://gitee.com/cmcc-oneos/OneOS-Lite
docs: https://oneos-lite.com/
公眾號:CMCC-OneOS