mirror of
https://github.com/Dichgrem/Blog.git
synced 2025-12-16 21:42:00 -05:00
update:stm32
This commit is contained in:
@@ -157,6 +157,7 @@
|
||||
</span><span> </span><span style="color:#ffb964;">stlink-tool
|
||||
</span><span> </span><span style="color:#ffb964;">gcc-arm-embedded
|
||||
</span><span> </span><span style="color:#ffb964;">picocom
|
||||
</span><span> </span><span style="color:#ffb964;">renode-bin
|
||||
</span><span> ];
|
||||
</span><span> };
|
||||
</span><span> });
|
||||
@@ -164,7 +165,7 @@
|
||||
</span><span>}
|
||||
</span></code></pre>
|
||||
<h2 id="yuan-ma">源码</h2>
|
||||
<p>使用Git拉取RT-Thread开源项目:</p>
|
||||
<p>使用Git拉取项目源码:</p>
|
||||
<pre data-lang="shell" style="background-color:#151515;color:#e8e8d3;" class="language-shell "><code class="language-shell" data-lang="shell"><span>git clone https://github.com/RT-Thread/rt-thread.git
|
||||
</span><span>git clone https://github.com/RT-Thread-Studio/sdk-bsp-stm32f407-spark.git
|
||||
</span></code></pre>
|
||||
@@ -316,6 +317,89 @@
|
||||
</span><span> 98516 1468 8400 108384 1a760 rtthread.elf
|
||||
</span><span>[100%] Built target rtthread.elf
|
||||
</span></code></pre>
|
||||
<h2 id="shi-yong-renode">使用Renode</h2>
|
||||
<p>如果没有真实的开发版,可以使用Renode来进行仿真模拟:</p>
|
||||
<pre data-lang="shell" style="background-color:#151515;color:#e8e8d3;" class="language-shell "><code class="language-shell" data-lang="shell"><span># 启动renode
|
||||
</span><span>renode
|
||||
</span><span>
|
||||
</span><span># 创建机器
|
||||
</span><span>(monitor) mach create
|
||||
</span><span>
|
||||
</span><span># 加载STM32F407平台
|
||||
</span><span>(monitor) machine LoadPlatformDescription @platforms/boards/stm32f4_discovery.repl
|
||||
</span><span>
|
||||
</span><span># 加载你的固件
|
||||
</span><span>(monitor) sysbus LoadELF @/你的路径/rtthread.elf
|
||||
</span><span>
|
||||
</span><span># 打开串口窗口(finsh会显示在这里)
|
||||
</span><span>(monitor) showAnalyzer sysbus.usart1
|
||||
</span><span>
|
||||
</span><span># 启动仿真
|
||||
</span><span>(monitor) start
|
||||
</span></code></pre>
|
||||
<blockquote>
|
||||
<p>Renode 常用命令大全</p>
|
||||
</blockquote>
|
||||
<pre data-lang="bash" style="background-color:#151515;color:#e8e8d3;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#888888;"># 机器管理
|
||||
</span><span style="color:#ffb964;">mach</span><span> add </span><span style="color:#556633;">"</span><span style="color:#99ad6a;">名称</span><span style="color:#556633;">" </span><span style="color:#888888;"># 创建新机器(指定名称)
|
||||
</span><span style="color:#ffb964;">mach</span><span> create </span><span style="color:#888888;"># 创建新机器(自动命名)
|
||||
</span><span style="color:#ffb964;">mach</span><span> set </span><span style="color:#556633;">"</span><span style="color:#99ad6a;">名称</span><span style="color:#556633;">" </span><span style="color:#888888;"># 切换到指定机器
|
||||
</span><span style="color:#ffb964;">mach</span><span> set 0 </span><span style="color:#888888;"># 切换到编号0的机器
|
||||
</span><span style="color:#ffb964;">mach</span><span> rem </span><span style="color:#556633;">"</span><span style="color:#99ad6a;">名称</span><span style="color:#556633;">" </span><span style="color:#888888;"># 删除机器
|
||||
</span><span style="color:#ffb964;">mach</span><span> clear </span><span style="color:#888888;"># 清除当前选择
|
||||
</span><span style="color:#ffb964;">mach </span><span style="color:#888888;"># 显示帮助信息
|
||||
</span><span style="color:#ffb964;">emulation </span><span style="color:#888888;"># 查看仿真信息
|
||||
</span><span>
|
||||
</span><span style="color:#888888;"># 仿真控制
|
||||
</span><span style="color:#ffb964;">start </span><span style="color:#888888;"># 启动仿真
|
||||
</span><span style="color:#ffb964;">pause </span><span style="color:#888888;"># 暂停仿真
|
||||
</span><span style="color:#ffb964;">quit </span><span style="color:#888888;"># 退出Renode
|
||||
</span><span>
|
||||
</span><span style="color:#888888;"># 帮助
|
||||
</span><span>help </span><span style="color:#888888;"># 显示帮助
|
||||
</span><span>help 命令名 </span><span style="color:#888888;"># 查看特定命令帮助
|
||||
</span><span>
|
||||
</span><span style="color:#888888;"># 加载固件
|
||||
</span><span style="color:#ffb964;">sysbus</span><span> LoadELF @/path/to/firmware.elf </span><span style="color:#888888;"># 加载ELF文件
|
||||
</span><span style="color:#ffb964;">sysbus</span><span> LoadBinary @/path/to/firmware.bin 0x8000000 </span><span style="color:#888888;"># 加载BIN到指定地址
|
||||
</span><span>
|
||||
</span><span style="color:#888888;"># 重置
|
||||
</span><span style="color:#ffb964;">sysbus</span><span> Reset </span><span style="color:#888888;"># 重置系统总线
|
||||
</span><span style="color:#ffb964;">machine</span><span> Reset </span><span style="color:#888888;"># 重置整个机器
|
||||
</span><span>
|
||||
</span><span style="color:#888888;"># 读取内存
|
||||
</span><span style="color:#ffb964;">sysbus</span><span> ReadByte 0x20000000 </span><span style="color:#888888;"># 读1字节
|
||||
</span><span style="color:#ffb964;">sysbus</span><span> ReadWord 0x20000000 </span><span style="color:#888888;"># 读2字节
|
||||
</span><span style="color:#ffb964;">sysbus</span><span> ReadDoubleWord 0x20000000 </span><span style="color:#888888;"># 读4字节
|
||||
</span><span>
|
||||
</span><span style="color:#888888;"># 写入内存
|
||||
</span><span style="color:#ffb964;">sysbus</span><span> WriteByte 0x20000000 0xFF
|
||||
</span><span style="color:#ffb964;">sysbus</span><span> WriteWord 0x20000000 0x1234
|
||||
</span><span style="color:#ffb964;">sysbus</span><span> WriteDoubleWord 0x20000000 0x12345678
|
||||
</span><span>
|
||||
</span><span style="color:#888888;"># 查看内存区域
|
||||
</span><span style="color:#ffb964;">sysbus</span><span> FindSymbolAt 0x08000000 </span><span style="color:#888888;"># 查找地址对应的符号
|
||||
</span><span>
|
||||
</span><span style="color:#888888;"># 查看GPIO端口
|
||||
</span><span style="color:#ffb964;">sysbus.gpioPortA
|
||||
</span><span>
|
||||
</span><span style="color:#888888;"># 设置GPIO状态
|
||||
</span><span style="color:#ffb964;">sysbus.gpioPortA.0</span><span> Set true </span><span style="color:#888888;"># 设置PA0为高
|
||||
</span><span style="color:#ffb964;">sysbus.gpioPortA.0</span><span> Set false </span><span style="color:#888888;"># 设置PA0为低
|
||||
</span><span style="color:#ffb964;">sysbus.gpioPortA.0</span><span> Toggle </span><span style="color:#888888;"># 切换PA0状态
|
||||
</span><span>
|
||||
</span><span style="color:#888888;"># 读取GPIO状态
|
||||
</span><span style="color:#ffb964;">sysbus.gpioPortA.0</span><span> State
|
||||
</span><span>
|
||||
</span><span style="color:#888888;"># 使用GDB调试
|
||||
</span><span>(</span><span style="color:#ffb964;">monitor</span><span>) machine StartGdbServer 3333
|
||||
</span><span style="color:#888888;"># 另一个终端
|
||||
</span><span style="color:#ffb964;">arm-none-eabi-gdb</span><span> firmware.elf
|
||||
</span><span>(</span><span style="color:#ffb964;">gdb</span><span>) target remote :3333
|
||||
</span><span>(</span><span style="color:#ffb964;">gdb</span><span>) load
|
||||
</span><span>(</span><span style="color:#ffb964;">gdb</span><span>) b main
|
||||
</span><span>(</span><span style="color:#ffb964;">gdb</span><span>) c
|
||||
</span></code></pre>
|
||||
<hr />
|
||||
<p><strong>Done.</strong></p>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user