在Keil 模拟器上测试RT-Thread代码

2023-05-16

前面一篇文章已经讲解了如何使用Keil模拟器来模拟硬件,然后在此基础上运行RT-Thread代码。文章链接:Keil 模拟器 STM32F103 上手指南

我们可以看到RT-Thread官方有许多代码示例供我们学习参考。

更多内核示例

下图是代码示例的目录:

在这里插入图片描述

这些文件编译之后,打开msh之后,可以看到我们可以执行的示例:

image-20220313195814853

如果我们想要把自己写的代码也加入其中,那么该如何操作呢?

我们在每个代码示例的文件中都可以发现下面的代码:

/* 导出到 msh 命令列表中 */
MSH_CMD_EXPORT(dynmem_sample, dynmem sample);

可以看到这就是代码示例可以在列表中出现并且执行的原因。

在使用这个语句将该.c文件注册到msh命令列表的关键是要保持源文件名称、MSH_CMD_EXPORT的第一个参数、该.c文件中执行的函数名要保持相同。

比如dynmem_sample.c 、dynmem_sample、int dynmem_sample(void)。


下面我演示一下如何从无到有将自己的代码示例添加到msh 命令列表。

先新建一个.c文件,然后右键kernel-sample,选择 add existing files to group,选择刚才我们创建好的.c文件。

在这里插入图片描述

点击重新编译项目:

image-20220313202750269

编译完成
在这里插入图片描述

点击菜单栏上的debug

https://raw.githubusercontent.com/xkyvvv/blogpic2/main/img/20220313203203.png

选择开始debug,再点击run,就出现msh。

image-20220313203332756

按Tab键即可出现所有可以执行的代码示例:

image-20220313203619935

可以看到我们刚刚添加进去的代码示例。


这样我们就可以在keil模拟器上运行我们自己想运行的RT-Thread代码,而不需要一块可以一直RT-Thread的开发板。

当然我们使用Keil模拟器的目的只是熟悉RT-Thread操作系统,涉及到要做一些有意思的项目,我们还是要选择合适的开发板来进行开发。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Keil 模拟器上测试RT-Thread代码 的相关文章

  • 51单片机开发系列一-51单片机开发环境搭建以及入门汇编代码

    51单片机开发系列一 51单片机开发环境搭建以及入门汇编代码 象棋小子 1048272975 1 51单片机概述 51单片机是对所有兼容Intel 8031指令系统的单片机的统称 目前教科书基本都是以早期的MCS 51为原型 讲解微机的原理
  • 解决ARM-Compiler ‘Default Compiler Version 5‘ which is not available

    新版MDK不再自带ARM Compiler version 5编译器 如果编辑之前的工程会提示 ARM Compiler Default Compiler Version 5 which is not available 错误 需要手动安装
  • keil5 编辑栏一直是灰色

    无语了 气炸了 愤怒啊 查了一下 有很多 arm 和 c51 并存 不管他了 之前装了用完51 又装了arm 现在反而什么都用不了 打开license 发现过期了 重新破解 即可 注意音乐 大半夜吓死人 你以为这样就可以了 你就太天真了 网
  • 第十三章:QT多线程(QThread)

    回顾 第一章 Qt的概述 第二章 在Ubuntu编写第一个Qt程序 第三章 Qt的字符串和字符编码 第四章 Qt的信号和槽 第五章 Qt容器窗口 父窗口 第六章 面向对象的Qt编程 第七章 Qt设计师使用 designer 第八章 Qt创造
  • 分析Java线程池执行原理

    Java并发编程源码分析系列 分析Java线程池的创建 上一篇已经对线程池的创建进行了分析 了解线程池既有预设的模板 也提供多种参数支撑灵活的定制 本文将会围绕线程池的生命周期 分析线程池执行任务的过程 线程池状态 首先认识两个贯穿线程池代
  • 同步方法及同步代码块

    synchronized方法和synchronized块 synchronized方法必须获得对象的锁才能执行 否则线程阻塞 方法一旦执行 就独占此锁 直到方法返回才释放锁 后面被阻塞的线程才能获得这个锁 继续执行 synchronized
  • SuspendThread 造成程序死锁的一个例子

    msdn对SuspendThread 的说明 This function is primarily designed for use by debuggers It is not intended to be used for thread
  • surfaceDestroyed什么时候被调用

    今天看别人的代码 突然有个疑问 surfaceDestroyed这个函数什么时候被调用呢 上网搜了一番 基本都说是surface被销毁的时候 才会调用surfaceDestroyed 问题又来了surface什么时候被销毁呢 大家都知道su
  • log4net使用

    说明 本程序演示如何利用log4net记录程序日志信息 log4net是一个功能著名的开源日志记录组件 利用log4net可以方便地将日志信息记录到文件 控制台 Windows事件日志和数据库 包括MS SQL Server Access
  • keil_lic.exe注册机使用

    第一步 以管理员身份运行keil5 第二步 打开File中的License Management 第三步 复制CID 第四步 选择对应的Target为ARM 粘贴CID 复制生成的注册码 第五步 将注册码粘贴到这 就ok了
  • keil5软件安装&开发环境搭建教程(mdk,c51通用)

    这是我在csdn上写的第一篇文章 心情激动兴奋 因为之前都是看别人写的博客 从来没想过自己去写一篇 在学长的鼓励下 尝试完成人生第一篇博客 仍有不足 希望大佬多多指正 写这篇的目的是因为keil5的安装是许多人入门嵌入式的第一步 而且以后遇
  • Keil最舒服的配色方案

    每次重装keil 都会重新配置下颜色 因为默认的颜色 看久了实在不太舒服 每次调到一个舒服的颜色 都要花不少时间 为了后面节省时间 现记录一下 如下就是我觉得还不错的配色方案 如果你觉得也还可以 可以接着往下看 一 进入配置 二 光标所在行
  • winCE中实现虚拟串口的方法

    转载请标明是引用于 http blog csdn net chenyujing1234 欢迎大家拍砖 环境 wince6 0 ARM Freescell 一 目的 设计一个读GPS串口数据的驱动 并注册为COM口 二 实现过程 1 COM
  • python基于字典多线程目录枚举工具

    基于字典多线程目录枚举工具 整体思路 命令行参数获取 字典文件的读取 多线程访问 命令行参数获得 使用模块 sys getopt sys argv获取命令行执行的数据 参数获得 opt args getopt getopt sys argv
  • Keil警告和错误语句与消除方法笔记

    遇到的keil相关错误 警告内容在这里进行更新 Warning 1 D last line of file ends without a newline 文件最后一行不是新行 解决 保证文件最后一行什么符号也没有 167 D argumen
  • Keil MDK编程环境下的 STM32 IAP下载(学习笔记)

    IAP下载 IAP的引入 不同的程序下载方式 ICP ICP In Circuit Programing 在电路编程 可通过 CPU 的 Debug Access Port 烧录代码 比如 ARM Cortex 的 Debug Interf
  • Java线程(Thread)生命周期的6种状态

    当线程被创建并启动以后 它既不是一启动就进入了执行状态 也不是一直处于执行状态 在线程的生命周期中 可能处于不同的状态 java lang Thread State 列举出了这6种线程状态 线程状态 导致状态发生条件 New 新建 线程刚被
  • Push_back() 导致程序在进入 main() 之前停止

    我正在为我的 STM32F3 Discovery 板使用 C 进行开发 并使用 std deque 作为队列 在尝试调试我的代码 直接在带有 ST link 的设备上或在模拟器中 后 代码最终在 main 中输入我的代码之前在断点处停止 然
  • 如何将变量放置在内存中给定的绝对地址处(使用 GCC)

    RealView ARM C 编译器supports使用变量属性将变量放置在给定的内存地址处at address int var attribute at 0x40001000 var 4 changes the memory locate
  • UINT32_C 和 uint32_t 之间的区别

    据我所知后缀t in uint32 t denote t类型名称 但我想知道是什么C in UINT32 C有何不同 UINT32 C是一个定义整型常量的宏uint least32 t 例如 UINT32 C 123 Might expan

随机推荐

  • 电子工程师是怎样的成长之路?

    转载于无际 xff1a https blog csdn net weixin 43982452 article details 121535177 spm 61 1001 2014 3001 5502 10年前 xff0c 我就是通过智能小
  • 单片机怎么做定时器矩阵,彻底解决各种定时问题?

    转载于 xff1a https blog csdn net weixin 43982452 article details 120555258 spm 61 1001 2014 3001 5502 大家好 xff0c 我是无际 定时功能非常
  • 为什么我学51单片机很顺利,学STM32却一头雾水?

    转载于 xff1a https blog csdn net weixin 43982452 article details 120515134 spm 61 1001 2014 3001 5502 五年懂行 xff0c 十年称王 当初自学转
  • 物联网专业真的把人坑惨了?浅谈物联网的未来发展趋势和未来方向

    转载于 xff1a https blog csdn net weixin 43982452 article details 120200879 spm 61 1001 2014 3001 5502 大家好 xff0c 我是无际 从事10年单
  • STM32单片机跑RTOS会比裸机有优势吗?

    转载于无际 xff1a https blog csdn net weixin 43982452 article details 115139030 spm 61 1001 2014 3001 5502 在工作中总是能碰到通过秀技术来满足虚荣
  • 如何快速学会别人的代码和思维

    转载于 xff1a https blog csdn net weixin 43982452 article details 120700863 spm 61 1001 2014 3001 5502 大家好 xff0c 我是无际 也有很多天没
  • 单片机和嵌入式哪个好?单片机会被嵌入式取代吗?

    转载于 xff1a https blog csdn net weixin 43982452 article details 120062206 spm 61 1001 2014 3001 5502 很多初学者都搞不清楚单片机和嵌入式的区别
  • 怎么看懂别人写的单片机项目代码?

    转载于 xff1a https blog csdn net weixin 43982452 article details 120049443 spm 61 1001 2014 3001 5502 记得刚开始接触代码的时候 xff0c 总觉
  • 嵌入式单片机产品开发设计框架

    转载于 xff1a https blog csdn net weixin 43982452 article details 119616145 spm 61 1001 2014 3001 5502 老板突然要给你一个新的需求 xff0c 要
  • 8大话题,解惑企业数字化

    从IT到DT xff0c 从信息化到数字化 xff0c 这个观念已经毋庸置疑 xff0c 但是 xff0c 这条路却缺少参照 xff0c 暗夜前行 xff0c 全靠摸索 关于数字化 xff0c 肯定不是上马一些OA工具 购买一些营销工具就行
  • ARINC 429总线学习资料?

    Hello xff0c 我是小熊coder xff0c 方向是嵌入式AI xff0c 后端开发 我的主页 xff1a Home xff0c 欢迎互相关注 xff0c 互相学习 最近在网上寻找关于ARINC 429总线的资料时 xff0c 发
  • 周期任务框架在裸机、RTOS上的实现

    周期任务框架在裸机 RTOS上的实现 一 任务的类型 运行的程序 xff0c 有响应指令的触发式程序 xff0c 也有一直运行的守护程序 xff0c 周期程序 贴别是在单片机 嵌入式领域 xff0c 大部分程序都是周期性的执行 xff0c
  • CAN通讯实验

    前面我们讲解了CAN总线的一些基础知识 xff0c 文章链接 xff1a 一口气从零读懂CAN总线以及应用 了解完之后 xff0c 我们也需要来用一用CAN总线 这篇文章就是主要讲解在STM32中怎么使用CAN总线
  • 航空机载总线网络概述

    1 机载总线网络概述 现代战斗机的航空电子系统是航空电子技术经历了半个多世纪的漫长演变和不断进步的结果 航空电子系统结构的每次变化 xff0c 其核心的机载总线网络技术也不断跨上新台阶 xff0c 而且每次变革都能使飞机性能得到大幅提升 现
  • 【C/C++开源库】单片机/嵌入式中的C语言日志库

    日志系统在系统开发和调整过程中的重要性 xff0c 大家应该都清楚 xff0c 特别是项目出问题之后 xff0c 却没有日志可以帮忙定位问题 xff0c 就非常令人痛苦 因为我们不可能一直通过调试器去单步调试程序 xff0c 所以设备的运行
  • 稚晖君软件硬件开发环境总结

    0 引言 这两天在bilibili上发现一个宝藏up主 xff0c 稚晖君 啧啧啧 xff0c 很厉害 虽然年龄不大 xff0c 但是真全栈 xff0c 从产品到机械到电路到软件 xff0c 这就是那种真的聪明 xff0c 一学就会的高智商
  • 一文弄清51、STM32、Linux点灯的区别

    嵌入式初学者入门的第一个 项目 就是LED点灯 xff0c 那么 xff0c 本文带你看看51 STM32 Linux点灯有什么区别 xff1f 51点灯 51点灯 xff0c 是很多单片机初学者的首选 xff0c 难度也是相对比较低的 准
  • Keil 模拟器 STM32F103 上手指南

    一般嵌入式操作系统因为它的特殊性 xff0c 往往和硬件平台密切相关连 xff0c 具体的嵌入式操作系统往往只能在特定的硬件上运行 对于刚接触 RT Thread 操作系统的读者并不容易马上就获得一个和 RT Thread 操作系统相配套的
  • 用PyOD工具库进行「异常检测」

    转载于知乎 xff1a 微调 异常检测 xff08 又称outlier detection anomaly detection xff0c 离群值检测 xff09 是一种重要的数据挖掘方法 xff0c 可以找到与 主要数据分布 不同的异常值
  • 在Keil 模拟器上测试RT-Thread代码

    前面一篇文章已经讲解了如何使用Keil模拟器来模拟硬件 xff0c 然后在此基础上运行RT Thread代码 文章链接 xff1a Keil 模拟器 STM32F103 上手指南 我们可以看到RT Thread官方有许多代码示例供我们学习参