freertos

RT1052在配网自动化终端的应用

牧云@^-^@ 提交于 2020-04-30 10:48:56
相关推荐: https://www.forlinx.com/article_view_262.html 一、FTU简介 配网自动化终端具有遥控、遥信,故障检测功能,并与配电自动化主站通信,提供配电系统运行情况和各种参数即监测控制所需信息,包括开关状态、电能参数、相间故障、接地故障以及故障时的参数,并执行配电主站下发的命令,对配电设备进行调节和控制,实现故障定位、故障隔离和非故障区域快速恢复供电功能。 二、FTU功能介绍 交流量采集:采集三相交流电压、电流 (3U3I) 实现电压、电流、零序电压、零序电流、有功功率、无功功率、功率因数、频率的测量和计算 直流量采集,2路直流输入 状态量采集:开关状态、接地刀闸状态采集 113次谐波分量计算、三相不平衡度的分析计算 遥信输入(无源,24V)和遥控输出(合、分闸、常开触点) 事件顺序记录、历史数据、主站下发信息可当地存储 支持IEC 608705101、IEC 608705104、CDT92、DNP3.0、MODBUS 等多种常用规约 (FTU参考设计不包含规约部分) 支持多种通讯方式,提供多路通讯接口,提供2路RS 232或2路RS485 +2 路 10M/100M自适应以太网口。 配置GPRS模块 具备故障检测及故障判别功能:过流、过负荷; 配备后备电源,当主电源供电不足或消失时,能自动无缝投入; 具备对时功能,支持SNTP

【STM32-V7】STM32H743XIH6开发板,丰富软件资源,强劲硬件配置,大量软件解决方案持续更新中(2020-04-06)

…衆ロ難τιáo~ 提交于 2020-04-24 16:18:04
说明: 争取做更多的实战性应用,分享更多的嵌入式技术,希望能在实际项目中帮到大家。 (1)V7将大力加强对初学者的支持力度, 已经更新至75章 , 下载 链接 ,后边章节和一批视频教程将加紧制作。 (2)事隔五年之后,开启第2版DSP数字信号处理和CMSIS-NN神经网络教程,同步开启三代示波器,已经发布前23章 链接 。 (3)新版RL-TCPnet V7.X网协议栈和物联网教程开始更新,配RTX5和FreeRTOS两版本,更新至第10章, 下载链接 。 (4)LwIP网络教程开始更新,使用MDK的RTE环境开发,配套RTX5和FreeRTOS两个版本,更新至第7章, 下载链接 。 软件: 1、开发板预装出厂程序,各种外设驱动包全做好了,可以检测全部硬件功能。 2、例子保持MDK5和IAR8两个版本,选做Embedded Studio的GCC版。 3、开发板的大部分API和驱动包延续V4,V5和V6开发板命名和实现方法,老客户基本可以无痛学习。 硬件: 1、核心板是6层,底板是4层。 2、核心板大小34.5mm * 34.5mm,跟F429BIT6大小差不多。 3、核心板引出172个GPIO,底板引出上百个GPIO排针,含多路FMC高速扩展IO排针。 4、核心板板载32MB的32位带宽SDRAM和32MB的QSPI,显示屏采用24bit的RGB888硬件接口。 5

What determines where the exception frame goes on Cortex-M4?

半腔热情 提交于 2020-04-17 21:47:47
问题 I'm struggling with an exception stack frame writing over my local/automatic/stack variables. I'm using FreeRTOS 8.2.1 and Microchip ASF for SAM4L Developing with Eclipse MCU 2018/09 and Segger J-Link 6.40. [EDIT] The very first time through the loop, r7 has a different value (0x200044D0), which looks like it might be the correct value (same as SP). I'm thinking now that r7 is being changed while waiting on an RTOS message queue, which happens at the top of the loop (but not the first time

FreeRTOS学习笔记之-------FreeRTOS信号量(二值信号量)基础知识 2020.4.10

一世执手 提交于 2020-04-12 07:40:33
知识点: 1.信号量常常用于控制 对共享资源的访问 和 任务同步 ,用通俗的话来说, 信号量就是媒介 。 2.信号量用于控制共享资源访问的场景相当于一个上锁机制,代码只有获得了这个锁的钥匙才能够执行。 3.裸机编写中断服务函数的时候,一般只是在中断服务函数中打个标记,然后在其他地方根据标记来做具体的处理过程,使用RTOS系统的时候,则可以借助信号量完成此功能。 4.信号量常常用于中断与任务之间的 同步 ,或者任务与任务之间的 同步 ,大家需要清楚这里同步的含义,其实也将相当于一个中断标志位。 5.互斥信号量具有优先级继承机制,而二值信号量没有优先级继承。 6.和队列一样,信号量API函数允许设置一个阻塞时间,阻塞时间是当任务获取信号量的时候由于信号量无效而导致任务进入阻塞态的最大时钟节拍数。 7.这里为了让大家更好的理解 同步 的含义,特意画了一张图,供大家观看。 8.二值信号量是在队列的基础上实现的,所以创建二值信号量就是创建队列的过程。 点赞 1 收藏 分享 文章举报 致敬!!! 发布了38 篇原创文章 · 获赞 81 · 访问量 8130 私信 关注 来源: oschina 链接: https://my.oschina.net/u/4414213/blog/3230451

RT1052在配网自动化终端的应用

我们两清 提交于 2020-04-09 01:15:37
一、FTU简介 配网自动化终端具有遥控、遥信,故障检测功能,并与配电自动化主站通信,提供配电系统运行情况和各种参数即监测控制所需信息,包括开关状态、电能参数、相间故障、接地故障以及故障时的参数,并执行配电主站下发的命令,对配电设备进行调节和控制,实现故障定位、故障隔离和非故障区域快速恢复供电功能。 二、FTU功能介绍 交流量采集:采集三相交流电压、电流 (3U3I) 实现电压、电流、零序电压、零序电流、有功功率、无功功率、功率因数、频率的测量和计算 直流量采集,2路直流输入 状态量采集:开关状态、接地刀闸状态采集 113次谐波分量计算、三相不平衡度的分析计算 遥信输入(无源,24V)和遥控输出(合、分闸、常开触点) 事件顺序记录、历史数据、主站下发信息可当地存储 支持IEC 608705101、IEC 608705104、CDT92、DNP3.0、MODBUS 等多种常用规约 (FTU参考设计不包含规约部分) 支持多种通讯方式,提供多路通讯接口,提供2路RS 232或2路RS485 +2 路 10M/100M自适应以太网口。 配置GPRS模块 具备故障检测及故障判别功能:过流、过负荷; 配备后备电源,当主电源供电不足或消失时,能自动无缝投入; 具备对时功能,支持SNTP 目前市面上很多客户采用MCU+MPU双处理器架构

FreeRTOS 移植到WIN10

我的未来我决定 提交于 2020-03-20 16:03:33
背景 标题表述的不准确,大意是移植到WIN10的PC机,Intel I5。 最近因为项目接触了FreeRTOS 实时操作系统,想对这个操作系统有一个更深入的了解,所以决定下载源码看看,下面这个链接的随书一起的源码。 FreeRTOS 源码下载链接: http://freertos.org/Documentation/RTOS_book.html 打开源码,看到它的portable/目录针对的是 "MSVC-MingW",应该在PC机上编译通过。 开发环境 嫌VS体积太大了,就用CodeBlocks吧。需要从 CodeBlocks 官网下载带"mingw"的版本,例如: codeblocks-16.01mingw-setup.exe 下载页面: http://www.codeblocks.org/downloads/26 安装、新建工程就不详细写了,复制FreeRTOS整个目录到CodeBlocks工程目录,添加如下文件到CodeBlocks 工程,我这里只添加了一个demo到工程。 编译、链接问题的解决 编译可能提示找不到文件"FreeRTOS.h",别着急,应该是这个文件没有添加到搜索路径,打开"Project build options" 然后添加如下文件到 "Search Directories" 就可以了。 头文件问题解决了,但是又出现了其他的问题,例如这个函数

FreeRtos——移植

流过昼夜 提交于 2020-03-20 15:59:53
现在准备的简单程序LED灯的工程目录中增加freertos文件夹: 在 source目录下的portable目录下只留下下面的文件夹: 为什么呢? 把对应文件移植在工程中之后,添加头文件路径如下图: 编译之后,报错如下: 提示少了配置文件,那么我们可以在官方demo文件目录下复制一个到我们工程中来。 这个时候需要观察一下这个config.h文件, 这里更改一点代码: 那个条件编译最后就是为了定义CLOCK_HZ的,cpu的频率根据硬件平台的不同,要做适当处理,所以我们直接把这个宏定义出来,180M系统时钟。 这个时候再编译,还是报错: 再编译: 没有报错了,但是我们有必要贴出这个config.h文件来说明我们采取不更改启动文件用宏实现port.c的中断服务函数和启动文件相连接: /* FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. This file is part of the FreeRTOS distribution. FreeRTOS is free software; you can redistribute

FreeRTOS多任务(LED + BEEP)

余生颓废 提交于 2020-03-20 15:16:32
函数流程 int main(void) { /* 第一步:开发板硬件初始化 */ BSP_Init(); /* 第二步:创建APP应用任务,所有的应用任务都可以放在这个函数里面 */ AppTaskCreate(); /* 第三步:启动FreeRTOS,开始多任务调度,启动成功则不返回 */ vTaskStartScheduler(); while (1) { } } 创建APP应用任务, static void AppTaskCreate(void) { xTaskCreate(vTaskLed1, /* 任务函数名 */ "Task Led1", /* 任务名,字符串形式,方便调试 */ 512, /* 栈大小,单位为字,即4个字节 */ NULL, /* 任务形参 */ 0, /* 优先级,数值越大,优先级越高 */ &xHandleTaskLED1); /* 任务句柄 */ xTaskCreate(vTaskBeep,"Task Beep",512,NULL,2,&xHandleTaskBeep); } pvTaskCode 任务只是永不退出的 C 函数,实现通常是一个死循环。参数pvTaskCode 只是一个指向任务的实现函数的指针(效果上仅仅是函数名)。 pcName 具有描述性的任务名。这个参数不会被 FreeRTOS 使用。其只是单纯地用于辅助调试

CodeSonar如何帮助无人机查找软件缺陷?

我只是一个虾纸丫 提交于 2020-02-28 06:32:31
Crazyflie是Bitcraze售卖的可编程无人机,它被设计成为可被修改的并为其操纵装置和操作系统运行的开源软件。特别是这架无人机使用了FreeRTOS作为其实时的操作系统。 通过CodeSonar运行Crazyflie的代码,发现Crazyflie中的一个故障由应用程序代码中的一个未初始化变量引起,该变量随后被传递到FreeRTOS API。幸运的是,由于应用程序和RTOS的代码均为可用,CodeSonar迅速诊断出该故障。 在可免费获取源代码的地方使用RTOS,其优势是可以分析到所有的应用程序,包括对RTOS API的调用。操作系统通常是一个发送参数的黑洞,而静态分析将无法理解会发生什么情况(二进制的CodeSonar也为此提供了解决方案)拥有底层操作系统的源代码具有检测、分析缺陷和漏洞的优势。 免费体验 : http://www.softtest.cn/ 来源: oschina 链接: https://my.oschina.net/watertek/blog/3160327

FreeRTOS——支持时间片

北慕城南 提交于 2020-02-19 13:42:51
所谓时间片就是同一个优先级任务下可以有多个任务,每个任务轮流的享有相同的CPU时间,享有CPU的时间我们叫做时间片。在RTOS中,最小的时间单位是一个tick,即 SysTick 的中断周期。对于FreeRTOS,时间片只能是一个tick。与其说FreeRTOS支持时间片,倒不如说他的时间片就是正常的任务调度。 一、原理分析 之 所 以 在 同 一 个 优 先 级 下 可 以 有 多 个 任 务 , 最 终 还 是 得 益 于taskRESET_READY_PRIORITY()和taskSELECT_HIGHEST_PRIORITY_TASK()这两个函函数的实现方法。接下来我们分析下这两个函数是如何在同一个优先级下有多个任务的时候起作用的。 系统在任务切换的时候总会从就绪列表中寻找优先级最高的任务来执行,寻找优先级最高的任务这个功能由taskSELECT_HIGHEST_PRIORITY_TASK()函数来实现,该函数在task.c 中定义。 taskSELECT_HIGHEST_PRIORITY_TASK ()函数 # define taskSELECT_HIGHEST_PRIORITY_TASK()\ {\ UBaseType_t uxTopPriority;\ /* 寻找就绪任务的最高优先级 */ \ ( 1 ) portGET_HIGHEST_PRIORITY (