Renode 针对物联网应用,QEMU 针对 PC 模拟器。
Renode 是一个开发框架,通过让你模拟物理硬件系统来加速物联网和嵌入式系统开发。
Renode 可以模拟 Cortex-M、RISC-V 等微控制器,不仅可以模拟 CPU指令,还可以模拟外设,甚至可以模拟板载的外设。更强的是,它可以让你在你的 PC 上运行、调试和测试未经修改的嵌入式软件-从裸机系统芯片,通过完整的设备到多节点系统。
它广泛的网络支持和多系统仿真使它成为由多个设备组成的一个测试系统。
Renode 官网:
https://renode.io/
Renode 官方文档:
https://renode.readthedocs.io/en/latest/
使用 Renode,您可以在硬件准备就绪之前开始开发,在不部署硬件的情况下测试程序,并通过减少闪存加载延迟来缩短迭代周期。
Renode 的指令模拟器使用 C 语言编写,外设模拟器使用 C# 语言编写,兼顾了运行效率和开发效率。老版本是用Mono 构建的,最新版本已经升级到.NET 6:
https://github.com/renode/renode
来源:https://blog.csdn.net/zoomdy/article/details/95445329
1、环境
$ uname -a
Linux vbox 4.10.0-28-generic #32~16.04.2-Ubuntu SMP Thu Jul 20 10:19:48 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
2、安装 Mono
sudo apt update
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
sudo apt install apt-transport-https ca-certificates
echo “deb https://download.mono-project.com/repo/ubuntu stable-xenial main” | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update
sudo apt install mono-complete
安装 Mono 快结束时有个预编译的过程,这需要花费是十几分钟的时间。
参考:
- https://github.com/renode/renode/blob/master/README.rst#installation
- https://www.mono-project.com/download/stable/#download-lin
3、安装其它依赖包
sudo apt-get install policykit-1 libgtk2.0-0 screen uml-utilities gtk-sharp2 libc6-dev
4、下载 Renode
打开下载页面 https://github.com/renode/renode/releases/latest ,下载 renode_1.7.1_amd64.deb
。
5、安装 Renode
sudo dpkg -i renode_1.7.1_amd64.deb
6、运行 Renode
命令行输入 renode 运行。
renode
运行之后,renode 会开启新的命令窗口用作renode 命令输入,原来的命令行窗口作为renode的日志输出窗口使用。
7、创建 machine
以下命令均在 renode 命令窗口输入。
创建机器,然后加载平台描述文件,这里是 STM32F4Discovery开发板的平台描述文件。
mach create
machine LoadPlatformDescription @platforms/boards/stm32f4_discovery-kit
.repl
8、查看外设
输入 peripherals
命令查看外设。
(machine-0) peripherals
Available peripherals:
sysbus (SystemBus)
│
├── can0 (STMCAN)
│ <0x40006400, 0x400067FF>
│
├── cpu (CortexM)
│ Slot: 0
│
├── dma1 (STM32DMA)
│ <0x40026000, 0x400263FF>
│
├── dma2 (STM32DMA)
│ <0x40023400, 0x400237FF>
│
├── ethernet (SynopsysEthernetMAC)
│ │ <0x40028000, 0x400293FF>
│ │
│ ├── phy (EthernetPhysicalLayer)
│ │ Address: 0
│ │
│ └── phy1 (EthernetPhysicalLayer)
│ Address: 1
│
├── exti (EXTI)
│ <0x40013C00, 0x40013FFE>
│
├── flash (MappedMemory)
│ <0x08000000, 0x081FFFFF>
│
├── fscmBank1 (MappedMemory)
│ <0x60000000, 0x6FFFFFFF>
│
├── gpioPortA (STM32F4GPIOPort)
│ │ <0x40020000, 0x400203FF>
│ │
│ ├── UserButton (Button)
│ │
│ ├── externalButton (Button)
│ │
│ └── externalLed (LED)
│
├── gpioPortB (STM32F4GPIOPort)
│ <0x40020400, 0x400207FF>
│
├── gpioPortC (STM32F4GPIOPort)
│ <0x40020800, 0x40020BFF>
│
├── gpioPortD (STM32F4GPIOPort)
│ │ <0x40020C00, 0x40020FFF>
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Go语言工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Go语言全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Golang知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Go)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
并且后续会持续更新**
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Go)
[外链图片转存中…(img-9XToV0yk-1713019374826)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!