RTT之添加串口设备
如题所示:如何往BSP工程里面添加一个串口设备呢??
遇到的问题:如下图:#include +相对路径的形式:
答:
#include <stdio.h>,直接到系统指定目录去查找头文件。
#include "stidio.h",会先到当前目录查找头文件,如果没找到在到系统指定目录查找。
gcc编译时查找头文件,按照以下路径顺序查找:
1. gcc编译时,可以设置-I选项以指定头文件的搜索路径,如果指定多个路径,则按照顺序依次查找。
2. gcc会查找环境变量C_INCLUDE_PATH,CPLUS_INCLUDE_PATH中指定的路径。
3. 系统默认的路径,分别是/usr/include,/usr/local/include,/usr/lib/gcc-lib/i386-linux/2.95.2/include(gcc库文件的路径,各个系统不一致)。
同时,include也可以采用相对路径,比如,a.c需要包含/usr/local/include/node/v8.h,由于/usr/local/include是系统的默认搜索路径,所以在a.c中可以用相对路径包含,#include<node/v8.h>。
其实类比到MDK环境下,也是一样。默认的路径就是在C/C++选项卡下添加的那些:
看了官网的一些教程,主要参考《STM32 系列外设驱动添加指南》https://github.com/RT-Thread/rt-thread/blob/master/bsp/stm32/docs/STM32%E7%B3%BB%E5%88%97%E5%A4%96%E8%AE%BE%E9%A9%B1%E5%8A%A8%E6%B7%BB%E5%8A%A0%E6%8C%87%E5%8D%97.md
参照教程,应该不难配置,需要学习的只有Kconfig语法。
注意:
bsp目录下,是所有配置的总入口,都有哪些文件夹下有Kconfig文件呢?其中.代表板级bsp文件夹
.\.如:F:\SixBirld\rtOS\bsp\myOS\sixBand,这个是配置总入口,从其Kconfig内容也很容易看出调用了哪些配置
.\.board文件夹下如:F:\SixBirld\rtOS\bsp\myOS\sixBand\board,验证无效,打不开ENV配置窗口,因为此部分作为次级菜单,
打开其Kconfig,可以看到是硬件驱动定义菜单。
对应主配置窗口下
实际上修改这个Kcofig,就可以自己添加设备。
.HAL_Drivers文件夹下如:F:\SixBirld\rtOS\bsp\myOS\libraries\HAL_Drivers
.libraries:如:F:\rt-thread\bsp\stm32\libraries,这个是调用保存的界面如下图:
.components每个组件文件夹下都有如
F:\rt-thread\components\cplusplus下调用如下界面
F:\rt-thread\components\dfs调用如下界面:
F:\rt-thread\components\drivers调用如下界面
F:\rt-thread\components\finsh调用如下界面:
F:\rt-thread\components\libc调用如下界面:
组件下,还是很有规律的,根据所添加的组件来调用不同的配置界面。
还有就是在libcpu下如:F:\rt-thread\libcpu调用如下界面
F:\rt-thread\libcpu\mips\common调用如下界面:
内核文件下F:\rt-thread\src调用此界面,可以配置裁剪RTT
主要就是这些吧,可以说每个Kconfig文件都是可以修改的,只要知道语法就可以。说明以上的路径其实就是补充一下对官网给出的语法的理解:
语句分析: - config 表示一个配置选项的开始,紧跟着的 BSP_USING_GPIO 是配置选项的名称,config 下面几行定义了该配置选项的属性。属性可以是该配置选项的 - 类型 - 输入提示 - 依赖关系 - 默认值 - 帮助信息
- bool 表示配置选项的类型,每个 config 菜单项都要有类型定义,变量有5种类型
- bool 布尔类型
- tristate 三态类型
- string 字符串
- hex 十六进制
- int 整型
- select 是反向依赖关系的意思,即当前配置选项被选中,则 RT_USING_PIN 就会被选中。
- default 表示配置选项的默认值,bool 类型的默认值可以是 y/n。
- help 帮助信息
通过 env 选中以上配置界面的选项后,最终可在 rtconfig.h 文件中生成如下两个宏
#define RT_USING_PIN
#define BSP_USING_GPIO
这个还是比较重要的,关键是流程,其他遇到看官方的Kconfig语法就可以了!
实战:添加串口设备
1、根据以上的分析及对应关系,找到相应的添加外设的目录:应该在Board文件夹下。打开Kconfig文件。
打开所对应的ENV工具--->找到其菜单,可以看到已经加上了
重新生成一下工程:打开rtconfig文件看一下变化:
打开工程看一下变化,可以看到工程,新的低功耗串口已经注册到IO设备管理器中。接下来就可以操作了。
RTT之添加串口设备相关推荐
- 基于GD32F103C8T6添加RT Thread nano设备框架并添加串口设备(以控制台console( uart0 )为例)
最近没事琢磨了一下使用设备框架的问题.因为将串口注册到设备框架可以应用十分丰富的软件包. 于是就整理了一下手上的工程,重新将工程梳理了一遍. 像这样是十分清爽了,其中RTOS是操作系统源代码 并且学习 ...
- 虚拟机添加串口设备方法
Shutdown the VM and add this to the vmx file and then restart the VM, if the host OS is Linux: seria ...
- VMware虚拟机(Ubuntu)添加物理串口
1.关闭虚拟机,添加串口设备 2.设置中添加物理串口,将创建的虚拟串口COM1映射到虚拟机上 3.在虚拟机中(ubuntu14.04)使用minicom和外接开发板通信.注意打开的串口如果是COM1, ...
- GD32F450平台上跑rtthread时,JLINK通过RTT控制块进行VIWER
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.SEGGER RTT的优点 二.使用工具 三.源码中添加RTT 四.连接Viewer 总结 前言 通过Segger ...
- Ubuntu13.04下使用dnw
首先在电脑上安装 cutecom: $sudo apt-get install cutecom 运行 $sudo cutecom 这个和xp下的超级终端一样,而且图形界面,比minicom容易上手. ...
- WIN10 + VS2015 + WDK10 + SDK10 + VM虚拟机驱动开发调试环境搭建
为什么80%的码农都做不了架构师?>>> 一.准备工作 1 系统环境:Win10系统 2 开发工具:VS2015 3 驱动开发工具:WDK10 4 Windows SDK:SD ...
- linux minicom usb串口
http://www.cnblogs.com/xiaotlili/archive/2011/08/03/2126081.html linux下查看串口信息 查看串口是否可用,可以对串口发送数据比如对c ...
- ubuntu下minicom的安装及使用
安装: sudo apt-get install minicom 配置: 1 . 在终端中输入minicom以启动minicom: 2. 先按下Ctrl + a, 放开, 再按o, 出现配置菜单. 3 ...
- 在DropboxEdge网络上评估BBRv2
文 / Alexey Ivanov 译 / 元宝 原文 https://blogs.dropbox.com/tech/2019/12/evaluating-bbrv2-on-the-dropbox-e ...
最新文章
- Confluence 6 查看空间活动
- 退出页面 数据保留_设计师常用的数据分析指标
- Linux 网络编程—— libpcap 详解
- c++ 调用 ffmpeg 编程
- PCM音频基础知识及采样数据处理
- python测试函数怎么写_Python - 函数
- [C++STL]set容器用法介绍
- java ee 的使用方法_改善Java EE生产支持技能的8种方法
- mvn 汇编_2020年简单的早安共勉句子短信汇编58条
- JVM学习笔记-01-JVM的学习方式
- 吴恩达CS229速查表
- PostgreSQL 12系统表(11)pg_user
- CSDN《程序员》杂志创始人蒋涛-推荐《程序员职场第一课》
- 最新多种方式, 判断客户端IP是国内还是国外?
- 小米路由器青春版 SSH密码根据SN破解
- 如何配置android的adb环境变量,windows系统下配置adb环境变量的方法步骤
- 如何在Windows7系统下进行C盘的扩容
- Ubuntu下搜狗輸入法不能输入汉字
- 康考迪亚大学应用计算机科学,康考迪亚大学专业设置详情
- C# 中的Event EventArgs和Delegate(转载)
热门文章
- 时间超限怎么办:手把手教你打表法
- win8设置计算机休眠,Win8.1关闭休眠设置图文教程
- c语言语句大全翻译,C语言语句求翻译
- 调用阿里云语音转文本
- 英雄联盟怎么解除小窗口_英雄联盟手游卡莎怎么出装-英雄联盟手游卡莎出装推荐...
- jmeter实现websocket聊天室功能
- Golang请求网页返回数据乱码处理一例
- 万能五笔输入法导致vs2013 xshell中文乱码
- 如何模拟微信小程序请求code
- 论文阅读:Questions Are All You Need to Train a Dense Passage Retriever