FreeRTOS(五)——heap文件解析

2017-09-15
阅读 9 分钟
6.3k
FreeRTOS提供了5中内存分配的方式,分别在heap_1.c, heap_2.c, heap_3.c, heap_4.c, heap_5.c中。

Mesh(四)——GATT

2017-09-15
阅读 1 分钟
3k
Proxy Protocol允许节点通过GATT收发mesh消息 Proxy Protocol Roles 包含两部分:Proxy Server和Proxy Client Proxy Server需要支持Proxy Protocol和其他至少一种mesh bearer。 通常是要GATT和ADV都支持 Proxy Client仅支持Proxy Protocol。 Proxy PDU client和server通过PDU交互mesh信息,一个Proxy PDUs包括Network PD...

FreeRTOS(四)——内存管理

2017-09-14
阅读 1 分钟
3k
概述 标准的内存函数是malloc和free,但是对于嵌入式系统来说,可能会有以下问题: 这两个函数在小型嵌入式系统中可能不可用 这两个函数的具体实现可能会相对较大,会占用较多的代码空间 这两个函数通常不具备线程安全特性 这两个函数具有不确定性,每次调用的时间开销都可能不同 这两个函数会产生内存碎片 这两个函数会...

FreeRTOS(三)——资源管理

2017-09-14
阅读 1 分钟
3.3k
多任务系统中存在一种潜在的风险,当一个任务在使用某个资源的过程中,即还没有完全结束对资源的访问时,便被切出运行态,使得资源处于非一致,不完整的状态,如果这个时候有另一个任务或者中断来访问这个资源,则会导致数据损坏或者其他相似的错误。

FreeRTOS(二)——队列和中断管理

2017-09-14
阅读 1 分钟
4k
读队列时阻塞任务试图读取队列,等待队列中数据有效。当队列被多个任务读取时,只有一个任务被解除阻塞,这个任务就是等待任务中优先级最高的任务,如果优先级相同,则被解除阻塞的是等待时间最久的任务。

FreeRTOS(一)——任务管理

2017-09-12
阅读 2 分钟
7.5k
1. 任务管理 任务就是线程的另一种说法 1.1 实时性 软实时软件保证线程的切换在一个恰当的时间范围内 硬实时必须在给定的时间限制内完成,安全气囊是一个明显的例子 大多数嵌入式要满足软硬实时 1.2 任务函数 {代码...} FreeRTOS不允许线程自行结束——绝不能有return,如果一个任务不需要了,需要显式的将其删除。 为什么...

Mesh(一)----System Architecture

2017-09-12
阅读 2 分钟
2.6k
架构 整体基于BLE,搭建一套上层体系。 Model layer定义一个model,标准化一些操作或用户场景,例如灯和传感器 Foundation Model layer定义状态,消息和配置及管理整个mesh网络 Access layer应用层和较底层的交互接口。定义和控制加密等一些东西 Upper transport layer 加密,解密,认证。 Lower transport layer数据的...

Mesh(二)----Networking

2017-09-11
阅读 1 分钟
2.1k
地址 单播地址(unicast address)最大32767(0x7FFF),有Provisioner在配对的时候分配 虚拟地址(virtual address)代表一系列目标地址,16bit的值, 范围0x8000~0xBFFF {代码...} 组地址(Group address)这个很好理解了。组地址的一些定义如下: Network PDU 结构如下: IV IndexIV Index提供一个在应用层和网络层,用于临时...

Mesh(三)----Provision

2017-09-09
阅读 4 分钟
3.6k
Provision statck 下图是provision的stack架构,分为三层,左边基于Adv,右边基于GATT Provision bearer layer bearer,送信人的意思,表示传输媒介两种bearer构成: PB-ADV PB-GATT 一个未配对的设备应该支持上述两种中的一种,强烈建议都支持。Provisioner(发起配对方)应该支持至少一种,强烈建议支持PB-ADV PB-ADV 通...