diff --git a/doc/04.Development_Manual.md b/doc/04.Development_Manual.md index ed8ac5ef844bfdd79818da57d561396dac03c51c..a65522ad87b5bb6df2f2afb078c46056cbeb4e7a 100644 --- a/doc/04.Development_Manual.md +++ b/doc/04.Development_Manual.md @@ -2,7 +2,126 @@ 目录 -[TOC] +- [TencentOS tiny开发指南](#tencentos-tiny开发指南) + - [1. 概述](#1-概述) + - [1.1 基础内核组件](#11-基础内核组件) + - [2. 基础内核](#2-基础内核) + - [2.1 系统管理](#21-系统管理) + - [概述](#概述) + - [API讲解](#api讲解) + - [编程实例](#编程实例) + - [运行效果](#运行效果) + - [2.2 任务管理](#22-任务管理) + - [概述](#概述-1) + - [API讲解](#api讲解-1) + - [编程实例](#编程实例-1) + - [运行效果](#运行效果-1) + - [2.3 任务间通信](#23-任务间通信) + - [2.3.1 互斥量](#231-互斥量) + - [概述](#概述-2) + - [API讲解](#api讲解-2) + - [编程实例](#编程实例-2) + - [运行效果](#运行效果-2) + - [2.3.2 信号量](#232-信号量) + - [概述](#概述-3) + - [API讲解](#api讲解-3) + - [编程实例](#编程实例-3) + - [运行效果](#运行效果-3) + - [2.3.3 事件](#233-事件) + - [概述](#概述-4) + - [API讲解](#api讲解-4) + - [编程实例](#编程实例-4) + - [运行效果](#运行效果-4) + - [2.3.4 完成量](#234-完成量) + - [概述](#概述-5) + - [API讲解](#api讲解-5) + - [编程实例](#编程实例-5) + - [运行效果](#运行效果-5) + - [2.3.5 计数锁](#235-计数锁) + - [概述](#概述-6) + - [API讲解](#api讲解-6) + - [编程实例](#编程实例-6) + - [运行效果](#运行效果-6) + - [2.3.6 栅栏](#236-栅栏) + - [概述](#概述-7) + - [API讲解](#api讲解-7) + - [编程实例](#编程实例-7) + - [运行效果](#运行效果-7) + - [2.3.7 消息队列](#237-消息队列) + - [概述](#概述-8) + - [API讲解](#api讲解-8) + - [编程实例](#编程实例-8) + - [运行效果](#运行效果-8) + - [2.3.8 邮箱队列](#238-邮箱队列) + - [概述](#概述-9) + - [API讲解](#api讲解-9) + - [编程实例](#编程实例-9) + - [运行效果](#运行效果-9) + - [2.3.9 优先级消息队列](#239-优先级消息队列) + - [概述](#概述-10) + - [API讲解](#api讲解-10) + - [编程实例](#编程实例-10) + - [运行效果](#运行效果-10) + - [2.3.10 优先级邮箱队列](#2310-优先级邮箱队列) + - [概述](#概述-11) + - [API讲解](#api讲解-11) + - [编程实例](#编程实例-11) + - [运行效果](#运行效果-11) + - [2.4 内存管理](#24-内存管理) + - [2.4.1 动态内存](#241-动态内存) + - [概述](#概述-12) + - [API讲解](#api讲解-12) + - [编程实例](#编程实例-12) + - [运行效果](#运行效果-12) + - [2.4.2 静态内存](#242-静态内存) + - [概述](#概述-13) + - [API讲解](#api讲解-13) + - [编程实例](#编程实例-13) + - [运行效果](#运行效果-13) + - [2.5 时间管理](#25-时间管理) + - [概述](#概述-14) + - [API讲解](#api讲解-14) + - [编程实例](#编程实例-14) + - [运行效果](#运行效果-14) + - [2.6 软件定时器](#26-软件定时器) + - [概述](#概述-15) + - [API讲解](#api讲解-15) + - [编程实例](#编程实例-15) + - [运行效果](#运行效果-15) + - [2.7 时间片轮转机制](#27-时间片轮转机制) + - [概述](#概述-16) + - [API讲解](#api讲解-16) + - [编程实例](#编程实例-16) + - [运行效果](#运行效果-16) + - [2.8 内核基础组件](#28-内核基础组件) + - [2.8.1 环形队列](#281-环形队列) + - [概述](#概述-17) + - [API讲解](#api讲解-17) + - [编程实例](#编程实例-17) + - [运行效果](#运行效果-17) + - [2.8.2 字符流先入先出队列](#282-字符流先入先出队列) + - [概述](#概述-18) + - [API讲解](#api讲解-18) + - [编程实例](#编程实例-18) + - [运行效果](#运行效果-18) + - [2.8.3 二项堆](#283-二项堆) + - [概述](#概述-19) + - [2.8.4 优先级队列](#284-优先级队列) + - [概述](#概述-20) + - [API讲解](#api讲解-19) + - [编程实例](#编程实例-19) + - [运行效果](#运行效果-19) + - [2.9 功耗管理](#29-功耗管理) + - [2.9.1 低功耗](#291-低功耗) + - [概述](#概述-21) + - [API讲解](#api讲解-20) + - [编程实例](#编程实例-20) + - [运行效果](#运行效果-20) + - [2.9.2 tickless](#292-tickless) + - [概述](#概述-22) + - [API讲解](#api讲解-21) + - [编程实例](#编程实例-21) + - [运行效果](#运行效果-21) ## 1. 概述 @@ -275,7 +394,7 @@ int main(void) > task_prio5 body > task_prio5 body -[实例代码](./code/2.2 task manager/main.c) +[实例代码](code/2.2%20task%20manager/main.c) ### 2.3 任务间通信 @@ -429,7 +548,7 @@ int main(void) > reading critical resource: > 7 8 9 -[实例代码](./code/2.3.1 mutex/main.c) +[实例代码](code/2.3.1%20mutex/main.c) #### 2.3.2 信号量 @@ -594,7 +713,7 @@ int main(void) > produce iterm: > 10 -[实例代码](./code/2.3.2 semaphore/main.c) +[实例代码](code/2.3.2%20semaphore/main.c) #### 2.3.3 事件 @@ -767,7 +886,7 @@ int main(void) > entry_task_listener1: > eeny, meeny, miny, moe, they all come -[实例代码](./code/2.3.3 event/main.c) +[实例代码](code/2.3.3%20event/main.c) #### 2.3.4 完成量 @@ -834,7 +953,7 @@ int main(void) > wait: someone make it complete, so I'm here > trigger: I have done the completion -[实例代码](./code/2.3.4 completion/main.c) +[实例代码](code/2.3.4%20completion/main.c) #### 2.3.5 计数锁 @@ -923,7 +1042,7 @@ int main(void) > warrior 2: I have done my job > wizard: the warriors all have done their jobs, let's make the weapon -[实例代码](./code/2.3.5 countdownlatch/main.c) +[实例代码](code/2.3.5%20countdownlatch/main.c) #### 2.3.6 栅栏 @@ -1012,7 +1131,7 @@ int main(void) > warrior 0: all buddies find their fragment, do my next job > warrior 1: all buddies find their fragment, do my next job -[实例代码](./code/2.3.6 barrier/main.c) +[实例代码](code/2.3.6%20barrier/main.c) #### 2.3.7 消息队列 @@ -1146,7 +1265,7 @@ int main(void) > higher: msg incoming[message for all receivers] > lower: msg incoming[message for all receivers] -[实例代码](./code/2.3.7 message queue/main.c) +[实例代码](code/2.3.7%20message%20queue/main.c) #### 2.3.8 邮箱队列 @@ -1295,7 +1414,7 @@ int main(void) > higher: msg incoming[4th time post], payload[4] > lower: msg incoming[4th time post], payload[4] -[实例代码](./code/2.3.8 mail queue/main.c) +[实例代码](code/2.3.8%20mail%20queue/main.c) #### 2.3.9 优先级消息队列 @@ -1386,7 +1505,7 @@ int main(void) > receiver: msg incoming[msg with priority 1] > receiver: msg incoming[msg with priority 2] -[实例代码](./code/2.3.9 priority message queue/main.c) +[实例代码](code/2.3.9%20priority%20message%20queue/main.c) #### 2.3.10 优先级邮箱队列 @@ -1491,7 +1610,7 @@ int main(void) > receiver: msg incoming[priority 1], payload[1] > receiver: msg incoming[priority 2], payload[2] -[实例代码](./code/2.3.10 priority mail queue/main.c) +[实例代码](code/2.3.10%20priority%20mail%20queue/main.c) ### 2.4 内存管理 @@ -1596,7 +1715,7 @@ int main(void) > 20000cc0 is 16 aligned > realloc: 20000d14 -[实例代码](./code/2.4.1 mmheap/main.c) +[实例代码](code/2.4.1%20mmheap/main.c) #### 2.4.2 静态内存 @@ -1721,7 +1840,7 @@ int main(void) > blocks exhausted, all blocks is alloced > pool is full -[实例代码](./code/2.4.2 mmblk/main.c) +[实例代码](code/2.4.2%20mmblk/main.c) ### 2.5 时间管理 @@ -1792,7 +1911,7 @@ int main(void) > after sleep 2000 ms, systick is 2009 > milliseconds sleep is about: 2002 -[实例代码](./code/2.5 time/main.c) +[实例代码](code/2.5%20time/main.c) ### 2.6 软件定时器 @@ -1912,7 +2031,7 @@ int main(void) > this is periodic timer callback, current systick: 11001 > this is periodic timer callback, current systick: 14001 -[实例代码](./code/2.6 timer/main.c) +[实例代码](code/2.6%20timer/main.c) ### 2.7 时间片轮转机制 @@ -2086,7 +2205,7 @@ int main(void) > should almost equals to: > timeslice_demo2 / timeslice_demo1 = 2.000000 -[实例代码](./code/2.7 robin/main.c) +[实例代码](code/2.7%20robin/main.c) ### 2.8 内核基础组件 @@ -2195,7 +2314,7 @@ int main(void) > dequeue: 4 4 4 > ring queue is empty: TRUE -[实例代码](./code/2.8.1 ring queue/main.c) +[实例代码](code/2.8.1%20ring%20queue/main.c) #### 2.8.2 字符流先入先出队列 @@ -2355,7 +2474,7 @@ int main(void) > abcde > fifo is empty: TRUE -[实例代码](./code/2.8.2 char fifo/main.c) +[实例代码](code/2.8.2%20char%20fifo/main.c) #### 2.8.3 二项堆 @@ -2475,7 +2594,7 @@ int main(void) > dequeue: 5 5 5, prio: 5 > priority queue is empty: TRUE -[实例代码](./code/2.8.4 priority queue/main.c) +[实例代码](code/2.8.4%20priority%20queue/main.c) ### 2.9 功耗管理