freertos

stm32软件编程的框架及注意事项——rtos篇

北慕城南 提交于 2021-02-16 10:32:52
0、通常,嵌入式软件(这里指单片机系统)的框架千变万化,有带rtos的,也有裸机的。 0.1、写过带系统的,也写过裸机的,这里总结一下两个类型的框架,记录下自己的心得,主要是文字描述,框架图可以后期添加。 1、freertos框架 1.1、使用标准库,网上有很多一直教程,也有现成移植好的,如果自己使用,可以在config文件下,自己需要根据项目的大小进行系统的裁剪,这方面的教程有很多,官方的,原子的,野火的等等。 1.2、使用hal库,可以直接使用freertos的中间件,在代码中,cubemx其实已经把freertos的接口函数封装了一遍,以至于和原来的freertos的接口函数不一样的,但是实现的功能是一样的,这个宗旨是不能变的。项目中通常采用1000hz的调度频率。 但是使用的方法有些不一样,比如延时函数等,这个可以参考stm32方面的教程,文档名称是《STM32 嵌入式操作系统介绍》(或《STM32RTOS培训_嵌入式操作系统介绍》)这个文档介绍了基本的使用方法。尤其是接口函数的使用。英文也有: https://arm-software.github.io/CMSIS-FreeRTOS/General/html/index.html 1.3、在cubemx中,可以进行系统的裁剪,可以分配多少空间给任务,默认是128字(128×4个字节),最后可以看看还剩多少空间

华尔街证实!中芯国际官方回应也来了...

99封情书 提交于 2021-02-16 03:39:33
突发:昨日,一则信件疯传朋友圈。路透社、华尔街相继发出报道,美国政府已经对中芯国际施加出口限制,拉入贸易黑名单。多家外媒 报道相对可靠,该来的终归会来... 美国商务部正式向美国电脑芯片产业(the computer-chip industry)发出了一封信件,该信件明确提出制裁中芯国际—— 《华尔街日报》表示其亲眼看到了这份信件的复件。 路透社称,美国政府之所以对这家中国最大的芯片制造商进行出口限制,是因为美方认为出口给中芯国际的设备存在用于军事的风险,而且这种风险是“无法接受”的。 制裁名义很简单:军事相关。 路透社:中芯国际已被美国拉入“黑名单”芯榜:微信icrankcn (截图来自路透社的报道) (FT金融时报) 相关新闻链接: https://www.ft.com/content/7325dcea-e327-4054-9b24-7a12a6a2cac6?shareType=nongift https://www.wsj.com/articles/u-s-sets-export-controls-on-chinas-top-chip-maker-11601118353 路透社:中芯国际已被美国拉入“黑名单”芯榜:微信icrankcn (网上流传、路透社确认的信件) 路透社:中芯国际已被美国拉入“黑名单”芯榜:微信icrankcn

用CubeMX开发HAL学习记录(一)

痴心易碎 提交于 2021-02-14 15:31:43
用CubeMX开发HAL学习记录(一) 前言 一、CubeMX基本特点 1、集成MCU Finder功能,便于用户进行芯片选型 2、图形化方式配置时钟、片内外设,自动生成初始化代码 3、具有强大的适应性 4、提高开发效率 二、CubeMX下载 1.CubeMX软件下载 2.安装环境 3.注意事项 4.固件包导入 三、CubeMX生成文件介绍 1.MCU固件包 2.界面介绍 3.常规配置 总结 前言 笔者还是一名大二学生,目前正在学习CubeMX的开发,自己想通过写博客来加深自己的学习印象,如有不妥请指正。 一、CubeMX基本特点 1、集成MCU Finder功能,便于用户进行芯片选型 STM的芯片种类众多引脚封装也不尽相同,用户可以更具自己需要的内核,引脚封装类型和开发型号选择自己所需要的那一款MCU。 2、图形化方式配置时钟、片内外设,自动生成初始化代码 STM的时钟树都十分庞大且复杂,不同的外设对应着不同的时钟源,因此对照技术手册一面面的寻找总线,和时钟倍频设置是十分复杂的,而CubeMX可以直接越过这些基础操作,只对逻辑层进行编辑,极大的节省了时间成本。但不需要配置寄存器或库函数不代表你不需要去了解时钟树,学习STM的人必须先经过时钟树的洗礼(本文建议结合CubeMX的时钟树和B站正点原子的时钟树对比学习) B站原子哥时钟树:https://www.bilibili.com

社区新人的RT-Thread学习笔记9——PIN 设备

倖福魔咒の 提交于 2021-02-11 15:54:34
作者: sanjay 来源: CSDN 前言 本文主要学习RT-Thread的设备驱动框架之PIN 设备,这里以及后面更新的博客内容将不会详细介绍I/O 设备模型,当学习PIN 设备以及其他设备需要对I/O 设备模型有所了解,请和我一样刚学习RT-Thread的朋友们先自行到《RT-Thread编程指南》看一下I/O 设备模型。这里主要讲解如何访问PIN 设备,针对PIN设备各个函数讲解,以及教你如何基于PIN设备实现自己的GPIO驱动以及基于外部GPIO的外部中断实现,详细的gpio驱动文件的各个函数,学完PIN 设备就可以基于自己的开发板制作一个属于自己的bsp的GPIO驱动文件。本文讲的都是以STM32作为硬件设备的。 一、RT-Thread的架构 学习过FreeRTOS或UCOS的朋友都知道,这两个实时操作系统只有内核,RT-Thread不像FreeRTOS或UCOS, 它不仅仅有内核,还有设备驱动框架(如PIN 设备、I2C 设备、UART设备等)、丰富的上层组件和软件包,而软件包更是做了MQTT、LWM2M等协议,因此,RT-Thread是一个IoT OS,功能强大,这也是我为什么喜欢RT-Thread,学习RT-Thread的原因。 RT-Thread 软件框架图(来源RT-Thread编程指南) 二、I/O 设备模型框架 RT-Thread 提供了一套简单的 I/O

FreeRTOS 移植

不问归期 提交于 2021-02-10 08:01:23
首先准备好一个简单的裸机工程模板,工程模板的制作就不做讲解了,这里的重点是教大家移植FreeRTOS系统。: 准备好工程模板后,就可以开始移植了。首先要做的就是将所有需要的源码文件放到工程模板里面 。下面分六步和大家进行说明,当然,不限制必须使用下面的方法添加源码到工程,只要将需要的文件添加到工程模板即可。 第1步 :从网址 https://sourceforge.net/projects/freertos/files/FreeRTOS/V8.2.3/ 下载V8.2.3版本,这个是8.X系列里面最高版本了,9.0版本还处于测试阶段,我们暂不使用。 FreeRTOSV8.2.3.zip 和FreeRTOSV8.2.3.exe内容是一样的,只是后缀为exe的压缩率更高些。下载后解压出来。 第2步 :在工程模板创建FreeRTOS文件夹 第3步 :添加源码文件到相应文件夹 (1) 将FreeRTOSV8.2.3软件包中路径:    FreeRTOSV8.2.3\FreeRTOS\Source里面如下所有文件 复制到刚刚创建的FreeRTOS文件夹下。 (2) 文件夹User中还需要添加如下文件: 文件FreeRTOSConfig.h文件 在FreeRTOSV8.2.3软件包中的中的路径: FreeRTOSV8.2.3\FreeRTOS\Demo\CORTEX_M4F

C++ freeRTOS Task, invalid use of non-static member function

雨燕双飞 提交于 2021-02-07 09:13:51
问题 Where is the Problem? void MyClass::task(void *pvParameter){ while(1){ this->update(); } } void MyClass::startTask(){ xTaskCreate(this->task, "Task", 2048, NULL, 5, NULL); } But, I get this: error: invalid use of non-static member function I cannot find any useful doc to check where is the mistake, but i think that should be something like: (C++11's std::thread) e.g.: xTaskCreate(&MyClass::task, "Task", 2048, (void*)this, 5, NULL); solution that works for me: void MyClass::task(){ while(1){

CMake Assembler Errors: No such instruction

ぃ、小莉子 提交于 2021-01-07 02:54:29
问题 Hello I am trying to build a FreeRTOS application for a Beaglebone black target which has a AM335X ARM Cortex-A8 processor. I am running windows but i am using a virtual machine that runs linux debian 10 which is what i am cross compiling from. uname -a provides: Linux debian 4.19.0-13-amd64 #1 SMP Debian 4.19.160-2 (2020-11-28) x86_64 GNU/Linux My project can be found here: https://github.com/frank2597/FreeRTOS_BBB I am getting various assembler errors when i try to compile with arm-linux

关于RISC-V你又了解多少

本小妞迷上赌 提交于 2020-12-23 19:38:10
RISC-V指令集架构介绍 RISC-V (英文 发 音 为 "risk-five" )是一个全新的指令集架构, 该 架构最初由美国 加州大学伯克利分校 的 EECS 部 门 的 计算机科学部门 的 Krste Asanovic 教授、 Andrew Waterman 和 Yunsup Lee 等开 发 人 员 于 2010 年 发 明。 其中 "RISC" 表示精 简 指令集,而其中 "V" 表示伯克利分校从 RISC I 开始 设计 的第五代指令集。 2010 年,加州大学伯克利分校的研究团队分析了 ARM 、 MIPS 、 SPARC 、 X86 等多种指令集,发现这些指令集不仅复杂度不断提升,且还存在 知识产权 风险,而处理器架构种类和处理能力并无直接关联。针对以上问题,该小组设计并推出了一套基于 BSD 协议许可的免费开放的指令集架构 RISC-V ,其原型芯片也于 2013 年 1 月成功流片。 RISC-V 指令集具有性能优越,彻底免费开放两大特征。 RSIC-V 的设计目标是能够满足从微控制器到超级计算机等各种复杂程度的处理器需求,支持从 FPGA 、 ASIC 乃至未来器件等多种实现方式,同时能够高效地实现各种微结构,支持大量定制与加速功能,并与现有软件及编程语言可良好适配。 RISC-V 产业生态正进入快速发展期。 加州大学伯克利分校在 2015

IoT 设备高质量的实时音视频传输解决方案

微笑、不失礼 提交于 2020-12-12 04:48:01
12月10日, 实时互动云服务 开创者及引领者 声网Agora 在北京举办了媒体沟通会,发布了首款定义轻互动直播场景的“极速直播”与可降低50%直播带宽成本的“低码高清”两大新产品,同时声网还对面向智能硬件、VR/AR等自编解场景的“实时码流加速产品-RTSA”进行全新升级。 RTSA:实现物联网智能硬件互联互通 根据Analytics数据显示,截至2020年上半年,全球的物联网连接数已经达到了117亿,历史上首次超过非物联网连接数。随着5G基础设施的逐渐完善、智能终端设备的不断普及以及云VR、云手机等新应用场景的涌现, 实时音视频成为物联网人机交互的重要方式 ,然而物联网领域基于音视频的互联互通也面临着诸多挑战,例如生态割裂兼容难全面,不同厂家设备之间的互联互通和互可操作性差的问题,就像是一只站在物联网“房间里的大象”,一直被行业忽略;传统物联网音视频传输以P2P为主,实时互动体验难保障。 针对这些问题,声网正式发布了全新升级的 RTSA-实时码流加速 产品,升级后的RTSA分为 RTSA Lite与RTSA Pro 两大系列,其中RTSA Lite面向资源有限的轻量级设备,拥有 极小包体、超低功耗、低延时、抗弱网 等特性,覆盖平台主要有Linux全平台以及RTOS平台,适用场景主要包含 智能手表、智能摄像头、智能音箱等穿戴式、便携式的智能设备 。RTSA Pro则面向体验优先

keil下的FreeRtos多任务程序

我与影子孤独终老i 提交于 2020-12-04 10:37:46
keil下的Freertos多任务程序 1.手动移植FreeRtos(以STM32F103为例) 2.直接使用野火的模板 1.手动移植FreeRtos(以STM32F103为例) 用该链接下载FreeRtos源码 链接: 资料 . 提取码:pmf1 下载解压后就得到了FreeRtos源码 把下载的文件的FreeRTOSv9.0.0\FreeRTOS\Demo\CORTEX_STM32F103_Keil目录下的FreeRTOSConfig.h放到source下 再将FreeRTOSv9.0.0\FreeRTOS\Source\portable\IAR目录下的ARM_CM3复制到keil文件中 然后随意打开一个工程,进行移植。先添加文件夹命名为FreeRtos 向FreeRtos中加源文件 源文件清单路径如下: FreeRTOS\Source\list.c FreeRTOS\Source\tasks.c FreeRTOS\Source\portable\Keil\ARM_CM3\port.c FreeRTOS\Source\portable\MemMang\heap_4.c FreeRTOS\Source\FreeRTOSConfig.h 添加完后如下图: 再添加头文件路径: 至此,就配置完成可以写代码了。 2.直接使用野火的模板 用上面给的链接直接下载野火的模板。 该处完成以下效果: