自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (8)
  • 收藏
  • 关注

原创 FreeRTOS调度器挂起与解除

通过分析任务切换,我们知道任务切换的两种方法:系统节拍器中断、调用portYIELD产生PendSV中断。在系统节拍器中断中,如果调度器被挂起,仅仅将调度器挂起时间加一(在解除挂起后需要补偿这些节拍),并不会检查是否有任务需要切换。/* 系统节拍加一 */BaseType_t xTaskIncrementTick(void){ BaseType_t xSwitchRequired ...

2019-02-28 19:56:27 3121 6

原创 FreeRTOS任务切换

任务切换一共两种方式:系统节拍器中断、调用portYIELD。但是,最终都是产生PendSV中断。/* SysTick异常处理入口 */void xPortSysTickHandler(void){ /* 禁止不高于系统调用优先级的中断 */ vPortRaiseBASEPRI(); { /* 提供系统节拍,并判断是否需要切换任务 */ if(xTaskIncrementT...

2019-02-28 18:00:47 1210

原创 FreeRTOS调度器启动

 在真正启动调度器之前,先创建空闲任务,初始化一些变量。真正启动调度器的函数是xPortStartScheduler/* 启动调度器 */void vTaskStartScheduler( void ){ BaseType_t xReturn; #if (configSUPPORT_STATIC_ALLOCATION == 1) { StaticTask_t *pxIdleT...

2019-02-27 17:26:11 727

原创 FreeRTOS任务创建

 任务创建函数BaseType_t xTaskCreate(TaskFunction_t pxTaskCode, const char *const pcName, const configSTACK_DEPTH_TYPE usStackDepth, void *const pvParameter...

2019-02-27 15:47:47 490

原创 FreeRTOS列表

内核中有很多双向列表,这些列表可以挂接很多列表项,每条列表都有一个确定的尾节点、列表当前指针、列表项个数/* 列表结构体 */typedef struct xLIST{ listFIRST_LIST_INTEGRITY_CHECK_VALUE configLIST_VOLATILE UBaseType_t uxNumberOfItems; /* 列表项个数 */ ListItem...

2019-02-26 14:18:09 270

原创 FreeRTOS内存管理

堆空间是一个数组,configTOTAL_HEAP_SIZE表示堆空间大小,在FreeRTOSConfig.h中宏定义/* 由应用程序创建堆区,大小为configTOTAL_HEAP_SIZE */#if (configAPPLICATION_ALLOCATED_HEAP == 1) extern uint8_t ucHeap[configTOTAL_HEAP_SIZE];/* 由内核...

2019-02-26 10:36:30 1969

原创 FreeRTOS移植到STM32F103

1.创建工程 2.将FreeRTOS源码,拷贝到工程目录 3.删除其它架构和编译器的代码查看portable文件夹发现MemMang为内存管理相关文件需要保留Commom里面有个mpu相关代码,我们不使用mpu,可以删除我们的开发环境是keil,打开keil文件夹,提示我们参照RVDS,因此保留RVDS,其它删除打开RVDS文件夹...

2019-02-25 15:20:32 2199

原创 FreeRTOS源码获取

1.进入官网:https://www.freertos.org2.进入下载页面3.下载源码4.提取源码5.查看FreeRTOS源码

2019-02-25 10:10:41 572

原创 STM32之SDIO例程

移植ST官方demo,做了部分修改#include "stm32f10x.h"#include "sdio_sd.h"/* RCC时钟配置 */void RCC_config(void){ ErrorStatus HSEStartUpStatus; /* RCC寄存器设置为默认配置 */ RCC_DeInit(); /* 打开外部高速时钟 */ RCC_HSEConf...

2019-02-21 14:12:21 3551 3

原创 STM32之SDIO原理

1 SD的协议  1.1  SD卡协议目前已经发展到了V4.1,可以去SD协会官网下载.官网的文件N多个,此刻最需要的是 Part1 Physical Layer...这个.其他的文档作用不妨参考下图了解一下吧.不过下载的是精简版,每年交N多美金成为SD协会的会员才能搞到完整版.                                                      ...

2019-02-21 13:55:06 5866

原创 STM32之内部FLASH例程

#include "stm32f10x.h"#include <string.h>/* STM32 内部 FLASH 配置 */#define STM32_FLASH_SIZE 512 /* 所选STM32的FLASH容量大小(单位为K) */#if STM32_FLASH_SIZE < 256 #define STM_SECTOR_SIZE ...

2019-02-19 13:33:37 2653 1

原创 STM32之内部FLASH原理

不同型号的 STM32,其 FLASH 容量也有所不同,最小的只有 16K 字节,最大的则达到了 1024K 字节。市面上 STM32F1 开发板使用的芯片是 STM32F103系列,其 FLASH 容量一般为 512K 字节,属于大容量芯片。大容量产品的 Flash 模块组织结构如图 40.1.1 所示:STM32F1 的闪存(Flash)模块由:主存储器、信息块和闪存存储器接口寄存器等...

2019-02-19 11:02:52 20210 4

原创 STM32之FSMC-SRAM例程

SRAM使用的是55ns的IS62WV51216,需要先分析IS62WV51216对读写的时序要求。读时序 分析时序图,可以提取如下信息(不分析高低字节位和使能位,因为FSMC访问模式是一直保持的):整个读周期大于55ns、地址建立时间55ns且读使能25ns才能确保输出数据 写时序分析时序图,可以提取如下信息(不分析高低字节位和使能位,因为FSMC访问模式是一直保持的...

2019-02-17 23:11:47 5533

原创 STM32之FSMC-SRAM/NOR原理

FSMC,即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储器卡连接,STM32F4 的 FSMC 接口支持包括 SRAM、 NAND FLASH、 NOR FLASH 和 PSRAM 等存储器。所有的外部存储器共享地址、数据和控制信号,但有各自的片选信号。FSMC一次只能访问一个外部器件。 STM32的FSMC主要功能:(详情看手册)● 支持对同步器件(NOR...

2019-02-17 22:59:49 1503

原创 STM32之SysTick例程

#include "stm32f10x.h"/* RCC时钟配置 */void RCC_config(){ ErrorStatus HSEStartUpStatus; /* RCC寄存器设置为默认配置 */ RCC_DeInit(); /* 打开外部高速时钟 */ RCC_HSEConfig(RCC_HSE_ON); /* 等待外部高速时钟稳定 */ HSEStartU...

2019-02-15 17:56:34 581

原创 STM32之SysTick原理

一、STM32的SysTick简介   SysTick是一个24位的系统节拍定时器system tick timer,SysTick,具有自动重载和溢出中断功能,所有基于Cortex_M3处理器的微控制器都可以由这个定时器获得一定的时间间隔。systick的作用:  在单任务引用程序中,因为其架构就决定了它执行任务的串行性,这就引出一个问题:当某个任务出现问题时,就会牵连到后续的任务,...

2019-02-15 17:17:06 2250

原创 STM32之DAC例程

#include "stm32f10x.h"/* RCC时钟配置 */void RCC_config(){ ErrorStatus HSEStartUpStatus; /* RCC寄存器设置为默认配置 */ RCC_DeInit(); /* 打开外部高速时钟 */ RCC_HSEConfig(RCC_HSE_ON); /* 等待外部高速时钟稳定 */ HSEStartU...

2019-02-15 16:37:44 2761

原创 STM32之DAC原理

1.DAC模块1.数模转换功能2.可以配置为8位和12位模式(8位右对齐,12位左对齐,12位右对齐)3.DAC模块有两个单独的控制器,每个通道有着单独的转换器,可以独立转换,也可以同时转换4.可以实现噪声波形和三角波形的生成5.每个通道有着DMA功能6.图示:PS:左上方为一些触发的条件,左下方为一些数字电源(VDDA,VSSA)Vref+为参考电压,DAC_...

2019-02-15 16:29:10 3344

原创 STM32之通用定时器编码器模式

1、编码器原理如果两个信号相位差为90度,则这两个信号称为正交。由于两个信号相差90度,因此可以根据两个信号哪个先哪个后来判断方向、根据每个信号脉冲数量的多少及整个编码轮的周长就可以算出当前行走的距离、如果再加上定时器的话还可以计算出速度。 2、为什么要用编码器从上图可以看出,由于TI,T2一前一后有个90度的相位差,所以当出现这个相位差时就表示轮子旋转了一个角度。但有人会问了...

2019-02-15 16:16:48 22745 16

fastboot驱动和工具

windows平台下的fastboot驱动和工具,用于在uboot下烧录各种镜像到存储器中。

2018-12-25

dnw_for_linux

dnw是linux环境下使用usb启动三星arm处理器时的配套工具。

2018-07-17

modbus源码

modbus文档、freemodbus移植模板、linux插件freemodbus、freemodbus源码注释

2018-06-28

CANOpen资料

CANOpen源代码注释、协议资料和ppt、主站移植模板、从站移植模板。

2018-03-25

C语言ntp协议

c语言udp实现

2017-04-19

经纬度计算日出日落时间

C语言,根据经纬度计算日出、日落、天黑、天亮时间

2017-04-17

C语言ntp协议获取网络时间

2017-04-12

经纬度计算日出日落时间(C语言)

2017-04-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除