- 博客(15)
- 收藏
- 关注
转载 朱自清-春
盼望着,盼望着,东风来了,春天的脚步近了。 一切都想刚睡醒的样子,欣欣然张开了眼。山朗润起来了,水涨起来了,太阳的脸红起来了。 小草偷偷地从草里钻出来,嫩嫩的,绿绿的。园子里,田野里,瞧去,一大片一大片满是的。坐着,躺着,打两个滚,踢几脚球,赛几趟跑,捉几回迷藏。风轻悄悄的,草软绵绵的。 桃树,杏树,梨树,你不让我,我不让你,都开满了花赶趟儿。红的像火,粉的像霞,白...
2017-02-21 10:22:00 177
转载 随机数如何生成
C/C++产生随机数用到两个函数rand() 和 srand()一. 不指定范围产生随机数 用到函数rand(),函数原型为int rand(),无参数。此时会产生一个介于0~RAND_MAX间的整数。RAND_MAX的大小可以查看,在include文件夹(linux在usr目录、windows在安装目录)的stdlib.h可以看到,linux下其值为2147483647...
2017-01-04 22:11:00 158
转载 stm32定时器中断类型分析
一直在用的stm32定时器的中断都是TIM_IT_Update更新中断,也没问为什么,直到碰到有人使用TIM_IT_CC1中断,才想到这定时器的中断类型究竟有什么区别,都怪当时学习stm32的时候不够精啊,百度好久也没见有人解释清楚,下面开始我的探究之路。下面是所有的定时器中断类型。#define TIM_IT_Update ((ui...
2016-12-08 15:56:00 8119
转载 contiki-rtimer
struct rtimer { rtimer_clock_t time; rtimer_callback_t func; void *ptr;};typedef unsigned short rtimer_clock_t;typedef void (* rtimer_callback_t)(struct rtimer *t, void *ptr);...
2016-12-08 15:55:00 168
转载 contiki-rime-单跳单播
rucb是单跳单播的最顶层,将数据以块为单位进行传输(Bulk transfer)。 ruc,Reliable communication,保证可靠通信,主要实现确认和序列功能。 suc,Stubborn transmission,可靠通信的另一层。suc这一层在给定的时间间隔不断地重复发送数据包,直到上层让其停止。为防止无限重发,需要指定最大重发次数。 uc,...
2016-12-06 15:33:00 238
转载 contiki-定时器etimer
Contiki内核是基于事件驱动和Protothreads机制,事件既可以是外部事件(比如按键,数据到达),也可以是内部事件(如时钟中断)。定时器的重要性不言而喻,Contiki提供了5种定时器模型,即timer(描述一段时间,以系统时钟滴答数为单位),stimer(描述一段时间,以秒为单位),ctimer(定时器到期,调用某函数,用于Rime协议栈),etimer(定时器到期,触发...
2016-12-04 23:37:00 215
转载 contiki-事件调度
事件驱动机制广泛应用于嵌入式系统,类似于中断机制,当有事件到来时(比如按键、数据到达),系统响应并处理该事件。相对于轮询机制,事件机制优势很明星,低功耗(系统处于休眠状态,当有事件到达时才被唤醒)和MCU利用率高。 Contiki将事件机制融入Protothreads机制,每个事件绑定一个进程(广播事件例外),进程间的消息也是通过事件来传递的。用无符号字符型来标示事件。事件结构...
2016-12-01 16:51:00 230
转载 contiki-process_run()
process_run()函数位于main函数中while(1) { do { } while(process_run() > 0); idle_count++; }找到函数的声明处:/** * Run the system once - call poll handlers and proce...
2016-12-01 12:11:00 113
转载 contiki-断点的保存和恢复
保存断点 保存断点是通过保存行数来完成的,在被中断的地方插入编译器关键字_LINE_,编译器便自动记录所终端的行数。展开那些具有中断功能的宏,可以发现最后保存行数是宏LC_SET,取宏PROCESS_WAIT_EVENT()为例,将其展开得到如下代码:/** * Wait for an event to be posted to the process. * *...
2016-11-29 14:56:00 354
转载 contiki-process结构体
1 struct process { 2 struct process *next; 3 #if PROCESS_CONF_NO_PROCESS_NAMES 4 #define PROCESS_NAME_STRING(process) "" 5 #else 6 const char *name; 7 #define PROCESS_NAME_STRI...
2016-11-24 22:45:00 79
转载 Contiki-一个进程的例子
进程调度器 进程调度器的作用是调用进程。进程调度器通过调用实现进程线程的函数来调用进程。Contiki中所有的进程被设计为响应传递到进程中的事件,或者相应进程请求的轮询。进程调度器在调度进程的时候会将事件标识符和一个不透明指针传递到进程中,该指针由进程调用者提供,可以设置为NULL(该事件不需要传递数据)。当进程轮询时,不会传递数据。开始进程 1 /** 2 * ...
2016-11-24 10:58:00 136
转载 contiki-进程
进程的结构Contiki的进程由两部分组成:进程控制块和进程线程。进程控制块存储在内存中,它包含进程运行时的信息,比如:进程名、进程状态、指向进程线程的指针。进程线程是存储在ROM中的一个代码块。进程控制块PCB(process control block) 1 struct process { 2 struct process *next; 3 #...
2016-11-23 12:02:00 127
转载 contiki-main.c 文件的进程分析
基本进程的创建实例:共三部分:创建进程、进程自启动和进程的主体部分 1 /* 声明一个名为hello_world_process和led_process进程 2 PROCESS 宏实际上声明一个函数并定义一个进程控制块, 3 新创建的进程 next 指针指向空,进程名称为“Hello world”和“led”*/ 4 PROCESS(hello_world_pro...
2016-11-22 16:03:00 90
转载 __VA_ARGS__可变参数宏
#define qWiFiDebug(format, ...) qDebug("[WiFi] "format" File:%s, Line:%d, Function:%s", ##__VA_ARGS__, __FILE__, __LINE__ , __FUNCTION__);__VA_ARGS__ 是一个可变参数的宏,很少人知道这个宏,这个可变参数的宏是新的C99规范中新增的,目前似...
2016-11-22 10:54:00 57
转载 contiki在keil下的stm32平台移植
参考博客:http://www.aiuxian.com/article/p-705047.htmlhttp://blog.csdn.net/u013232419/article/details/45201437contiki大神Jelline的博客:http://blog.chinaunix.net/uid-9112803-id-2978041.html简介: co...
2016-11-14 16:30:00 207
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人