排序:
默认
按更新时间
按访问量

12.RT-Thread生产者消费者问题-IPC对象

生产者消费者问题:线程同步问题生产者--->产品(带缓冲区)--->消费者生产者生产产品放到缓冲区,消费者从缓冲区拿产品消费,当缓冲区中产品满了之后,生产者会挂起,只有当消费者消费了一个产品之后,缓冲区产生一个空位,生产者才会继续生产。对于缓冲区的访问是...

2018-07-03 11:07:11

阅读数:8

评论数:0

11.RT-Thread中的事件机制-event

事件是信号量的扩展,在很多情况下可以用事件代替信号量的同步,事件可以一对一、一对多、多对一、多对多。一个线程可等待多个事件的触发:可以是其中任意一个事件唤醒线程进行事件处理的 操作;也可以是几个事件都到达后才唤醒线程进行后续的处理;同样,事件也可以是多个线 程同步多个事件,这种多个事件的集合可以用...

2018-06-24 22:18:00

阅读数:8

评论数:0

6.堆(动态内存 heap)的初始化和使用

堆:先进先出 FIFO:First in first out  手动分配、释放栈:后进先出 FILO:First in last  out  自动分配释放裸机情况下使用动态内存heap:在启动文件(startup_stm32f103xe.s)中调整:Heap_Size       EQU     ...

2018-06-14 16:36:15

阅读数:30

评论数:0

5.中断和临界区的保护

临界区:访问公共资源的代码,在某一个时刻,只能有一个任务能访问公共资源,独占CPUuint32_t value;任务1funca(){value++;value+=10;}任务2funcb(){value++;}在以上2个任务中,如果任务1运行过程中任务2也运行了,那么得到的value值可能是错误...

2018-06-14 15:02:26

阅读数:20

评论数:0

4.空闲任务与钩子函数

CPU使用率的计算,先去统计CPU的空闲率,100%-空闲率=CPU使用率。临界区的概念:临界区有进入和退出操作,在进入临界区和退出临界区这段时间内执行的代码是独享CPU使用权的!rt_enter_critical(); //进入临界区 tick = rt_tick_get(); while (r...

2018-06-14 10:57:22

阅读数:25

评论数:0

2.RT-Thread中的跑马灯

/* * 程序清单:跑马灯例程 * * 跑马灯大概是最简单的例子,就类似于每种编程语言中程序员接触的第一个程序 * Hello World一样,所以这个例子就从跑马灯开始。创建一个线程,让它定时地对 * LED进行更新(关或灭) *//* * 程序清单:跑马灯例程 * * 跑马灯大概是最简单...

2018-06-14 10:34:59

阅读数:25

评论数:0

10.消息队列的使用

1.邮箱和消息队列的区别:邮箱发送的是内存地址(指针传递),并没有进行内存赋值,如果邮箱发送缓冲区变成局部变量,如果函数退出之后,这些局部变量就被回收了,发送的东西肯定是不对的,邮箱发送的地址不要放在局部变量中。消息队列可以直接复制内存块到另外一个内存块,传送的是内存中的内容。消息队列可以直接用局...

2018-06-13 22:02:28

阅读数:20

评论数:0

9.邮箱的使用

1.例说邮箱单个邮箱大小的限制:4字节,邮箱总大小:用户设置sizeof()/42.例程源码解析及邮箱的相关操作    init初始化/creat创建        发送        接收        detach脱离/delete删除邮箱控制块与存放邮件的内存池创建/* 邮箱控制块 */ s...

2018-06-13 20:09:38

阅读数:51

评论数:0

8.互斥量的使用--mutex

1.举例理解互斥锁 停车场(只有一个停车位)----------------        car1----------------car1进去后给停车场上锁,其他车就进不去了。car2    car3    car4    同时只能有一个线程占有公共资源。互斥锁是一种保护共享资源的方法。当一个线...

2018-06-13 16:12:53

阅读数:14

评论数:0

7.RTT信号量的使用

1.IPC(inter process communication)            RTT中的IPC:信号量、互斥锁、信号、消息队列、邮箱2.理解信号量(semaphore )             停车场-----------------------------1           ...

2018-06-13 10:26:52

阅读数:15

评论数:0

3.RT-Thread线程的创建与删除,动态线程、静态进程

在实际应用中,经常添加多个 .c 文件和 .h 文件,RT-Thread有一套成熟的自动构建系统--Scon,它会自动添加你的.c和.h文件到你的工程中,Scon工具根据package-kernel目录下的SConscripts构建工程。添加RTT_ROOT(rtt的源码目录)环境变量cmd命令行...

2018-05-30 15:06:57

阅读数:57

评论数:0

1.RT-Thread目录框架和启动过程分析

rt-thread启动过程: 1、运行启动代码startup_stm32f10xxx.s 2、从启动代码进入rt-thread系统的_main函数(非用户main函数,不是main.c文件中的main函数)(components.c第147行) (1)关闭全局中断 (2)启动rt-thread(进...

2018-05-28 22:25:21

阅读数:62

评论数:0

ESP8266 WIFI数传 Pixhaw折腾笔记

最近3DR数传老是断线,重连,数据刷不出来,折腾了几天数传问题,总结如下:3DR RADIO:淘宝100多一对的,Mission Planner升级固件到最新版本,数传频率范围要对上,...

2018-05-27 21:03:33

阅读数:125

评论数:0

AutoQuad数传问题

3DR数传自带了mavlink协议,AQ发送的也是mavlink协议,难道是这里2层加密的原因吗?解决方法:在Mission planner 刷3DR的最新固件,协议改成rawdata,波特率修改成与AQ飞控一致即可。折腾死人了.....最近被研电赛烦死了...

2018-05-24 20:42:55

阅读数:23

评论数:0

植保无人机PID调参经验

1. P、I、D输出要限幅2. P、D是相对的,如果系统震荡,降低P或者加大D,在不震荡的条件下,尽量让P大。3. I是可以不用的,基本上PD控制器就可以控地很稳了,如果感觉飞机在打舵回中之后,不能保持水平(即摇杆回中之后还是往一边飞),则系统存在稳态误差,需要引入I来减小稳态误差。4. 打舵量很...

2018-05-23 23:20:15

阅读数:64

评论数:0

数据类型

int main() { printf("sizeof(unsigned char)=%d\n",sizeof(unsigned char)); printf("sizeof(char)=%d\n",sizeo...

2018-05-04 15:41:22

阅读数:15

评论数:0

四元数的复数式和三角式的转换关系推导

参考文献:范奎武. 用四元数描述飞行器姿态时的几个基本问题[J]. 航天控制, 2012, 30(4):49-53.三角式与指数式的转换:欧拉公式

2018-04-22 10:01:21

阅读数:57

评论数:0

带参数的回调函数

#include <stdio.h> int add(int a,int b); int sub(int a,int b); void functionchoose(int a, int b, int (*pf)(int, int)); int ...

2018-04-20 11:36:30

阅读数:70

评论数:0

PX4编译环境配置总结.....

用到的软件:ssr openvpn source proxychainsgitbook英文版本有环境配置脚本:ubuntu_sim_nuttx.sh这个脚本执行过程中还会下载2个脚本:ubuntu_sim.sh   --仿真环境安装脚本                            ubu...

2018-04-08 18:38:02

阅读数:53

评论数:1

四旋翼无人机的动力学模型

    1.四旋翼无人机UAV(unmanned aerial vehicles)简介    四旋翼无人机是一种能够垂直起降的非共轴的多旋翼飞行器,同一对角线上的一组旋翼采用逆时针旋转,另一组旋翼采用顺时针旋转,相互抵消了旋翼旋转带来的反扭矩力,通过调节对称分布的四个旋翼转速,可以不断改变无人机的...

2018-03-13 08:42:18

阅读数:1352

评论数:1

提示
确定要删除当前文章?
取消 删除
关闭
关闭