摘要:
前面一篇文章介绍了一些命名规范之类的基础知识,但是我觉得还缺少一定前言知识,就是裸机和操作系统有什么区别,为什么我们需要学freertos,因为招聘要求?那么为什么招聘网又会有这个要求呢?所以我们为什么要去学习这个实时操作系统呢? 早期嵌入式开发没有嵌入式操作系统的概念 ,直接操作裸机,在裸机上写程 阅读全文
摘要:
C语言中的声明器,声明器就是标识符以及与它组合在一起的任何指针、函数括号、数组下标。 函数的返回值不能是一个函数,但允许是一个函数指针。 函数的返回值不能是一个数组,但可以是一个指针,或者指向数组的指针。 数组里面不能有函数,但允许数组里面还有数组。 位段的类型必须是int,unsigned int 阅读全文
摘要:
外部中断/事件控制器(EXTI)管理了控制器的 23 个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。 EXTI 可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。 EXTI功能框图EXTI 的功能框图包含了 阅读全文
摘要:
本章参考资料《 STM32F4xx 中文参考手册》第十章-中断和事件、《ARM Cortex™-M4F 技术参考手册》 -4.3 章节: NVIC 和 4.4 章节: SCB—4.4.5 的 AIRCR。STM32 中断非常强大,每个外设都可以产生中断,所以中断的讲解放在哪一个外设里面去讲都不合适, 阅读全文
摘要:
分析编程语言缺陷的一种方法是把所有的缺陷归于3类:不该做的做了,该做的没做,该做但做得不合适。 在使用switch case时,如果使用缺省的 fall through,请一定在旁边注释,因为97%的情况需要使用break,break跳出的是最近的那层循环或者switch语句。 下面代码,第一次调用 阅读全文
摘要:
现在,是时候在对应目录放入对应文件了: 执行make后报错: 这是在构建依赖文件时,gcc因为找不到foo.h而报错。那是因为foo.h和foo.c放在不同的目录中,这样需要使用gcc的 -I 选项,指定包含路径,所以,更改后的Makefile如下: 这样就完成了支持头文件目录指定 阅读全文
摘要:
先手工创建几个文件目录: 接下来先创建code/foo/src目录下的Makefile: 具体和complicated项目的差别可以看书或者上篇随笔。 第一个提示没有那个目录,可以在include的时候加上'-'就可以忽略这个,因为这里对我们的项目没有实质影响,但是新手对于报错或者警告总是不放心,故 阅读全文
该文被密码保护。 阅读全文
摘要:
现在我们再对complicated项目做一些更改,增加程序文件间依赖关系的复杂度。 在之前的Makefile不做更改的情况下,我们make一下: 在这次成功编译的基础上,我们再做一些改动,注意在这之前不要执行make clean,否则不能发现新问题。 从结果看,尽管foo.c和main.c都被重新编 阅读全文
摘要:
Makefile中存在一个include指令,它的作用如同C语言中的#include预处理指令。在Makefile中,可以通过include指令将自动生成的依赖关系文件包含进来,从而使得依赖关系文件中的内容成为Makefile的一部分。 在此之前,先介绍一下Makefile中的include的用法。 阅读全文
摘要:
以下转载自安富莱电子: http://forum.armfly.com/forum.php FreeRTOS 的特点 FreeRTOS 的主要特点如下:1. 支持抢占式调度,合作式调度和时间片调度。2. SafeRTOS 作为 FreeRTOS 的衍生品大大提高了 FreeRTOS 在代码完整性方面 阅读全文
摘要:
后面会介绍gcc获得源文件依赖的方法,gcc这个功能就是为make而存在的。我们采用gcc的-MM选项结合sed命令。使用sed进行替换的目的是为了在目标名前加上“objs/”前缀。gcc的-E选项,预处理。在生成依赖关系时,其实并不需要gcc编译源文件,只要预处理就可以获得依赖关系了。通过-E选项 阅读全文
摘要:
在大多项目中都会合理设计目录结构来提高维护性,在编译一个项目时会产生大量中间文件,如果中间文件直接和源文件放在一起,就显得杂乱而不利于维护。在为现在这个complicated项目编写makefile之前,我们先给出目录结构需求: 1.将所有的目标文件放在objs子目录中; 2.将最终生成的可执行程序 阅读全文
摘要:
本章参考资料:《 STM32F4xx 中文参考手册》 RCC 章节。学习本章时,配合《 STM32F4xx 中文参考手册》 RCC 章节一起阅读,效果会更佳,特别是涉及到寄存器说明的部分。RCC : reset clock control 复位和时钟控制器。本章我们主要讲解时钟部分,特别是要着重理解 阅读全文
摘要:
序言:2440有nand和nor两种启动方式,在裸机部分,都是使用的nand启动。 现在,我们想在nand flash启动的时候,通过SRAM访问存储在外设SDRAM中的程序。 nand启动,先把前4K数据加载到内部SRAM,再从SDRAM读取LED程序。 这个实验需要熟悉芯片手册,这里不是重点研究 阅读全文