Kinetis系列是飞思卡尔公司基于ARM Cortex-M4和Cortex-M0+内核的单片机,和CortexM3相比,M4内核主要增加了DSP运算指令和可选的浮点运算单元,同时保持了与Cortex-M3的兼容性,因此被寄予希望能逐步替代Cortex-M3。Kinetis也成为飞思卡尔杯全国大学生智能车竞赛新的硬件平台之一。社C/OS-III是Micrium公司推出的全新RTOS,特别适用于那些有计算前导零(CLZ)硬件指令的高端32位CPU,可大大加速就绪表查找速度。uC/OS-IⅡ的主要精华在于其巧妙的优先级软件查表算法,而对于有CLZ硬件算法指令的CPU,如MIPS、PowerPC、ARM11及以上系列,仍使用uC/OS1l就不那么合理了。uC/OS-l源代码公开,官方已提供对目前主流单片机的移植支持,并且针对几大主流单片机都提供相应的教材1时,Kinetis就是其中之一。Micrium官方提供的基于Kinetis平台的范例都是使用1AR作为集成开发环境的,考虑到飞思卡尔官方的CodeWarrior开发环境有着广泛的用户群,尤其是使用过S08/S12等单片机的用户,大多熟悉CodeWarrior。因此,本文将以Kinetis 平台为例,讲述如何使用CodeWarrior集成开发环境将uC/OSI运行起来,作为应用开发的基础,也便于那些教学中使用CodeWarrior编译器的师生,将C/OSII引入嵌入式系统教学。
标签: CodeWarrior
上传时间: 2022-06-24
上传用户:jason_vip1
rt-thread的定时器的基本工作原理在RT-Thread定时器模块维护两个重要的全局变量,一个是当前系统的时间rt_tick(当硬件定时器中断来临时,它将加1),另一个是定时器链表rt_timer_list,系统中新创建的定时期都会被以排序的方式插入到rt_timer_list(硬件定时器模式下使用)链表中,rt_timer_list的每个节点保留了一个定时器的信息,并且在这个节点加入链表时就计算好了产生时间到达时的时间点,即tick,在rt-thread系统中如果采用软件定时器模式,则存在一定时器线程rt_thread_timer_entry,不断获取当前TICK值并与定时器链表rt_timer_list上的定时器对比判断是否时间已到,一旦发现就调用对应的回调函数,即事件处理函数进行处理,而如果采用硬件定时器管理模式的话,则该检查过程放到系统时钟中断例程中进行处理,此时,是不存在定时器线程的。如下图:注:如果采用软件定时器软件定时器,则该定时器链表为rt soft_timer_list。
上传时间: 2022-06-25
上传用户:jason_vip1
变频器电路图-整流、滤波、电源及电压检测电路1.整流滤波部分电路三相220∨电压由端子J3的T、S、R引入,加至整流模块D55(SKD25-08)的交流输入端,在输出端得到直流电压,RV1是压敏电阻,当整流电压超过额定电压385V时,压敏电阻呈短路状态,短路的大电流会引起前级空开跳闸,从而保护后级电路不受高压损坏。整流后的电压通过负温度系数热敏电阻RT5、RT6给滤波电容C133、C163充电。负温度系数热敏电阻的特点是:自身温度越高,阻值越低,因为这个特点,变频器刚上电瞬间,RT5、RT6处于冷态,阻值相对较大,限制了初始充电电流大小,从而避免了大电流对电路的冲击。2.直流电压检测部分电路电阻R81、R65、R51、R77、R71、R52、R62、R39、R40组成串联分压电路,从电阻上分得的电压分别加到U15(TL084)的三个运放组成的射极跟随器的同向输入端,在各自的输出端得到跟输入端相同的电压(输出电压的驱动能力得到加强)。U13(LM339)是4个比较器芯片,因为是集电集开路输出形式所以输出端都接有上接电阻,这几组比较器的比较参考电压由Q1(TL431)组成的高精度稳压电路提供调整电位器R9可以调节参考电压的大小,此电路中参考电压是6.74V。
上传时间: 2022-06-26
上传用户:
Keil环境中建立带FreeRTOS的STM32L项目1、先把source文件夹复制至project目录,然后在keil中添加RTOS文件,如图:其中heap_2.c按需选择,可以是heap_1.c等,若需 croutine型任务则还需添加croutine.c文件。2、添加include目录,位于 source下的include文件夹。3、把FreeRTOSConfig.文件复制到source下的indude文件夹,或者其他用户文件夹下也可,这是FreeRTOS的功能配置文件,要按需修改的。4、为了能连接到portmacro.h文件,还需添加include路径Source lportable\RVDS\ARM_CM35、以下移植步骤细节需参考“FreeRTOS在STM32上的移植V1.0”。首先修改PORTMACRO.H文件。基本不用修改。6、port.c文件也基本不用修改。7、PORTASM.S文件在keil环境是不需要的,相关的函数放在了portc文件中。8、修改startup文件(要选择对应芯片的文件,并且要先取消其只读属性):SVC_Handler修改为vPortSVCHandler PendSV_Handler 修改为xPortPendSVHandler SysTick_Handler修改为xPortSys TickHandler
上传时间: 2022-06-27
上传用户:
本书是首本系统讲解 FreeRTOS 的中文书籍,共分为两个部分, 第一部分为“从 0 到 1教你写 FreeRTOS 内核”,即重点讲解 FreeRTOS 的原理实现,从 0 开始,不断迭代,教你怎么把 FreeRTOS 的内核写出来,让你彻底学会任务是如何定义的,系统是如何调度的(包括底层的汇编代码讲解) ,多优先级是如何实现的等等操作系统最深层次的知识。 当你拿到本书开始学习的时候你一定会惊讶,原来 RTOS 的学习并没有那么复杂,反而是那么的有趣,原来自己也可以写 RTOS,成就感立马爆棚。当第一部分知识你彻底掌握好之后,再切换到其它 RTOS 的学习,那简直就是易如反掌,纵观现在市面上流行的几种 RTOS,它们的内核的实现基本都差不多,只需要深入研究其中一种即可,没有必要每一种 RTOS 都深入的研究源码,如果你时间允许,看看那也无所谓。 第二部分是“FreeRTOS 内核应用开发”,重点讲解 FreeRTOS 的移植,内核每个组件的应用,比起第一部分,这部分内容掌握起来比较容易。全书内容循序渐进, 不断迭代, 前一章都是后一章的基础,必须从头开始阅读,不能进行跳跃式的阅读。 在学习的时候务必做到两点:一是不能一味地看书,要把代码和书本结合起来学习,一边看书,一边调试代码。看书倒是很简单,那如何调试代码? 即单步执行每一条程序,看看程序的执行流程和执行的效果与自己大脑所想是不是一样;二是在每学完一章之后,必须将配套的例程重写一遍(切记不要复制,哪怕是一个分号,但可以抄) , 做到举一反三,确保真正理解。 在自己写的时候肯定会错漏百出,这个时候要珍惜这些错误,好好调试,这是你提高编程能力的最好的机会。 记住,程序不是一气呵成写出来的,而是一步一步调试出来的。
上传时间: 2022-06-27
上传用户:
随着计算机技术的快速发展在手机、汽车等众多领域中对于嵌入式实时操作系统的应用越来越广泛,它的前景在这些领域中也极为广阔。但是同时,随着更加苛刻的要求和更广泛的应用对嵌入式实时操作系统的要求也日益增加,实时性,可靠性,强移植性等变得更加重要。现在嵌入式实时操作系统内核已经发展到了第2代微内核操作系统,例如L4、QNX等,它们主要是解决了微内核体系系统中所带来的进程之间通信的问题。微内核具有良好的灵活性、移植性,并且可靠性强的优点,目前已经成为广泛应用的一种系统体系。本文在在微内核结构基础上,借鉴了L4、VxWorks等几个优秀的嵌入式操作系统的思想,来分析RT-Thread嵌入式实时操作系统。RT-Thread操作系统融合了微内核的特点并加入了自己的特色,属于第二代微内核操作系统。它使用范围极其灵活,无论是在资源紧张的小型系统还是一个具有内存管理、网络功能等的基本计算单元,并且它内核可配置、扩展性好。这里主要讨论了RT-Thread系统的微内核的具体实现,详细分析了RT-Thread的各个功能模块例如内核对象系统、线程调度、IPC机制、内存管理等,并且分析了各个模块在内核之间的相互联系,最后将其移植到CM3芯片中,并测试了系统功能。
上传时间: 2022-06-29
上传用户:
信息技术的飞速发展使得嵌入式实时操作系统的应用越来越广泛,从工业控制,航空电子,医疗应用到虚拟现实,消费电子,多媒体通信等众多领域,嵌入式实时操作系统在这些领域的前景极为广阔。同时,新的领域和应用对嵌入式实时操作系统提出了跟多要求,其中最主要的是:强实时,高可靠性,易扩展性。微内核因为其良好的兼容性、扩充性、灵活性、移植性,可靠性和分布式特性而成为学术界的研究热点。然而,微内核并不完美,效率低下一直是微内核系统的一块短板,这也是导致围绕单一内核和微内核产生的诸多争论的主要原因。为了解决微内核效率低下的问题,学术界和工业界进行了多年的研究,已经开发出以L4操作系统为代表的第二代微内核操作系统,重点突破了微内核体系结构导致的进程间通信瓶颈问题。本文在深入分析多种内核结构基础上,借鉴14、Vxworks等诸多操作系统的思想,扬长避短,加入自己的特色,提出并实现了在功能和性能上都有可比性,属于第二代微内核操作系统范畴,基于内核对象的联入式实时操作系统KT-Thread。RT-Thread的使用范围极为灵活,可以从资源极度紧张的小型系统,到一个带内存管理单元,网络功能的基本计算单元。RT-Thread有着高度可配置,易剪裁,扩展性好,可靠性高等特点,适合于嵌入式系统,实时系统。本文详细介绍了RT-Thread 微内核的设计与实现过程,从体系结构到各个功能模块。
上传时间: 2022-06-29
上传用户:fliang
STM32F103 Mini板 FreeRTOS例程.FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、embOS、salvo、FreeRTOS等少数实时操作系统能在小RAM单片机上运行。相对μC/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行,其最新版本为10.1.0版。
上传时间: 2022-06-30
上传用户:
LearningGUI的特点和优势。LearningGUI被设计成独立于具体的硬件平台和具体的软件平台,是一款通用的嵌入式开源GUI系统。它100%使用C语言开发,无浮点运算,只调用C,无汇编代码。显示,键盘,鼠标等驱动由用户在应用中编写注册,因此,LearningGUI的通用性,可移植性非常好!它可以裸奔,也可以在RTOS 上运行,同时更适合在Linux下运行。LearningGUI高度可裁剪,可配置,库大小从20多K到200多K。占用内存小。Basic版实行静态内存管理,占用10多K RAM. Windows版实行动态内存管理,占用内存与建立控件多少相关。支持内置GB2312—80标准汉字库。提供开放式字库访问接口。提供开放式颜色转换接口。提供消息驱动机制。提供类似于Win32 SDK式样的API接口。开发LearningGUI的目的是替代emWin,同时抢占中低端的QT市场。该教程是基于SWM320单片机下移植learningGUI的教程,详细描述了移植过程。适用于想学习learningGUI的爱好者,其它单片机也可以使用这样的方法进行移植,里面讲述了配置文件的使用方法,希望这个教程能对该GUI的爱好者有所帮助。
标签: swm320 learninggui 移植
上传时间: 2022-07-06
上传用户:
STM32 HAL固件库是Hardware Abstraction Layer的缩写,中文名称是:硬件抽象层。HAL库是ST公司为STM32的MCU最新推出的抽象层嵌入式软件,为更方便的实现跨STM32产品的最大可移植性。HAL库的推出,可以说ST也慢慢的抛弃了原来的标准固件库,这也使得很多老用户不满。但是HAL库推出的同时,也加入了很多第三方的中间件,有RTOS,USB,TCP / IP和图形等等。和标准库对比起来,STM32的HAL库更加的抽象,ST最终的目的是要实现在STM32系列MCU之间无缝移植,甚至在其他MCU也能实现快速移植。
上传时间: 2022-07-08
上传用户: