博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1.RT-Thread目录框架和启动过程分析
阅读量:4099 次
发布时间:2019-05-25

本文共 904 字,大约阅读时间需要 3 分钟。

目录框架

rt-thread:rtt系统目录

        scr:RTT的核心代码

        include:RTT内核头文件

        libcpu:对各种不同类型架构cpu芯片的支持文件

        components:RTT的各种组件(dfs文:件系统,finsh:命令行,cplusplus:c++支持,net网络组件,等等)

        tools:自动化构建、编译

applications:用户应用文件夹

debug:keil编译输出目录

drivers:板级驱动

libraries:芯片固件库函数

project.eww : IAR工程

project.uvproj: keil 4工程

project.uvprojx: keil 5工程

template是个模板工程不需要关注

rtconfig.h: 系统裁剪相关的一个头文件,特别重要。

rt-thread启动过程:

 1、运行启动代码startup_stm32f10xxx.s
 2、从启动代码进入rt-thread系统的_main函数(非用户main函数,不是main.c文件中的main函数)(components.c第147行)
     (1)关闭全局中断
     (2)启动rt-thread(进入rtthread_startup函数)
 3、在rtthread_startup()函数中
     (1)板级硬件初始化 
     (2)打印rt-thread版本 
     (3)系统定时器初始化
     (4)系统调度器(scheduler)初始化
     (5)应用初始化(rt_application_init()创建并启动初始线程,也就是进入用户main函数。注意:此处的进入用户main函数其实是将main函数作为线程运行)
     (6)系统定时器线程初始化
     (7)创建并启动空闲线程
     (8)启动系统调度器
 至此,整个启动过程结束。
 

     特别注意的是:main.c文件中的main函数其实是一个线程,以提供给用户创建其他应用线程,所以在创建了其他应用线程之后,这个main函数线程就可以被删除了。

    进入用户main函数之后最好延时一段时间,避过系统上电的不稳定期(可用示波器查看时间长短),再进行其他动作。

 以上为个人见解,如有不妥之处,请指正。

转载地址:http://qiwsi.baihongyu.com/

你可能感兴趣的文章
早知道这些免费 API,我就可以不用到处爬数据了!
查看>>
Java各种集合类的合并(数组、List、Set、Map)
查看>>
JS中各种数组遍历方式的性能对比
查看>>
Mysql复制表以及复制数据库
查看>>
进程管理(一)
查看>>
linux 内核—进程的地址空间(1)
查看>>
存储器管理(二)
查看>>
开局一张图,学一学项目管理神器Maven!
查看>>
Android中的Binder(二)
查看>>
Framework之View的工作原理(一)
查看>>
Web应用架构
查看>>
设计模式之策略模式
查看>>
深究Java中的RMI底层原理
查看>>
用idea创建一个maven web项目
查看>>
Kafka
查看>>
9.1 为我们的角色划分权限
查看>>
维吉尼亚之加解密及破解
查看>>
DES加解密
查看>>
TCP/IP协议三次握手与四次握手流程解析
查看>>
PHP 扩展开发 : 编写一个hello world !
查看>>