奔跑前的准备
需要让一个系统奔跑起来,首先肯定是需要系统运行的环境,根据RT-Thread官方的说明,在没有开发板的情况下,也是可以通过MDK的仿真来运行RT-Thread系统的,首先我们要先安装好MDK-ARM 5.24 (正式版或评估版,5.14 版本及以上版本均可),然后在RT-Thread官网获取《RT-Th+read Simulator 例程》,解压完成后就可以得到一个支持MDK模拟环境运行的RT-Thread包含了Finsh调试组件的基本系统。
RT-Thread Simulator 例程
运行MDK工程文件打开MDK工程,在第一次运行还需要进行一次编译
程序文件组成
编译完成后是没有警告,没有错误的
编译完成
完成后,我们就可以按 “Ctrl+F5” 进入仿真界面,然后再按 F5 开始运行,这时候系统是可以运行起来的,但是我们除了寄存器,好想啥也观察不了,别急!我们打开一下UART监控窗口就可以了,在工具栏中的按钮或者选择菜单栏中的 “View→Serial Windows→UART#1”,打开串口 1 窗口,可以看到串口的输出只显示了 RT-Thread 的 LOGO
仿真运行界面
这时输入回车键,就能实现类似Linux命令的控制,输入help或者直接输入TAB键,就能打印目前所支持的命令菜单,非常的方便
支持的命令列表
例如我输入free指令,就能够查看目前系统内存的使用情况,在调试当中运用合理,可以大大的提高我们调试的效率,total memory就是系统可分配的总内存,used memory就是当前用户任务已经分配到的内存,maximum allocated memory就是用户任务在运行过程中,申请过的最大内存,例如任务A在运行过程中建立一个缓冲区,需要申请3k字节的内存,执行完成后就释放了,这个过程只执行了一次,这时运行free命令查看到的就是5k字节内存+上动态申请3k字节内存,最大申请到的内存就是8k字节,所以要保障系统能够平稳运行,系统可管理的内存应该大于所有用户任务申请到的最大动态内存
系统内存使用情况
输入ps命令,可以查看到目前系统所有任务数,还有任务的状态和内存资源使用情况,我们可以看到max used这一项中,有一个百分比数据,8%意思就是这个任务在运行过程中,所需要的内存占用了给他分配的内存空间的8%,剩余的92%内存相当于没有使用,在空占着,这说明系统内存分配方式还是需要优化,减少对系统资源的浪费,一般把任务最大内存分配比例控制在50%到60%相对合理,这样可以减少系统的内存开销,同时也可以保证任务运行内存用足够的冗余,所以说RT-Thread系统集成的这个Finsh调试组件对系统整体运行的把控非常有帮助,大大简化了我们调试系统的难度
系统任务情况
RT-Thread Simulator例程可以让新手快速的了解RT-Thread系统的基本情况,对他有一个大概的认识,同时有降低了入门的门槛,并不需要有实体开发板,可以说是非常的友好!就让我们一起来说声:Hello RT-Thread!
互动问答:你们希望后续更新那些关于RT-Thread系统相关的内容呢?