如题所示:如何往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之添加串口设备相关推荐

  1. 基于GD32F103C8T6添加RT Thread nano设备框架并添加串口设备(以控制台console( uart0 )为例)

    最近没事琢磨了一下使用设备框架的问题.因为将串口注册到设备框架可以应用十分丰富的软件包. 于是就整理了一下手上的工程,重新将工程梳理了一遍. 像这样是十分清爽了,其中RTOS是操作系统源代码 并且学习 ...

  2. 虚拟机添加串口设备方法

    Shutdown the VM and add this to the vmx file and then restart the VM, if the host OS is Linux: seria ...

  3. VMware虚拟机(Ubuntu)添加物理串口

    1.关闭虚拟机,添加串口设备 2.设置中添加物理串口,将创建的虚拟串口COM1映射到虚拟机上 3.在虚拟机中(ubuntu14.04)使用minicom和外接开发板通信.注意打开的串口如果是COM1, ...

  4. GD32F450平台上跑rtthread时,JLINK通过RTT控制块进行VIWER

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.SEGGER RTT的优点 二.使用工具 三.源码中添加RTT 四.连接Viewer 总结 前言 通过Segger ...

  5. Ubuntu13.04下使用dnw

    首先在电脑上安装 cutecom: $sudo apt-get install cutecom 运行 $sudo cutecom 这个和xp下的超级终端一样,而且图形界面,比minicom容易上手. ...

  6. WIN10 + VS2015 + WDK10 + SDK10 + VM虚拟机驱动开发调试环境搭建

    为什么80%的码农都做不了架构师?>>>    一.准备工作 1 系统环境:Win10系统 2 开发工具:VS2015 3 驱动开发工具:WDK10 4 Windows SDK:SD ...

  7. linux minicom usb串口

    http://www.cnblogs.com/xiaotlili/archive/2011/08/03/2126081.html linux下查看串口信息 查看串口是否可用,可以对串口发送数据比如对c ...

  8. ubuntu下minicom的安装及使用

    安装: sudo apt-get install minicom 配置: 1 . 在终端中输入minicom以启动minicom: 2. 先按下Ctrl + a, 放开, 再按o, 出现配置菜单. 3 ...

  9. 在DropboxEdge网络上评估BBRv2

    文 / Alexey Ivanov 译 / 元宝 原文 https://blogs.dropbox.com/tech/2019/12/evaluating-bbrv2-on-the-dropbox-e ...

最新文章

  1. Confluence 6 查看空间活动
  2. 退出页面 数据保留_设计师常用的数据分析指标
  3. Linux 网络编程—— libpcap 详解
  4. c++ 调用 ffmpeg 编程
  5. PCM音频基础知识及采样数据处理
  6. python测试函数怎么写_Python - 函数
  7. [C++STL]set容器用法介绍
  8. java ee 的使用方法_改善Java EE生产支持技能的8种方法
  9. mvn 汇编_2020年简单的早安共勉句子短信汇编58条
  10. JVM学习笔记-01-JVM的学习方式
  11. 吴恩达CS229速查表
  12. PostgreSQL 12系统表(11)pg_user
  13. CSDN《程序员》杂志创始人蒋涛-推荐《程序员职场第一课》
  14. 最新多种方式, 判断客户端IP是国内还是国外?
  15. 小米路由器青春版 SSH密码根据SN破解
  16. 如何配置android的adb环境变量,windows系统下配置adb环境变量的方法步骤
  17. 如何在Windows7系统下进行C盘的扩容
  18. Ubuntu下搜狗輸入法不能输入汉字
  19. 康考迪亚大学应用计算机科学,康考迪亚大学专业设置详情
  20. C# 中的Event EventArgs和Delegate(转载)

热门文章

  1. 时间超限怎么办:手把手教你打表法
  2. win8设置计算机休眠,Win8.1关闭休眠设置图文教程
  3. c语言语句大全翻译,C语言语句求翻译
  4. 调用阿里云语音转文本
  5. 英雄联盟怎么解除小窗口_英雄联盟手游卡莎怎么出装-英雄联盟手游卡莎出装推荐...
  6. jmeter实现websocket聊天室功能
  7. Golang请求网页返回数据乱码处理一例
  8. 万能五笔输入法导致vs2013 xshell中文乱码
  9. 如何模拟微信小程序请求code
  10. 论文阅读:Questions Are All You Need to Train a Dense Passage Retriever