Elmagnifico's Blog

云深不知归处

STM32启动方式分析

嵌入式,boot,STM32

STM32F767启动方式分析 一般嵌入式开发流程就是先建立一个工程,再编写源文件,然后进行编译,把所有的.s文件和.c文件编译成一个.o文件,再对目标文件进行链接和定位,编译成功后会生成一个.hex文件和调试文件,接下来要进行调试,如果成功的话,就可以将它固化到flash里面去。 启动代码是用来初始化电路以及用来为高级语言写的软件作好运行前准备的一小段汇编语言,是任何处理器上电复位时的...

FreeRTOS中list源文件分析

嵌入式,FreeRTOS,list

list源文件分析 之所以先拿list分析,是因为list与其系统核心部分关联比较小,而且又只是链表,比较容易理解。 其实最重要的是list文件很短… 环境 编译环境:keil 固件库:Keil.STM32F7xx_DFP.2.9.0 目标开发板:STM32F767IG 目标系统:FreeRTOS 9.0 注释 老样子,先来看看文件注释说了什么,如何介绍这个文件的。 /*...

FreeRTOS移植到STM32F767(二)

嵌入式,FreeRTOS,STM32F767

移植FreeRTOS到STM32F767 经过前面的移植,基本上已经有一个可用的工程了,但是这样还不够,目前也只是拿demo的剪裁版本来用,可能并不是我们想要的。 接下来就要介绍如何配置FreeRTOS,如何剪裁自己想要的系统。 环境 编译环境:keil 固件库:Keil.STM32F7xx_DFP.2.9.0 目标开发板:STM32F767IG 目标系统:FreeRTOS 9...

FreeRTOS移植到STM32F767(一)

嵌入式,FreeRTOS,STM32F767

移植FreeRTOS到STM32F767 环境 编译环境:keil 固件库:Keil.STM32F7xx_DFP.2.9.0 目标开发板:STM32F767IG 目标系统:FreeRTOS 9.0 第一步.获取源码 首先是要下载源码: http://www.freertos.org/a00104.html 解压出来以后,先介绍一下源码的目录结构 FreeRT...

FreeRTOS学习准备(二)

嵌入式,FreeRTOS,学习

嵌入式操作系统 学习之前先了解一下,目前市面上都有些啥嵌入式操作系统 embOS embOS is a priority-controlled real time operating system, designed to be used as foundation for the development of embedded real-time applications. I...

FreeRTOS学习准备(一)

嵌入式,FreeRTOS,学习

操作系统 以我的理解,从大方面来说,操作系统介于底层硬件和用户之间,他封装了底层驱动,对上统一接口,进而方便了上层软件开发。但不仅仅是这些,他介于二者之间,成为了硬件资源的管理者,为上层提供资源使用接口,进而完成用户所需要的功能。 一般来说,一个现代操作系统需要具备以下的各种功能。 进程管理(Processing management) 内存管理(Memory managem...

APM中的Schedule Starved

嵌入式,驱动,Timeout

相关代码 void Copter::loop() { // wait for an INS sample while (ins_sample_time + 2500 > micros()) { if ((ins_sample_time + 2500) - micros() > 1500) delay(1); else if ((ins_sample_time...

嵌入式底层驱动中时序等待超时处理

嵌入式,驱动,Timeout

超时代码 //来源于STM32F4系列官方标准例程 uint8_t sFLASH_SendByte(uint8_t byte) { /*!< Loop while DR register in not emplty */ while (SPI_I2S_GetFlagStatus(sFLASH_SPI, SPI_I2S_FLAG_TXE) == RESET); /*...

C++中Enum与array的最后一个逗号

c/c++,enum,array,comma

编译环境 Visual Studio 2013 标准C++控制台程序 Keil 5 STM32F407 C++工程 编译没报错?? 在检查飞控工程的时候,在usb程序里的头文件,突然发现竟然有enum类型,最后多了一个逗号,竟然还通过了编译没报错,搞得我还以为是keil的bug typedef enum { HC_IDLE = 0, HC_XFRC, HC_HALT...

C++中坑人的fstream(二)

c/c++,fstream

编译环境 Visual Studio 2013 标准C++控制台程序 我的问题 紧接着上一篇,在这里发出我遇到的问题 #include "stdafx.h" #include <iostream> #include <fstream> #include <string> using namespace std; int _tmain(int...