06 2017 档案
摘要:以下转载自安富莱电子: http://forum.armfly.com/forum.php vTaskDelete() API 函数任务可以使用 API 函数 vTaskDelete()删除自己或其它任务。任务被删除后就不复存在,也不会再进入运行态。空闲任务的责任是要将分配给已删除任务的内存释放掉。
阅读全文
摘要:以下转载自安富莱电子: http://forum.armfly.com/forum.php 本章节为大家讲解 FreeRTOS 的配置文件 FreeRTOSConfig.h 中每个选项的作用。初学的话,一定要有个了解,随着以后的学习一定要熟练操作每个配置选项。 基本配置: configUSE_PRE
阅读全文
摘要:以下基础知识转载自正点原子PDF资料。 前面例子 中创建的任务大部份时间都处于阻塞态。这种状态下所有的任务都不可运行,所以也不能被调度器选中。但处理器总是需要代码来执行——所以至少要有一个任务处于运行态。为了保证这一点,当调用 vTaskStartScheduler()时,调度器会自动创建一个空闲任
阅读全文
摘要:存储器种类存储器是计算机结构的重要组成部分。存储器是用来存储程序代码和数据的部件,有了存储器计算机才具有记忆功能。基本的存储器种类见图 22-1。 存储器按其存储介质特性主要分为“易失性存储器”和“非易失性存储器”两大类。其中的“易失/非易失”是指存储器断电后,它存储的数据内容是否会丢失的特性。由于
阅读全文
摘要:本章参考资料:《 STM32F4xx 中文参考手册》 DMA 控制器章节。学习本章时,配合《 STM32F4xx 中文参考手册》 DMA 控制器章节一起阅读,效果会更佳,特别是涉及到寄存器说明的部分。本章内容专业名称较多,内容丰富也较难理解,但非常有必要细读研究。 DMA 简介DMA(Direct
阅读全文
摘要:首先long double是C99引入的,但是如何printf格式化一个long double的数据的呢? scanf一个double数据,是%lf,printf一个float或者double都是%f。 但是输出一个long double是什么格式呢? 这个时候,我们需要c标准: 7 The len
阅读全文
摘要:用到的指令: 在创建游戏场之前,先要复习一个关于链接的知识: ln 命令即可创建硬链接,也可以创建符号链接。可以用其中一种方法来使用它:ln file link创建硬链接,和:ln -s item link创建符号链接,“item” 可以是一个文件或是一个目录。 硬链接硬链接和符号链接比起来,硬链接
阅读全文
摘要:函数说明:每一个已打开的文件都有一个读写位置, 当打开文件时通常其读写位置是指向文件开头, 若是以附加的方式打开文件(如O_APPEND), 则读写位置会指向文件尾. 当read()或write()时, 读写位置会随之增加,lseek()便是用来控制该文件的读写位置. 参数fildes 为已打开的文
阅读全文
摘要:今天看到这个问题,很有意思,记录下来复习有些遗忘的知识点。 先说答案,这句话是必须要的! 如果 a.c 中不写,那么编译器是不是会自动把 .h 文件里面的东西跟同名的 .c 文件绑定在一起?A:不会。 从C编译器角度看,.h和.c皆是浮云,就是改名为.txt、.doc也没有大的分别。换句话说,就是.
阅读全文
摘要:读常规文件是不会阻塞的,不管读多少字节,read一定会在有限的时间内返回。从终端设备或网络读则不一定,如果从终端输入的数据没有换行符,调用read读终端设备就会阻塞,如果网络上没有接收到数据包,调用read从网络读就会阻塞,至于会阻塞多长时间也是不确定的,如果一直没有数据到达就一直阻塞在那里。同样,
阅读全文
摘要:今天在端口复用时遇到了困惑,参考:http://www.51hei.com/bbs/dpj-40992-1.html 调整前的代码GPIO_PinAFConfig(GPIOA,GPIO_Pin_9,GPIO_AF_4);GPIO_PinAFConfig(GPIOA,GPIO_Pin_10,GPIO_
阅读全文
摘要:本章中主要讲解的是串口异步通讯,异步通讯中由于没有时钟信号, 所以两个通讯设备之间需要约定好波特率,即每个码元的长度,以便对信号进行解码 。 串口通讯的一个数据包从起始信号开始,直到停止信号结束。数据包的起始信号由一个逻辑 0 的数据位表示,而数据包的停止信号可由 0.5、 1、 1.5 或 2 个
阅读全文
摘要:read函数从打开的设备或文件中读取数据。 #include <unistd.h>ssize_t read(int fd, void *buf, size_t count);返回值:成功返回读取的字节数,出错返回-1并设置errno,如果在调read之前已到达文件末尾,则这次read返回0 读常规文
阅读全文
摘要:串行通讯与并行通讯按数据传送的方式,通讯可分为串行通讯与并行通讯,串行通讯是指设备之间通过少量数据信号线(一般是 8 根以下),地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。而并行通讯一般是指使用 8、 16、 32 及 64 根或更多的数据线进行传输的通讯方式,它们的通讯传输对比说
阅读全文
摘要:连接器的功能,是将一个可执行程序所需的目标文件和库文件最终整合为一体。一个程序通常包含传统的三个段,.test, .data, .bss段。连接器的功能就是将各个目标文件个库文件中的三个段进行合并。 重定位的概念 链接而生成的可执行程序虽然是放在文件中的,但当程序运行时需要加载到内存中。各段应该放在
阅读全文
摘要:objcopy的作用是拷贝一个目标文件的内容到另一个目标文件中。objcopy使用GNU BFD库去读或写目标文件。objcopy可以使用不同于源目标文件的格式来写目的目标文件(也即是说可以将一种格式的目标文件转换成另一种格式的目标文件)。objcopy在进行目标文件的转换时,将生成一个临时文件,转
阅读全文
摘要:官方资料整理测试: 多任务和单任务几乎没有差别。只用多创建一个或多个任务,其他地方和单任务时相同。 这里采用一个任务做LED灯闪烁,一个任务做蜂鸣器,可以看到两个任务展现出似乎同时运行的现象。 但是,其中有一个地方需要测试。 我们知道裸机中,优先级设置一样时,会看硬件编号,小的优先级高。 freer
阅读全文
摘要:本章参考资料《ARM Cortex™-M4F 技术参考手册》 -4.5 章节 SysTick Timer(STK), 和4.48 章节 SHPRx,其中 STK 这个章节有 SysTick 的简介和寄存器的详细描述。因为SysTick 是属于 CM4 内核的外设,有关寄存器的定义和部分库函数都在 c
阅读全文
摘要:原创(当然借鉴了官网资料^_^): 在之前的移植工作准备好之后,我们需要调用freertos提供给我们的API函数实现操作系统地运行。首先,第一个函数: 任务函数任务是由 C 语言函数实现的。唯一特别的只是任务的函数原型,其必须返回 void,而且带有一个 void 指针参数。void ATaskF
阅读全文
摘要:在嵌入式软件开发中,有时需要知道所生成的程序文件中的段信息以分析问题,或者需要查看c语言对应的汇编代码,此时,objdump工具就可以帮大忙了。obj——object dump:转储。 采用 -d选项,可以查看程序文件的汇编代码: 在使用-d进行反汇编时,另一个很有用的选项就是-S(大写),它的作用
阅读全文
摘要:编译器创建一个输出文件,这个文件包含了可重定位的对象。这些对象就是源程序中的数据和机器指令。 生成的具体信息可以见之前的博客:http://www.cnblogs.com/yangguang-it/p/6916769.html 的测试的输出。 写这个随笔是为了接应上一次的-> gcc,一个神奇的编译
阅读全文
摘要:extern int *x; extern int y[]; x是一个指向int类型的指针,y是一个int型数组,没有给出数组长度,是不完整类型,但是声明的时候数组的长度并不是必须,但我还是建议加上数组的维数,那样只看声明就能知道数组有多大。上面两个声明是不同的数据类型。 什么是声明,什么是定义?
阅读全文