熟悉RT-Thread的软硬件环境【RT-Thread学习笔记 1】
软件环境:Win7+MDK4.7.2
硬件环境:STM32F4Discovery
所用OS代码:RT-Thread2.0.0 beta 下载地址: https://github.com/RT-Thread/rt-thread/archive/v2.0.0_beta.zip
解压缩后,使用\rt-thread-2.0.0_beta\bsp\stm32f40x\project.uvproj 进行实验。
没有使用scons和python。不大需要这个东西。
今天只熟悉一下软件环境:
1、RT进入main之前,
与普通的MDK-STM32程序一样。会使用system_stm32f4xx.c文件中的SystemInit函数初始化时钟。
2、main函数位于startup.c文件中。进行两个工作
系统开始前,rt_hw_interrupt_disable关闭所有中断。
之后使用rtthread_startup启动RTThread
3、函数rtthread_startup()完成的工作:
1、调用函数rt_hw_board_init 完成板子初始化工作
2、显示版本信息:rt_show_version
3、初始化系统滴答:rt_system_tick_init
4、系统内核对象初始化:rt_system_object_init
5、定时器初始化:rt_system_timer_init
6、系统堆栈初始化rt_system_heap_init
7、任务调度器初始化:rt_system_scheduler_init
8、rt_application_init //加入用户自定义的任务
9、FINSH模块初始化 ,
10、定时器线程初始化:rt_system_timer_thread_init
11、空闲任务初始化rt_thread_idle_init
12、开始任务调度,OS接管MCU:rt_system_scheduler_start
任务调度开始之后,OS就算是启动好了。之后的东西都是在OS的管理下运行了。
4、在RTT示例工程中添加外设驱动的方法:
驱动头文件加入board.h
熟悉RT-Thread的软硬件环境【RT-Thread学习笔记 1】的更多相关文章
- Unix环境高级编程学习笔记——fcntl
写这篇文正主要是为了介绍下fcntl,并将我自己在学习过程中的一些理解写下来,不一定那么官方,也有错误,希望指正,共同进步- fcntl: 一个修改一打开文件的性质的函数.基本的格式是 int fcn ...
- Linux就该这么学(3)-管道符、重定向与环境变量(学习笔记)
1.Linux命令与文件读写操作有关的重定向技术: 学习目标:主要解决输出信息的保存问题. 标准覆盖输出重定向: 标准追加输出重定向 错误覆盖输出重定向 错误追加输出重定向 输入重定向 标准输入(ST ...
- python 3.6 + robotFramework自动化框架 环境搭建、学习笔记
################################################################# #author: 陈月白 #_blogs: http://www.c ...
- Unix环境高级编程学习笔记——dup
dup 和 dup2 dup和dup2,都是用来将一个文件描述符复制给另一个文件描述符上,这两个文件描述符都指向同一个文件状态标志上. 只是文件描述符的大小不一样,dup所执行下的复制,肯定是返回 ...
- UNIX环境高级编程学习笔记(十)为何 fork 函数会有两个不同的返回值【转】
转自:http://blog.csdn.net/fool_duck/article/details/46917377 以下是基于 linux 0.11 内核的说明. 在init/main.c第138行 ...
- ubuntu18.04 qemu环境搭建【学习笔记】
一.准备工具 1.1 安装相关工具 sudo apt-get install qemu libncurses5-dev gcc-arm-linux-gnueabi build-essential 1. ...
- k8s 1.12 环境部署及学习笔记
1.K8S概述 1.Kubernetes是什么 2.Kubernetes特性 3.Kubernetes集群架构与组件 4.Kubernetes核心概念 1.1 Kubernetes是什么 • Kube ...
- python进阶学习笔记(四)--多线程thread
在使用多线程之前,我们首页要理解什么是进程和线程. 什么是进程? 计算机程序只不过是磁盘中可执行的,二进制(或其它类型)的数据.它们只有在被读取到内存中,被操作系统调用的时候才开始它们的生命期.进程( ...
- Java 线程第三版 第一章Thread导论、 第二章Thread的创建与管理读书笔记
第一章 Thread导论 为何要用Thread ? 非堵塞I/O I/O多路技术 轮询(polling) 信号 警告(Alarm)和定时器(Timer) 独立的任务(Ta ...
随机推荐
- 【一套C语言控制台的输出框代码】
效果演示 可以生成一个输出框 首先 要创建输出框,设置输出框风格,可以设置的元素包括: 左上角符号,右上角符号,左下角符号,右下角符号,以及上下左右边界线符号,理论上,只要你电脑能显示的符号,都可以支 ...
- hdu1004
Problem Description Contest time again! How excited it is to see balloons floating around. But to te ...
- SqlServer性能优化 性能调控(十)
如何做资源的调控: 1.建立资源池. 2.创建工作负荷组 create resource pool ImporPool with ( min_cpu_percent=30,max_cpu_percen ...
- HDU 5398 (动态树)
Problem GCD Tree 题目大意 n个点的无向完全图,标号1~n,每条边u-->v 的权值为gcd(u,v),求其最大生成树,输出最大边权和. n<=10^5,有多个询问. 解题 ...
- sass的安装与使用
一.SASS简介:SASS是一种使CSS的开发,变得简单和可维护开发工具. 二.安装和使用 2.1 SASS的安装: 安装sass之前首先需要安装ruby,ruby的安装可以直接在百度搜索安装,安装 ...
- Swift---- 可选值类型(Optionals) 、 断言(Assertion) 、 集合 、 函数
1 使用数组实现九宫格 1.1 问题 Swift提供经典的数组和字典两种集合类型来存储集合数据.本案例使用数组实现一个九宫格程序,如图-1所示: 图-1 1.2 方案 九宫格就是有一个n行n列的方格, ...
- 深入理解Javascript中this, prototype, constructor
在Javascript面向对象编程中经常需要使用到this,prototype和constructor这3个关键字. 1.首先介绍一下this的使用:this表示当前对象;如果在全局中使用this,则 ...
- C#、js、json Datetime格式总结
在工作过程中遇到时间格式的数据在C#.js 和 json保存的不同结果,现在总结一下 JavaScript Parser: 1.数字型时间转字符串时间 如var data = "/Date( ...
- 【海洋女神原创】知识普及:IS版本命名规则和高低关系
经常有朋友对IS的版本命名不甚了解,有时候在交流的时候就会造成误会,在这里做一下普及. IS最早出名的版本是IS6.22,这是个非常古老的版本的,但是在IS历史上有不可磨灭的贡献. 之后很长一段时间内 ...
- linux压缩解压文件
首先进入文件夹 cd /home/ftp2/1520/web 压缩方法一:压缩web下的888.com网站 zip -r 888.com.zip888.com 压缩方法二:将当前目录下的所有文件和文件 ...