Elmagnifico's Blog

云深不知归处

STM32 _main 里做了什么

嵌入式,bootloader,_main

Foreword 启动流程: STM32 _main 里做了什么 这里是对STM32f767的分析 编译之后的各种大小: Program Size: Code=5190 RO-data=562 RW-data=16 ZI-data=1944 转换成hex也就是 Code=0x1446 RO-data=0x232 RW-data=0x10 ZI-data=0x798 下...

Atom插件

pdf,packages,view

Atom安装 首先Atom虽然安装很快,而且安装包很小,但是其依赖项却很大很多。 通过cmd窗口 apm -v 可以查看atom需要的依赖项有什么 >apm -v apm 1.15.3 npm 3.10.5 node 4.4.5 x64 python git 2.12.0.windows.1 visual studio 在Windows平台上 Visual studio ...

回调函数

c/c++,callback

回调函数的定义 网上一搜,回调函数的定义或者说明真的是一大把,看的我自己都稀里糊涂的,没闹明白到底什么是回调函数。 现在先例举三种回调函数的解释: 对普通函数的调用:调用程序发出对普通函数的调用后,程序执行立即转向被调用函数执行,直到被调用函数执行完毕后,再返回调用程序继续执行。从发出调用的程序的角度看,这个过程为“调用–>等待被调用函数执行完毕–>继续执行...

FreeRTOS中port源文件分析

嵌入式,FreeRTOS,port

port port文件一般都是跟平台相关的,所以不同平台下的这个文件也略有不同。 portmacro.h portmacro.h 主要包括两部分内容,第一部分定义了一系列内核代码中用到的数据类型。FreeRTOS 与 uC/OS-II 一样,并不直接使用char、int 等这些原生类型,而是将其重新定义为一系列以port开头的新类型。在uC/OS-II的移植代码中,通常采用 typed...

FreeRTOS中croutine源文件分析

嵌入式,FreeRTOS,croutine

协程 在FreeRTOS中中,使用到了一种C语言实现的多任务计数,专业的定义叫做协程(coroutine),顾名思义,这是一种协作的例程, 跟具有操作系统概念的线程不一样,协程是在用户空间利用程序语言的语法语义就能实现逻辑上类似多任务的编程技巧。 意思就是说协程不需要每次调用的时候都为任务准备一次空间,我们知道像ucos这种操作系统,它内置的多任务是需要在中断过程中切换堆栈的,开销较大,...

协程到底是怎么一回事

嵌入式,FreeRTOS,croutine

线程 线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。 另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使...

FreeRTOS中heap源文件分析(四)

嵌入式,FreeRTOS,heap

heap源文件分析 总算到了heap_4,这个方案基本算是FreeRTOS中非常常用的内存管理方案了。 heap_4与heap_2一样都使用了最佳匹配算法,但不像方案2那样,不能合并相邻的空闲内存区域,它会将相邻的空闲内存块合并成一个更大的块(包含一个合并算法)。 heap_4.c功能简介 可用于重复分配、删除任务、队列、信号量、互斥量等等的应用程序。 可以用于分配和释放随...

FreeRTOS中heap源文件分析(五)

嵌入式,FreeRTOS,heap

heap源文件分析 heap_5.c 是在V8.1.0版本新增的 我们之前说了heap_4会出现的碎片问题,这个方案同样实现了heap_4.c中的合并算法,并且允许堆栈跨越多个非连续的内存区。 也就是说我们初始化设置的堆栈空间可以不连续,可以有多块堆栈空间共通作为内存来使用。 heap_5.c功能简介 可用于重复分配、删除任务、队列、信号量、互斥量等等的应用程序。 可以用...

FreeRTOS中event_groups源文件分析

嵌入式,FreeRTOS,heap

event_groups源文件分析 /** * An event group is a collection of bits to which an application can assign a * meaning. For example, an application may create an event group to convey * the status of v...

FreeRTOS中heap源文件分析(二)

嵌入式,FreeRTOS,heap

heap源文件分析 heap_2与heap_1不同,它使用最佳匹配算法,会选择最合适的内存大小来分配,但是他不会合并相邻的空闲内存,造成的后果自然就是会有内存碎片,或者说内存碎片多的情况下,可能造成无法分配的情况。 heap_2功能简介 heap_2可以释放内存,可以用于重复的分配和删除具有相同堆栈空间的任务、队列、信号量、互斥量等等,并且不考虑内存碎片的应用程序。 不能用在...