05 2017 档案

摘要:typedef static char int8;这个声明正确吗? A:err 所以上面那个声明是错误的。 typedef为一种类型引入新的名字,而不是为变量分配空间,它并没有引入新的类型,而是为现有的类型取个新名字。在说到typedef时,有一个很好的例子是signal()函数声明,但是,一般而言 阅读全文
posted @ 2017-05-31 21:33 Crystal_Guang 阅读(717) 评论(0) 推荐(0) 编辑
摘要:gcc是“GNU Compiler Collection”的缩写,从字面意思可以知道它是一个编译器集。gcc不止可以编译器c语言,还能用于c++,java,object-C等语言程序。但是在这里,我们的嵌入式学习中,目前只去关注gcc在C语言方面的编译功能。 .什么是交叉编译器 在嵌入式系统开发中, 阅读全文
posted @ 2017-05-28 21:43 Crystal_Guang 阅读(23525) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2017-05-23 21:58 Crystal_Guang 阅读(352) 评论(0) 推荐(0) 编辑
摘要:现在准备的简单程序LED灯的工程目录中增加freertos文件夹: 在 source目录下的portable目录下只留下下面的文件夹: 为什么呢? 把对应文件移植在工程中之后,添加头文件路径如下图: 编译之后,报错如下: 提示少了配置文件,那么我们可以在官方demo文件目录下复制一个到我们工程中来。 阅读全文
posted @ 2017-05-22 21:16 Crystal_Guang 阅读(13532) 评论(0) 推荐(2) 编辑
摘要:make是以从上到下的顺序读入Makefile中的内容的。然而,处理Makefile中的语句却并非完全从上到下。 大体上,make处理一个Makefile分为两个阶段。第一个阶段包含: 1.make读入Makefile,以及Makefile中所包含的其他Makefile; 2.make分析并获得变量 阅读全文
posted @ 2017-05-22 16:51 Crystal_Guang 阅读(641) 评论(0) 推荐(0) 编辑
摘要:从Makefile的角度看,一个可以改善编译效率的地方与其中的隐式规则有关。为了了解make的隐式规则,我们把之前的simple项目的Makefile做一点更改,删除生成.o文件的规则(与隐式规则相对应的是,在Makefile中定义的规则称为显示规则)。 我们make一下,还是成功了,这就是make 阅读全文
posted @ 2017-05-22 16:09 Crystal_Guang 阅读(1031) 评论(0) 推荐(0) 编辑
摘要:前面一篇文章介绍了一些命名规范之类的基础知识,但是我觉得还缺少一定前言知识,就是裸机和操作系统有什么区别,为什么我们需要学freertos,因为招聘要求?那么为什么招聘网又会有这个要求呢?所以我们为什么要去学习这个实时操作系统呢? 早期嵌入式开发没有嵌入式操作系统的概念 ,直接操作裸机,在裸机上写程 阅读全文
posted @ 2017-05-18 20:54 Crystal_Guang 阅读(46529) 评论(0) 推荐(0) 编辑
摘要:C语言中的声明器,声明器就是标识符以及与它组合在一起的任何指针、函数括号、数组下标。 函数的返回值不能是一个函数,但允许是一个函数指针。 函数的返回值不能是一个数组,但可以是一个指针,或者指向数组的指针。 数组里面不能有函数,但允许数组里面还有数组。 位段的类型必须是int,unsigned int 阅读全文
posted @ 2017-05-17 21:07 Crystal_Guang 阅读(477) 评论(0) 推荐(0) 编辑
摘要:外部中断/事件控制器(EXTI)管理了控制器的 23 个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。 EXTI 可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。 EXTI功能框图EXTI 的功能框图包含了 阅读全文
posted @ 2017-05-17 20:32 Crystal_Guang 阅读(4383) 评论(0) 推荐(0) 编辑
摘要:本章参考资料《 STM32F4xx 中文参考手册》第十章-中断和事件、《ARM Cortex™-M4F 技术参考手册》 -4.3 章节: NVIC 和 4.4 章节: SCB—4.4.5 的 AIRCR。STM32 中断非常强大,每个外设都可以产生中断,所以中断的讲解放在哪一个外设里面去讲都不合适, 阅读全文
posted @ 2017-05-16 15:26 Crystal_Guang 阅读(2611) 评论(0) 推荐(0) 编辑
摘要:分析编程语言缺陷的一种方法是把所有的缺陷归于3类:不该做的做了,该做的没做,该做但做得不合适。 在使用switch case时,如果使用缺省的 fall through,请一定在旁边注释,因为97%的情况需要使用break,break跳出的是最近的那层循环或者switch语句。 下面代码,第一次调用 阅读全文
posted @ 2017-05-14 15:09 Crystal_Guang 阅读(656) 评论(0) 推荐(0) 编辑
摘要:现在,是时候在对应目录放入对应文件了: 执行make后报错: 这是在构建依赖文件时,gcc因为找不到foo.h而报错。那是因为foo.h和foo.c放在不同的目录中,这样需要使用gcc的 -I 选项,指定包含路径,所以,更改后的Makefile如下: 这样就完成了支持头文件目录指定 阅读全文
posted @ 2017-05-14 13:24 Crystal_Guang 阅读(5328) 评论(0) 推荐(0) 编辑
摘要:先手工创建几个文件目录: 接下来先创建code/foo/src目录下的Makefile: 具体和complicated项目的差别可以看书或者上篇随笔。 第一个提示没有那个目录,可以在include的时候加上'-'就可以忽略这个,因为这里对我们的项目没有实质影响,但是新手对于报错或者警告总是不放心,故 阅读全文
posted @ 2017-05-13 20:54 Crystal_Guang 阅读(331) 评论(0) 推荐(0) 编辑
摘要:现在我们再对complicated项目做一些更改,增加程序文件间依赖关系的复杂度。 在之前的Makefile不做更改的情况下,我们make一下: 在这次成功编译的基础上,我们再做一些改动,注意在这之前不要执行make clean,否则不能发现新问题。 从结果看,尽管foo.c和main.c都被重新编 阅读全文
posted @ 2017-05-10 17:45 Crystal_Guang 阅读(2607) 评论(0) 推荐(0) 编辑
摘要:Makefile中存在一个include指令,它的作用如同C语言中的#include预处理指令。在Makefile中,可以通过include指令将自动生成的依赖关系文件包含进来,从而使得依赖关系文件中的内容成为Makefile的一部分。 在此之前,先介绍一下Makefile中的include的用法。 阅读全文
posted @ 2017-05-08 21:53 Crystal_Guang 阅读(5682) 评论(0) 推荐(1) 编辑
摘要:以下转载自安富莱电子: http://forum.armfly.com/forum.php FreeRTOS 的特点 FreeRTOS 的主要特点如下:1. 支持抢占式调度,合作式调度和时间片调度。2. SafeRTOS 作为 FreeRTOS 的衍生品大大提高了 FreeRTOS 在代码完整性方面 阅读全文
posted @ 2017-05-08 15:20 Crystal_Guang 阅读(13514) 评论(0) 推荐(1) 编辑
摘要:后面会介绍gcc获得源文件依赖的方法,gcc这个功能就是为make而存在的。我们采用gcc的-MM选项结合sed命令。使用sed进行替换的目的是为了在目标名前加上“objs/”前缀。gcc的-E选项,预处理。在生成依赖关系时,其实并不需要gcc编译源文件,只要预处理就可以获得依赖关系了。通过-E选项 阅读全文
posted @ 2017-05-06 21:15 Crystal_Guang 阅读(794) 评论(0) 推荐(1) 编辑
摘要:在大多项目中都会合理设计目录结构来提高维护性,在编译一个项目时会产生大量中间文件,如果中间文件直接和源文件放在一起,就显得杂乱而不利于维护。在为现在这个complicated项目编写makefile之前,我们先给出目录结构需求: 1.将所有的目标文件放在objs子目录中; 2.将最终生成的可执行程序 阅读全文
posted @ 2017-05-04 15:57 Crystal_Guang 阅读(395) 评论(0) 推荐(0) 编辑
摘要:本章参考资料:《 STM32F4xx 中文参考手册》 RCC 章节。学习本章时,配合《 STM32F4xx 中文参考手册》 RCC 章节一起阅读,效果会更佳,特别是涉及到寄存器说明的部分。RCC : reset clock control 复位和时钟控制器。本章我们主要讲解时钟部分,特别是要着重理解 阅读全文
posted @ 2017-05-01 14:52 Crystal_Guang 阅读(2685) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示