RT-Thread 05内存管理

在计算系统中,变量、中间数据一般存放在系统存储空间中,只有在实际使用时才将它们从存储空间调入到中央处理器内部进行运算。通常存储空间可以分为两种:内部存储空间和外部存储空间。内部存储空间访问速度比较快,能够按照变量地址随机地访问,也就是我们通常所说的RAM(随机存储器),或电脑的内存;而外部存储空间...

2017-10-05 22:10:44

阅读数 1048

评论数 0

RT-Thread 04任务间同步及通讯 -互斥量、事件、邮箱、消息队列

互斥量互斥量又叫相互排斥的信号量,是一种特殊的二值性信号量。它和信号量不同的是,它支持互斥量所有权、递归访问以及防止优先级翻转的特性。互斥量工作如 互斥量的工作示意图 所示。 互斥量的状态只有两种,开锁或闭锁(两种状态值)。当有线程持有它时,互斥量处于闭锁状态,由这个线程获得它的所有权。相反,当这...

2017-09-25 13:52:38

阅读数 1834

评论数 1

RT-Thread 03任务间同步及通讯 -中断关闭、调度器锁、信号量

在多任务实时系统中,一项工作的完成往往可以通过多个任务协调的方式共同来完成, 例如一个任务从传感器中接收数据并且将数据写到共享内存中,同时另一个任务周期性的从共享内存中读取数据并发送去显示(如图 两个线程间的数据传递 ) 如果对共享内存的访问不是排他性的,那么各个线程间可能同时访问它。这将引起数据...

2017-09-18 23:11:29

阅读数 1070

评论数 0

STM32使用Jlink烧写与boot合并烧写的方法

1 概述本文主要描述STM32的bootloader及应用程序HEX文件的合并,以及相应的烧写方法。 2 适用范围1. 相关的开发人员 2. 需要烧写的其他人员 3 创建烧写使用的HEX文件3.1 Hex文件的获取通过对ECU-R以及Bootloader程序的编译获得我们所需要的两个hex文件...

2017-09-14 22:47:12

阅读数 3832

评论数 0

keil RT-Thread相关调试基本使用技巧

1 概述本文档主要用于介绍STM32裸机的调方法以及RT-thread系统下的调试方法。两个例子都将以LED为例,裸机将以跑马灯为例,RT-thread将以心跳等为例进行讲解。2 STM32裸机调试方法打开“标准例程-V3.5库函数版本”目录下的“实验1跑马灯-库函数操作”项目作为本次实验的目标项...

2017-09-14 22:38:47

阅读数 805

评论数 0

RT-Thread 02定时器

定时器管理定时器,是指从指定的时刻开始,经过一个指定时间,然后触发一个事件,类似定个时间提醒第二天能够按时起床。定时器有硬件定时器和软件定时器之分:1. ***硬件定时器***是芯片本身提供的定时功能。一般是由外部晶振提供给芯片输入时钟,芯片向软件模块提供一组配置寄存器,接受控制输入,到达设定时间...

2017-09-14 21:31:30

阅读数 934

评论数 0

RT-Thread 01线程调度与管理

2.1 实时系统的需求 实时系统是一种需求倾向性的系统,对于实时的事件需要在第一时间内做出回应,而对非实时任务则可以在实时事件到达时为之让路——被抢占。所以实时系统也可以看成是一个等级系统,不同重要性的任务具有不同的优先等级:重要的事件能够优先被响应执行,非重要的事件可以适当往后推迟。 ...

2017-09-12 23:24:33

阅读数 935

评论数 0

Keil uVision5 下载程序 add flash programming algorithm选项缺少需要的算法解决办法

本文转载自 http://blog.csdn.net/u010893262/article/details/70847475 MDK开发环境从V4升级到V5后,支持包不再是集成到开发环境当中,而是封装在PACK中,需要自行安装,比较麻烦。 搭建MDK开发环境以及破解的方法,...

2017-05-31 20:45:40

阅读数 1145

评论数 0

SPI总线协议

SPI总线协议及SPI时序图详解     SPI,是英语 Serial Peripheral Interface 的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为 PCB 的布上节省空间,提供...

2017-05-24 16:33:00

阅读数 217

评论数 0

解放串口调试(使用JLink SEGGER RTT来打印和输入调试信息)

解放串口调试(使用JLink SEGGER RTT来打印和输入调试信息) 之前调试一直使用的串口作为调试口,但是由于串口数量的限制所以必须找到另一种方法作为调试使用。于是在网上寻找到了这个方法,在此记录方便以后的查询。 1、使用JLINK SEGGER RTT打印调试信息 很简单,首先从Jlink...

2017-05-20 16:47:35

阅读数 4147

评论数 1

RT-Thread的CPU使用率计算

CPU 的使用率一般是我们比较关心的问题,在这里我们就用空闲线程的钩子函数去统计 CPU 的使用率,并通过串口打印出来。 首先我们在初始化线程中设置好钩子函数,并在 LED 线程中给系统人为的加入很多“事情”,让其占用率变高,方便统计,然后每个 1 秒中打印一次 CPU 使用率。其中 CPU...

2017-05-19 15:13:45

阅读数 370

评论数 0

深入了解DHCP的4步租约过程

最近在调试STM32F107+LAN8720+lwip的过程中网络方面遇到了很多问题。同时因为自己刚刚接触STM32单片机方面的知识,还有很多方面需要学习的。闲话不多说,先让我们简单了解下DHCP相关的知识。 DHCP的4步租约过程 DHCP租约过程就是DHCP客户机动态获取IP地址的过程。 ...

2017-05-17 22:02:52

阅读数 4361

评论数 0

Linux系统编程巩固--04

一. sprintf:往字符串中输入数据 fprintf:往文件中输入数据 读写文件用那一套函数?标C还是UC函数 如果考虑通用性,就使用标C函数,如果确定只在Unix/Linux下使用,UC的也行 time a.out可以查看a.out的运行时间 文件读写的位...

2016-10-18 09:51:18

阅读数 180

评论数 0

Linux系统编程巩固--03

系统调用--因为用户空间不能直接访问内核空间,想完成功能又必须得到内核的支持.因此,内核层提供了系统调用,做用户空间进入内核空间的桥梁。系统调用是一系列的函数,包括各种系统的功能。我们系统编程接触的大多数都是系统调用 一.文件操作 非常常用的函数,包括读写函数和非读写函数 在li...

2016-10-18 09:37:18

阅读数 119

评论数 0

Linux系统编程巩固--02

一.静态库 1.为什么需要库 二进制形式目标模块的包 a.o  | b.o  |----abc.a----库 c.o  | 2.库的类型 1)静态库:扩展名.a,库中所封装的二进制代码,在链接阶段被复制到调用模块中 2)动态库:扩展名.so,库中所封装的二进制代码,在链接阶段并...

2016-10-17 10:31:49

阅读数 130

评论数 0

Linux系统编程巩固--01

学习Linux系统编程主要包括学习一下内容:开发环境、内存管理、文件系统、进程管理、信号处理、进程通信、线程管理、线程同步和网络编程。 一.Unix操作系统 1.美国AT&T,贝尔实验室 1971年 多用户,多任务,多处理器 商用 2.三个派系 1.system V IBM AIX ....

2016-10-17 10:16:31

阅读数 304

评论数 0

深入理解Linux内核day10--信号

信号     信号在最早的Unix系统中即被引用,用于在用户态进程间通信。内核也用信号通知进程系统所发生的事件。信号已有30多年的历史,但只有很小的变化。      信号的作用     信号(signal)是很短的消息,可以被发送到一个进程或一组进程。发送给进程的唯一信息通常是一个数,以此...

2016-05-05 18:04:12

阅读数 1193

评论数 0

深入理解Linux内核day09--系统调用

系统调用     操作系统为在用户态运行的进程与硬件设备(如CPU、磁盘、打印机等等)进行交互提供了一组接口。     Unix系统通过向内核发出系统调用(system call)实现用户态进程和硬件设备之间的大部分接口。      POSIX API和系统调用     让我们先强调下应...

2016-05-05 14:13:10

阅读数 1529

评论数 0

深入理解Linux内核day08--进程线性地址空间

进程地址空间     内核中的函数以相当直截了当的方式获得动态内存:         1.__get_free_pages()和alloc_pages()从分区页框分配器中获得页框。         2.kmem_cache_alloc()和kmalloc()使用slab分配器为专门或通用对...

2016-05-05 10:45:31

阅读数 2043

评论数 0

深入理解Linux内核day07--内存管理

内存管理     RAM的某些部分永久的分配给内核,并用来存放内核代码以及静态内核数据结构。     RAM的其余部分称为动态内存(dynamic memory),这不仅是进程所需的宝贵资源,也是内核本身所需的宝贵资源。实际上,整个系统的性能取决于如何有效地管理动态内存。     因此,现在...

2016-05-04 14:22:46

阅读数 869

评论数 0

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