2019年1月10日

结构体的自引用与互引用

摘要: 自引用 结构体是各种数据类型的集合,结构体自引用是结构体一个特殊的数据成员: typedef struct _A { int a; struct _A *b; }A; 结构体A中定义了一个指针b,该指针指向一个结构体A类型。为什么可以这么做呢?因为编译器在编译时已经知道一个指针所占的空间长度可以为其 阅读全文

posted @ 2019-01-10 15:12 heartflying 阅读(4035) 评论(0) 推荐(0) 编辑

2019年1月1日

C++面向对象程序设计(陈维兴 林小茶)精讲

摘要: 面向对象设计主要特征是程序=对象+消息,对象是基本元素,对象接收到消息后,启动有关方法完成操作。 面向对象程序设计的基本特征有:抽象、封装、继承和多态。 c++支持编译时的多态和运行时的多态,编译时的多态通过函数重载实现,运行时的多态通过虚函数实现。 c++通过对c进行扩充,是面向过程程序设计和面向 阅读全文

posted @ 2019-01-01 22:09 heartflying 阅读(2671) 评论(0) 推荐(0) 编辑

2018年12月20日

uc/os:任务管理之任务状态

摘要: uc/os iii中任务的状态有5种:睡眠态、就绪态、运行态、挂起态和被中断态。用户可以通过系统调用使任务在睡眠态、就绪态、运行态、挂起态之间转换,而中断来临时处于运行态的任务会被中断进入被中断态。五种状态的转换关系及引起转换的系统调用见下图。 是不是很像一个萌娃的脑袋,哈哈~ 阅读全文

posted @ 2018-12-20 11:18 heartflying 阅读(1222) 评论(0) 推荐(0) 编辑

uc/os:时间管理

摘要: uc/os与时间管理有关的函数在os_time.c这个文件里面,包含操作系统时间的设置及获取,对任务的延时,任务按时分秒毫秒延时,取消任务的延时共5个系统调用,其中对任务的延时是uC/OS时间管理最主要的功能,如下图: uc/os中的延时不同于单片机不带系统时的延时函数,单片机延时函数大多情况下CP 阅读全文

posted @ 2018-12-20 11:14 heartflying 阅读(524) 评论(0) 推荐(0) 编辑

uc/os:系统时钟及其中断服务函数

摘要: 本篇主要介绍uC/OS的系统时钟,并特别指出uC/OS iii为减少关闭中断的时间所做的改进。 系统时钟可以看成是整个系统的“心脏跳动”,也是系统时间管理的基石,它被用来延时任务和确定任务超时,系统时钟由硬件定时器(如ARM内核的滴答定时器)产生,最小时间间隔视应用而定,在1~100ms之间,OS_ 阅读全文

posted @ 2018-12-20 11:04 heartflying 阅读(642) 评论(0) 推荐(0) 编辑

vim:常用命令

摘要: l 模式切换 在插入模式或命令行模式中按“ESC”或者“Ctrl+[”即可进入普通模式,在普通模式中输入“i”或者“a”即可进入插入模式,输入“:”进入命令行模式。 l 打开文件 命令行模式中输入": 文件路径+文件名"可打开文件。 l 文档编辑 文档编辑是vim最主要的功能,分几个点来讲述。 在普 阅读全文

posted @ 2018-12-20 10:53 heartflying 阅读(366) 评论(0) 推荐(0) 编辑

vim:模式介绍

摘要: 据维基百科资料,vim有6种基本模式和5种派生模式,下面只介绍6种基本模式。 l 普通模式(Normal mode) 此模式下可编辑文本,比如移动光标、删除文本等,这也是vim启动后的默认模式。 此模式下的命令往往需要一个操作符结尾,比如删除当前行命令“dd”,第二个“d”可以用另外的移动命令代替, 阅读全文

posted @ 2018-12-20 10:51 heartflying 阅读(552) 评论(0) 推荐(0) 编辑

2018年10月25日

字符串超长导致emWin卡死

摘要: 故障现象: 使用emWin的机器上有包括中文、英文、俄文等十几种语言。测试发现保加利亚语有一个界面会偶发的卡死故障,其他语言不会。 原因分析: emWin文字控件有25个字节的缓存控件,第25个字节固定为结束符。要显示的字符串字节长度如果在24个字节以内就可以完整显示,如果超过24个字节就只截取前2 阅读全文

posted @ 2018-10-25 15:11 heartflying 阅读(842) 评论(0) 推荐(0) 编辑

2018年9月7日

FreeRTOS之任务管理

摘要: 1、任务管理 任务或者说进程是一个操作系统的基本概念,该书并没有去说明什么是任务,而是从应用的角度去介绍怎么在FreeRTOS中去创建一个任务并管理它。 1.1 任务函数 FreeRTOS中的任务是以一个函数的形式存在的,具有统一的函数原型,如下: void TaskFunction(void *p 阅读全文

posted @ 2018-09-07 17:06 heartflying 阅读(7672) 评论(0) 推荐(2) 编辑

2018年8月29日

结构体字节对齐规则

摘要: 先介绍三个概念:自身对齐值、指定对齐值、有效对齐值。 自身对齐值:数据类型本身的对齐值,例如char类型的自身对齐值是1,short类型是2; 指定对齐值:编译器或程序员指定的对齐值,32位单片机的指定对齐值默认是4; 有效对齐值:自身对齐值和指定对齐值中较小的那个。 对齐有两个规则: 1、不但结构 阅读全文

posted @ 2018-08-29 19:24 heartflying 阅读(32944) 评论(3) 推荐(10) 编辑

导航