• RT_THREAD之nano学习


    nona版本为精简版本,只保留FISH(选配)最小内核,可以适配STM的STD.HAL/LL库,需要手动进行移植;现在可以在KEIL MDK/CUBEMX中进行集成,也可以RT-Thread Nano 离线安装包下载手动下载源码(安装在

    )自己搭建。keil mdk在实时运行环境中打开,通过RT_CONFIG.H进行配置。

    中断处理:原3个中断需要注释掉避免重复定义HardFault_Handler() 、PendSV_Handler()、SysTick_Handler()

    系统时钟配置:需要一个硬件定时器来实现OSTICK处理

    内存堆栈初始化: RT_USING_HEAP使能后就可以进行 rt_malloc、rt_free 以及各种系统动态创建对象的 API。默认是通过数组实现,也可以也推荐通过分散加载文件将堆空闲的起始分别设定为RAM_ZI的结束及RAM的结束。

    串口控制台实现的RT_Kprintf()只进行了 判断,所有要实现回车换行需要添加 处理,否则不会回到行首实现回车换行;

    FISH组件是在串口控制台(只实现了输出打印)基础上又实现串口的输入操作,从而可以自动初始化和调试,其实FISH接口还可以由USB、网口等其他实现。FISH是RT_THREAD的shell(包裹在操作系统外的门卫,上报输入和传达结果),有MSH(传统命令行模式,占用资源少,缺省选型,按EXIT切换到C-Style 模式(占用资源多,调用须要加(),输入MSH切换到MSH),FISH有内置命令和自动以命令

    • 内置命令:table键/help回车查看支持的命令;free查看动态内存;ps/list_thread列出所有的线程;list_信号量、互斥量、事件、邮箱、队列、定时器、设备、内存池等
    • 外置命令:MSH_CMD_EXPORT(name, desc);               

            MSH_CMD_EXPORT(name, desc:neme<参数>);//带参数

                              FINSH_FUNCTION_EXPORT(name, desc);   //C-Style 模式 -》变量

                              FINSH_VAR_EXPORT(name, type, desc);

                             FINSH_FUNCTION_EXPORT_ALIAS(name, alias, desc);//当超过16字节时需要用别名

    •  输出:依赖 rt_kprintf() 输出。在启动函数 rt_hw_board_init() 中, rt_console_set_device(const char* name)指定控制台输出的接口
    • 输入:  rt_device_read() 函数从设备(串口中断->释放信号量rx_indicate())来读
  • 相关阅读:
    12306站点推出图片验证 反破解
    android自己定义控件之飞入飞出控件
    ORACLE 从一个实例迁移到另外一个实例实战记录
    通信协议:HTTP、TCP、UDP
    先打11.2.0.3.8这个PSU,后建库
    C# 多线程參数传递
    运维笔记10 (Linux软件的安装与管理(rpm,yum))
    为RecyclerView打造通用Adapter
    大话设计模式(四)单例模式
    Java代码质量监控工具Sonar安装
  • 原文地址:https://www.cnblogs.com/jieruishu/p/11984450.html
Copyright © 2020-2023  润新知