Elmagnifico's Blog

云深不知归处

FreeRTOS Delay Bug

STM32,FreeRTOS

Foreword 首先是这样的一份代码,其含义很简单,通过使用 vTaskDelayUntil 函数 来保证这个 while 循 环是按照预设的频率执行,循环体需要严格保证时间间隔,频率过高可能会发生奇怪的有问题 #define SENSOR_IMU_UPDATE_INTERVAL_MS 1 // 1000HZ //in imu_init func ...

USB-Redirector

Tools

Foreword 之前的工作环境是在 ubuntu 下,由于经常要切换 ubuntu 和 win10 非常麻烦,所以用了虚拟机, 一直用的都是 VMware,但是 VMware 的图像显示能力太差了,加上机器自身也没有独显只有集显,Gvim中拖动分屏,各种马赛克,为了解决这个试用了 Hyper-V ,发现效果还可以,但是也有问题, Hyper-V 在 ubuntu 下不支持更高级的 Gue...

Vim 指令

Linux

Vim 基础帮助可以 直接在 vim 下输入 help 获得 前面会教你如何进行基础操作和跳转,这很重要,会了光标的移动和跳转之后,就可以查看 help 文件下各种命令,基本都是通过跳转来查看的。 在其中发现一个三十分钟的基础教程,在终端中输入 vimtutor 然后根据教程来操作,学习如何使用 vim ,大概有七章,都看过之后基础命令基本都会了 光标移动 基础移动 ...

SD卡驱动学习

STM32

SDMMC SDMMC是STM32手册中对于整个SD/SDIO/MMC接口的统称。 然后明白这里SD/SDIO/MMC的概念 MMC:MultiMediaCard ,即多媒体卡,容量大,耗电少,速率快,广泛用于消费类电子产品中。 SD卡:Secure Digital Mermory Card ,即安全数码卡,他是在MMC的基础上发展而来的,主要强调安全性,可以设定存储的使用权...

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