前面三节已经对CUDA做了一个简单的介绍,这一节开始真正进入编程环节。首先,初学者应该对自己使用的设备有较为扎实的理解和掌握,这样对后面学习并行程序优化很有帮助,了解硬件详细参数可以通过上节介绍的几本书和官方资料获得,但如果仍然觉得不够直观,那么我们可以自己动手获得这些内容。 以第二节例程为模板,我们稍加改动的部分代码如下:// Add vectors in parallel.
1. 引言FreeRTOS的任务调度是个大头,也是一个操作系统的核心。 其实个人理解,FreeRTOS调度规则很好理解,原则就是“优先级高抢占”,因为FreeRTOS是一个抢占式实时内核,一定会保证就绪态的高优先级任务可以先运行。 所有的调度都是为了实现这个目的来做的。 一些个人思考可以看4.1节。2. 原理分析2.1 任务切换是怎么进行的任务切换是一个明确的操作,就是通过pendSV中断,把当前
前言:因为在网上没有找到TI-RTOS的学习视频,虽然很多地方与free-RTOS相通,但是本人仍不想为了学习TI-RTOS先去学习freeRTOS,所幸关于TI-RTOS,ti公司给了许多相关的文档资料,虽然本人英文不太好,但没有办法,只能抱着试一试的心态,努力啃一啃,故在此做学习笔记。TI-RTOS驱动程序有一个用于静态配置和所有驱动程序实现的一组api的公共框架。我们应该首先理解通用框架,在
十年工作经验,主持设计多个爆款智能硬件,老司机带你飞,快上车,麻烦点个关注。 让FreeRTOS在你的板子上跑起来上节课我们讲了使用FreeRTOS创建任务的流程,不知道大家的作业完成的怎么样了,今天狗哥应粉丝的要求,结合CUBEMX来讲解下FreeRTOS在STM32上的具体使用方法。STM32CubeMx是ST官方提供的基础代码生成工具,可以在可视化的界面上,方便快捷的配置板载资源
转载 2024-10-17 16:12:15
197阅读
FreeRTOS一、简介1、FreeRTOS是ROTS中一个开源的、轻量级的实时操作系统,适用于大多数的嵌入式开发板(如STM32板子等)。2、操作系统允许多个任务同时运行,这个叫做多任务。实际上,一个处理器核心在某一时刻只能运行一个任务。操作系统任务调度器的责任就是决定在某一时刻究竟运行哪个任务。3、FreeRTOS 操作系统则是由用户给每个任务分配一个任务优先级,任务调度器就可以根据此优先级
准备一个例程,作为移植的基础工程,越简单越好,所以选择LED灯例程改个名字,中文改英文的工程目录下新建文件夹 FreeRTOS,用来存放FreeRTOS源码前往FreeRTOS官网下载源码 https://www.freertos.org/index.html    下载好后解压文件将下面路径的文件复制到工程目录下向 FreeRTOS\include 添加 Fre
转载 2024-07-18 23:58:08
98阅读
很多朋友问我这个问题,也抱怨GNU工具链不如集成开发环境好用。如IAR Workbench、Keil、RVDS等。并不理解,为什么RTEMS死磕GNU的工具链。这里其实有很多原因,有一些是我猜测的,有一些是既定的事实。下面就聊聊这些原因:1. 首先,RTEMS 从上个世纪80年代末开始开发。那时候,还没有这么牛叉的集成开发环境;GNU的工具链应该是当时不二的选择。2. RTEMS作为一个开源免费的
一、目的        在之前的博文中我们移植验证了STM32H750XBH6上运行FreeRTOS系统,在实际项目开发我们经常会遇到获取系统实时运行负载的情况,进而对系统进行优化。        针对这类问题FreeRTOS源码其实已经自带此类功能,可以分析每个任务线程的系统占用,对我们分析线程的执行效率、任务栈
一、内存管理简介FreeRTOS创建任务、队列、信号量等的时候有两种方法,一种是动态的申请所需的RAM。一种是由用户自行定义所需的RAM,这种方法也叫静态方法,使用静态方法的函数一般以"Static"结尾,比如任务创建函数xTaskCreateStatic(),使用此函数创建任务的时候需要由用户 定义任务堆栈。使用动态内存管理的时候FreeRTOS内核在创建任务、队列、信号量的时候会动态的申请RA
转载 2024-08-26 22:22:26
91阅读
一.写在前面的话: 嵌入式设计中使用 RTOS 必然会带来额外的 RAM 消耗,然而许多初次接触 RTOS 的工程师并不清楚 如何评估 RAM 的消耗量。这篇文档以 FreeRTOS 为例,介绍评估 RAM 使用情况的一般方法,并给出 在 FreeRTOS 下优化 RAM 使用的方法,也由衷的期望读者在使用其他 RTOS 时,可以通过相似的思 路来解决问题。二.FREERTOS RA
1、多任务系统互斥的引入为什么裸机程序就不用考虑互斥问题呢?假设有一个变量,因为裸机程序都是一个函数一个函数轮流执行的,因此变量不会在某个时刻被多个函数同时访问。而多任务系统可以看作是同时运行的,一个变量可能会被多个任务同时访问。没有引入freertos时,a的值经过两个函数后变为2。 引入FREERTOS后, 假设任务a和任务b都需要在自己的任务里面访问a变量,将a变量加1
背景freertos的定时器与我所见得到其他RTOS不一样,我知道的ucosii是在每次tick++的时候会检查定时器链表,smc_rtos也是这样做的,rtt没看过源码不清楚,而freertos是将定时器实现为一个prvTimerTask。代码分析freertos是将定时器实现为一个prvTimerTask,一般如果定时n个tick,就会将prvTimerTask阻塞n个tick,但是同时加入x
转载 10月前
96阅读
使用CubeMx的原因笔者大学期间一直从事嵌入式项目的开发工作,并且参加了嵌入式相关的比赛如全国大学生智能汽车竞赛等,并取得了一定的成绩。在从事嵌入式开发的过程, 我发现意法半导体公司推出的微控制器STM32系列,中文资料非常多,官方提供的软硬件支持也很多,十分利于开发。我的STM32之旅是从正点原子的STM32战舰开发板开始的,它搭载了一颗Cortex-M3内核的芯片,正点原子提供的资料也非常
  续上一篇文章的内容。由CubeMX构建的Makefile工程只支持C和汇编的编译,而且FreeRTOS的代码也需要作为C代码编译。   当我们想使用C++时,需要做一些准备并且修改Makefile;另外本文补充了一下DSP库的调用方式。参考了另外两位博主的文章:STM32 DSP库的快速添加 基于cubemx 调用,使用DSP库C++开发STM32 Makefile工程FreeRTOS与C++
转载 2024-07-01 21:46:47
348阅读
FreeRTOS 在Tricore上的三种任务切换方式如下:(1)任务调用任务切换  切换函数:portYIELD()/portYIELD_WITHIN_API()/taskYEILD()  处理器资源:Trap_class6_TIN0  触发方式:_syscall(0)  处理函数:void prvTrapYield( int iTrapIdentification )  使用场合:例如 ①任
(文章目录) 前言 本篇文章带大家简单的配置一下FreeRTOS 一、FreeRTOS介绍 在嵌入式领域中,嵌入式实时操作系统正得到越来越广泛的应用。采用嵌入式实时操作系统(RTOS)可以更合理、更有效地利用CPU的资源,简化应用软件的设计,缩短系统开发时间,更好地保证系统的实时性和可靠性。下面我就带大家使用cuebMX配置一下RTOS。 二、cubeMX配置 1.单片机型号选择 2.sys配置
原创 2023-10-17 10:08:23
659阅读
准备工作FreeRTOS系统源码基础工程,这里我们用跑马灯实验1.在工程里面添加FreeRTOS源码在工程里面新建一个名为FreeROTS的文件夹 将FreeRTOS源码添加到这个文件夹里面 protable里面只需留下Keil、MemMang、RVDS文件夹2、向工程分组添加文件 FreeRTOS_CORE的文件在FreeRTOS源码的首目录下,FreeRTOS_PORTABLE的port.c
作者:Jack_G 时间:2023.05.26 版本:V1.0 上次修改时间: 环境:STM32Cube MX V6.8.1STM32CubeH7 Firmware Package V1.11.0 / 04-Nov-2022Fatfs: R0.12CKeil: V5.29 文章目录前言一、基本配置1.1 配置时钟源为外部晶振1.2 配置烧录程序的引脚1.3 配置时钟树,配置主频280M二、配置SD
转载 2024-10-09 15:44:17
1978阅读
很久之前看过LwIP的一些内容,感觉好复杂。这次一个项目用到了网口,打算结合RT-Thread,移植一下LwIP。鉴于MDKCompiler 5已经不再更新,此次移植直接基于Compiler 6。因为公司之前有一个很简单的UDP的协议,基本可以直接跑通的,要移植一个自己不太熟的协议栈,心里还是做了很多斗争的。先确定技术路线吧。RT-Thread有官方移植好LwIP,但是公司现在还没有使用RT的那
转载 7月前
640阅读
如图,在keil中使用内联汇编时,有错误提示,但实际编译并没有报错:注意,使用内联汇编用__asm 但在编写portPendSV的过程,出现了另一个错误:  error: A1215E: Bad register list symbol  error: A1154E: Unexpected operand, operator expected&n
转载 2月前
536阅读
  • 1
  • 2
  • 3
  • 4
  • 5