FreeRTOS中文入门手册
FreeRTOS中文入门手册方便初学者入门学习,讲的很好,很值得学习第一章任务管理Designed For Micr。 contr。11exs;概览附录中提供了使用源代码的实用信息小型多任务嵌入式系统简介不同的多任务系统有不同的侧重点。以工作站和桌面电脑为例:·早期的处理器非常昂贵,所以那时的多仟务用于实现在单处理器上支持多用户。这类系统中的调度算法侧重于让每个用户公平共享处理器时间。随着处理器功能越来越强大,价格却更偏宜,所以每个用户都可以独占一个或多个处理器。这类系统的调度算法则设计为计用户可以同时运行多个应用程序,而计算机也不会显得反应迟钝。例如某个用户可能同时运行了一个字处理程序,一个电子表格,一个邮件客户端和一个浏览器,并且期望每个应用程序任何时候都能对输入有足够快的响应时间。桌面电脑的输入处珒可以归类为软实时。为了保证用户的最佳体验,计算机对每个输入的响应应当限定在一个恰当的时间范围——但是如果响应时间超出了限定范闱,并不会让人觉得这合电脑无法使用。比如说,键盘操作必须在键按下后的某个时间内作出明显的提示。但如果按键提示超出了这个时间,会使得这个系统看起来响应人慢,而不致于说这台电脑不能使用。仅仅从单处理器运行多线程这一点来说,实时嵌入式系统中的多任务与桌面电脑的多任务从概念上来讲是相似的。但实时嵌入式系统的侧重点却不同于桌面电脑特别是当嵌入式系统期望提供硬实时行为的时候。硬实时功能必须在给定的时间限制之内完成——如果无法做到即意味着整个系统的绝对失败。汽车的安全气囊触发机制就是一个硬实吋功能的例子。安全气囊在撞击发生后给定时间限制内必须弹出。如果响应时间超出了这个时间限制,会使得驾驶员受到伤害,而这原本是可以避免的大多数嵌入式系统不仅能满足硬实时要求,也能满足软实时要求。Designed For Micr。 contr。11exs;术语说明在屮,每个执行线程都被称为任务。在嵌入式社区屮,对此并没有个公允的术语,但我更喜欢用任务而不是线程,因为从以前的经验米看,线程具有更多的特定含义本章的目的是让读者充分了解:在应用程序中,如何为各仟务分配处理时间。●在任意给定时刻,如何选择任务投入运行。●任务优先级如何影响系统行为。●任务存在哪些状态。此外,还期望能够让读者解:●如何实现一个任务。●如何创建一个或多个任务的实例●如何使用任务参数。如何改变一个已创建任务的优先级●如何删除任务。●如何实现周期性处理。空闲任务何时运行,可以用来干什么本章所介绍的概念是理解如何使用的基础,也是理解基于的应用程序行为方式的基础——因此,本章也是这本书中最为详尽的一章Designed For Micr。 contr。11exs;任务函数任务是由语言数实现的。唯一特别的只是任务的函数原犁,其必须返回而且带有一个指针参数。其数原型参见程序清单。void ATaskFunction( void *pvParameters )程序清单任务函数原型每个任务都是在自己权限氾围内的一个小程序。其具有程序入口,通常会运行在一个死循环中,也不会退出。一个典型的任务结构如程序清单所示。仟务不允许以任何方式从实现函数中返回一一它们绝不能有条语句,也不能执行到函数末尾。如果一个任务不再需要,可以显式地将其删除。这也在程序清单展现个任务函数可以用来创建若干个任务—创建出的任务均是独立的执行实例,拥有属于自己的栈空间,以及属于自己的自动变量栈变量,即任务函数本身定义的变量v。 d ATaskFunction(v。1d* pArameters)/*可以像普通函数一样定义变量。用这个函数创延的每个任务实例都有一个属于自己的 vAria1b1 eExamp1e变量。但如果 varial1e3 xample被定义为 static,这一点则不成立-这种情况下只存在一个变量,所有的任务实例将会共享这个变量。int ivariableExample =0;/*仨务通常实现在一个死循环中。*/for(ii)/*完成任务功能的代码将放在这里。*//*如果任务的具体实现会跳出上面的死循环,则此任务必须在函数运行完之前朋除。传入NUL参数表示删除的是当前任务*vTaskDelete( NULL程序清单典型的任务函数结构Designed For Micr。 contr。11exs;顶层任务状态应用程序可以包含多个任务。如果运行应用程序的微控制器只有一个核那么在任意给定时间,实际上只会有一个仼务被执行。这就意味着一个任务可以有一个或两个状态,即运行状态和非运行状态。我们先考虑这种最简单的模型——但请牢记这其实是过于简单,我们硝后将会看到非运行状态实际上又可划分为若千个子状态。当某个任务处于运行态时,处理器就正在执行它的代码。当一个任务处于非运行态时,该任务进行休眠,它的所有状态都被妥善保存,以便在下一次调试器决定让它进入运行态时可以恢复执行。当任务恢复执行时,其将精确地从离开运行态时正准备执行的那一条指令开始执行。A tasks that areOnly one tasknot currentcan be in theRunning are in theRunning state atNot Running Stateany one timeNot RunningRunning图顶层任务状态及状态转移任务从非运行态转移到运行态被称为切换入或切入或交换入相反,任务从运行态转移到非运行态被称为切换出或切出或交换出的调度器是能让任务切入切出的唯一实体。Designed For Micr。 contr。11exs;创建任务函数创建仟务使用的函数这可能是所有数中最复杂的函数,但不幸的是这也是我们第一个遇到的函数。但我们必须首先掌控任务因为它们是多任务系统中最基本的组件。本书中的所有示例程序都会用到,所以会有人量的例子可以参考。附录:描述川到的数据类型和命名约定。portBASE TYPE xTaskCreate( paTASK CODE pvTaskCodeconst signed port CHAR conist pcNameunsigned portSHORT usstackDepthunsigned portEASE TYPE uxPriorityxTaskHandle *pxCreatedTask程序清单函数原型表参数与返回值参数名描述任务只是永不退出的函数,实现常通常是个死循环。参数只一个指向任务的实现函数的指针效果上仅仅是函数名具有描述性的任务名。这个参数不会被使用。其只是单纯地用于辅助调试。识别一个具有可读性的名字总是比通过句柄来识别容易得多。应用程序可以通讨定义常量来定义任务名的最大长度—一包括结朿符。如果传入的字符串长度超过了这个最大值,字符串将会自动被截断。Designed For Micr。 contr。11exs;当任务创建时,内核会分为每个任务分配属于任务自己的唯一状态。值用于告诉内核为它分配多人的栈空间。这个值指定的是栈空间可以保存多少个字,而不是多少个字节比如说,如果是位宽的栈空间,传入的值为则将会分配字节的栈空间。栈深度乘以栈宽度的绩果万不能超过~个类型变量所能表达的最人值。应川程序通过定义常量来决定空闲任条任用的栈空间大小。在为微控制器架构提供的应用程序中,赋予此常量的值是对所有任务的最小建议值如果你的任务会使用大量栈空间,那么你应当赋予一个更大的值。没有任何简单的方法可以决定一个任务到底需要多大的栈空间。计算出来虽然是可能的,但人多数用户会先简单地赋予一个自认为合理的值,然后利用提供的特性来确证分配的空间既不欠缺也不浪费。第六章包括了一些信息,可以知道如何去查询任务使用了多少栈空问。仟务函数接受一个指向的指钅的值即是传递到任务中的值。这篇文档中的一些范例程序将会示范这个参数可以如何使用指定任务执行的优先级。优先级的取值范围可以从最低优先级到最高优先级是一个由用户定义的常量。优生级号并没有上限除了受限于采用的数据类型和系统的有效内存空间,但最妊使用实际需要的最小数值以避免内在浪费。如果的值超过了,将会导致实际赋给任务的优先级被自动封顶到最大合法值。Designed For Micr。 contr。11exs;用于传出任务的句柄。这个句枢将在调川中对该创建出来的任务进行引用,比如改变任务优先级,或者删除仟务。如果应用程序中不会用到这个任务的包柄,则川以被设为返回值有两个可能的返回值:表明任务创建成功。由于内存堆空间不足,无法分配足够的空间来保存任务结构数据和任务栈,因此无法创建任务。第五章将提供更多有关内存管理方面的信息。例创建任务附录:包含一些关于示例程序生成工具的信息。本例演示了创建并启动两个任务的必要步骤。这两个任务只是周期性地打印输出守符串,采用原始的空循环方式来产生周期延迟。两者在创建时指定了相同的优先级,并且在实现上除输出的字符串外完全一样—程序清单4和程序清单5是这两个仟务对应的实现代码。Designed For Micr。 contr。11ers;
- 2020-12-09下载
- 积分:1
鸡啄米VS2010-MFC编程入门教程
鸡啄米的这套VS2010/MFC编程入门教程到此就全部完成了,虽然有些内容还未涉及到,但帮助大家进行VS2010/MFC的入门学习业已足够。以此教程的知识为基础,学习VS2010/MFC较为深入的内容已非难事。作为本教程的最后一课,鸡啄米将对前面所讲内容进行目录归纳,并对这八个月加班加点的努力进行总结。vS2 DIO/MFC编程入门教程之目录和总结-敦一开发-鸡啄米每布课的写作耗时差不多都在两三个小时以上,有时侯甚全写到凌晨一点多。付出了很多,同样也收获了很多,最大的收获莫过于大家的肯定和支,很多朋友都韶言或者发郎件支持鸡啄米,这说明我的辛勤劳动没有白费,帮助了很多人,感谢那些一直以来支关注鸡啄米的朋友,也特别感谢那些在鸡啄米经常留言支持的读者除了大家的支持,鸡啄米自己也通过本教程的完成更深入的理解了的很多内容,提高了对的认认水平,尤其是更加巩了一些较少使用的知认。在帮人的同时也帮了自己很多朋友在鸡啄米留言或者给鸡啄米发电子邮件讨论问题,由时间确实比较少,晚上夏新文章,白天上班,所以只叵复了一部分,望大家见谅。学会了编程,很多人就开始喜欢硏究了,但是提醒大家不要忘了根本,即谙言。从《鸡啄米编程入门系列》和《编程入门教程》这套学习教程的受欢迎程度,鸡啄米感觉大家有些忽规的学习,更喜欢应用性强的在你能熟练使用后,最好再认真学学,提高水平才能真正亡你的编程功力上一个台阶。以后鸡啄米会铼续分亨各种编程知识,还会编写一些教程,希曌人家能一如既往约关注鸡啄米网站,支持鸡啄米!格力高百力漆清风原木纯品系列了!这一耙已有微虾味)*1盒3层谜你纸手帕“10包已D体被害送出兔费领』兔费领推您可能也喜欢:日分2编程入门编稈入编稈入编程入编程入之三应用门之三十九(文档、门之十三(常门之刀十六常门之一五(对话框程序工程中文件的组视图和框架:概述)用类类月类异常处一股属性页对话框的成结构)创建及显示)除非特别注明,鸡啄兴文章均为原创转载请标明本文地止作着鸡啄米分类软件开发浏览评论上一篇:互联网的轻时代已成为趋势下一篇:最全面详细的评测相关文章编程入门之五十四界Ⅲ开发:使用更多空件并为控科添加消息欠理凶数)编程入门之五|三(界面开发:为添加控件)编程入门之开十二(界Ⅲ开发:创建样式的应用程序框架)编程入门之五十一(图形图像:对象之画刷编程入门之五十(图形图像:对象之画笔编程入门之四|元(图形图像:类及其屏暮绘图函数)编程入门之四十八(字体朴文本输出:文输出)编程入门之四十七(字体和文本输出:字体类)编程入门之四十六(常用类:异常处理)http://www.jizhuomi.com/software/257.tml[2013,969:48:41]vS2 DIO/MFC编程入门教程之目录和总结-敦一开发-鸡啄米编程入门之四十五(常用类文件操作类)楼我的名字叫麒我一直自学编程,觉得它比别的都好回复该留言楼愚人笔记希望还有下一个系列面世66鸡啄米于回复嗯,会有的,呵呵回复该留言楼蛉啊了非常感谢!继续加油!回复该留言偻楼主好热心好感动啊写了这么多而且写的非常详细!!再次谢谢你们。。虽然今天查百度无意间点到这里的,不过攸货确实好多,记住鸡啄米了哈!!!。。祝你们网站越来越火哈,,以后我会经常来你们网站的哈哈≤6鸡啄米于回复志同道合的朋友越来越多了回复该留言楼学土之爱楼主了不起啊回复该留言楼求助救助:按你第课制作的计算器,我加入了一个减法功能,里面参数如下初始时刻三个变量对立的都是,我需要他们为空也就是什么都没有还有就是输入数据后或没入数据而按时程序会自动结束,改怎么办?≤鸡啄米于回复变量是存到内存中的,它是不可能为空的,即使你没有赋初值,它也会有初值。按回车退出一般是因为默认按紐是,取消默认按钮或者把中的注掉就行了求助于回复谢谢老师,问题我已经解决了回复该留言楼李志红博客反正不懂这个,米看看。回复该留言http://www.jizhuomi.com/software/257.tml[2013,969:48:41]vS2 DIO/MFC编程入门教程之目录和总结-敦一开发-鸡啄米楼点点滴滴写得非常好,加油回复该留言楼欲取消子节点缩进您好,米哥,我想取消子节点与父节点的缩进,请问应该如何做啊!谢谢啊由鸡啄米于最后编辑回复该留言楼迷哎呀不得了,最近车学回复该留言写的真的非常详细,非常好!!!!怒赞于回复喽主虽是写技术博客,可惜一点讨论的氛围都没有,都是一些菜鸟在这淫须马,博客的板式中也只有喜欢和推两^能,连反对的机会都不给,可见作者多么自恋和自大。让人匪所思!写博客不是为了技术探讨,这种浅尝揶止的文章不如不看!写出来的东西也是玩具,实际立用中很容易腐烂。回复该留言第一次发现这个好东西,顶起,写得真好。回复该留言楼楼主好热心力能的热心楼主啊!!里加入控件怎么加啊????百度半大了也摆不到66喽主好热心于回复楼主快出现呀6鸡啄米于回复,日前还没用过控件,建议再搜索下,网上应该有相关资料回复该留言楼我考研的目的有点像博主,但我是因为自已出太真心没实力的说。。学的不是亡算机,本科也是浑浑噩噩的过去,化了点时间去考研,刚第一个学期,日子依旧浑浑噩噩的,因为要上程序课偶然发现这个对站。。看了博工一番感概,觉得自己确实要给自己一^定位一个方叵,但是我这专业有时候确实让人很迷茫。。。而且现在做什么都克制不住白三可以花上一天的时间看美剧。。。ε最近一直在想我到底该怎么做是好鸡啄米于回复想做什么一定要下决心,尤其是学生阶段,不要到找工作的时侯再着急回复该留言最近在学习很高兴能参照着博主的资料,一步一步一点点的学习下去。对于一个白来说是很好的入门学习材料。希望自己能在本门底将搞定,吼吼。再次感谢博主!!!http://www.jizhuomi.com/software/257.tml[2013,969:48:41]vS2 DIO/MFC编程入门教程之目录和总结-敦一开发-鸡啄米《鸡啄米于回复别急,步来,柞信看完我的教程:你入门没有问题回复该留言楼米哥,可有打算扩允教程,加个动态链接库编程什么的冫求指导啊,同忐们可是翘首以盼那6鸡啄米于回复这个后面会考愿回复该留言楼路过支持一下!6鸡啄米于回复谢谢攴持.欢迎常来逛逛回复该留言楼支持楼主辛苫了,写的很不错,是我们项目老大推荐给我看的,我是才入手,看了很有帮助,期待后续还有更好的。鸡啄米于回复谢谢你的支持,也谢谢你们老大。欢迎常米交流。回复该留言楼分享奉献让这个世界更好。感谢博主《鸡啄米于回复妇果有这和想法的人多了,那我们都能提高很快回复该留言楼蛋蛋蛋我不是程序员,但是在跟老师做目时经常要编写或调试一些程序。每当遇到不明白的就先来看看这里有没有介绍。博主的博客写的精炼,用最通俗的语言把和中一些特性的最主要内容介绍出来,让读者省时省力的同时,又能理解这些特生的灵龙去脉,即思想和用法。希望博主的博客开的长久,有需要还会经常来的≤6鸡啄米丁回复我就是希望能这样帮助大家,有东匹需要了解就到这里末查查大家也可以给我投稿,跟众多网友分享自已的看法和经验等。回复该留言你写的文章我都能把实例做出,但是对事件处理的每句语句的意思就不明白了,让自己写肯定也写不出兴。怎么办呀求指教?6鸡啄米于回复http://www.jizhuomi.com/software/257.tml[2013,969:48:41]vS2 DIO/MFC编程入门教程之目录和总结-敦一开发-鸡啄米多看几遍:自已多写写,最后一定会明白的回复该留言楼穷者独善其身,达者兼济大卜!楼主是一个脱离了低级趣味的好人!≤鸡啄米于回复谢谢,只是想大家分享些已经掌握的知识回复该留言兴哥,我已经把你的教程从第一篇看到这篇了(),收获很夭,希堊博主在写个数据库编程的。。。。回复该留言楼我的名字叫麒攸藏了,博主你千万别删除啊!回复该留言很有帮助,请问一下哈就是我如果创建了多个对正框,在一个对话框中点击按钮如何调用另一^对话框并且之前的对话框不消失?还有就是除了主对话框,其他对话框中的函数在那里改呢?谢谢!祝越办越好6鸡啄米于回复第一个叫颙,在对话柞的单击消息响应函数口,构造另一个对话枉的对象,然后调用成员函数,就可以了。第二个问题,其他对话框在使用前肯定要为其创建类,在对话框类中修改函数回复常感谢您的解答,又遇到一个问题,就是我添加了一个空间(在另一个对话框中)添加控制变量为在其中添加了成员函数为什么运行后,程序崩溃了?回复该留言楼简搜百科谢谢真的!辛苫了回复该留言我是住新建对话框的类中添加了一个成员函数如果是在主对话框中控件是可以添加字符的,为什么呢?谢啦回复该留言http://www.jizhuomi.com/software/257.tml[2013,969:48:41]vS2 DIO/MFC编程入门教程之目录和总结-敦一开发-鸡啄米能不能出一个美化界面的专题,比如怎么设置背景图突啊,之类的,谢谢拉66鸡啄米于回复不错的要求,先记下,有会为大家奉上回复该留博主,请冋一个叫颗哈,很感谢。我要做一个地图染色的程序,用种子填充法染色速度很慢,一个像素一个像素地染,有没有能很快填充整个区域的函数?谢谢!回复该留言楼读研期间要用,米哥这两套教程卡常好,感谢楼主并支持6鸡啄米于回复研究生阶段学的不少,望能给别人推荐下鸡啄米,在此谢远!回复该留言很不错的东西攴持博主学了一年多的编程了一直都是用命令行看到那个罴框框都要吐了看刭终于能做可视化的界面很激动呢鸡啄米于回复程序员还是很需要成就感的回复该留言楼新世纪娱乐减回复该留言今天偶然搜索到这个博客,好多我正好需要的东西。学了|几课,真的很有月。万分感谢。k鸡啄米于回复希望能常来,可能还会有你需要的东西哦,叫呵回复该留言非常感谢博主无私奉献的精神,我是看这个系列入门的!6鸡啄米于回复很高兴能帮你入门回复该留言http://www.jizhuomi.com/software/257.tml[2013,969:48:41]vS2 DIO/MFC编程入门教程之目录和总结-敦一开发-鸡啄米写得不铓,简单易懂,受用。要是再讲个网络编程和多线程的话,然后把前面的界面编程糅合起来讲个小小的一边聊天一边传输文件功能的案例就完关了。回复该留言楼要是那个案例里能捫聊犬派汞进数据库就更奷了,数据车叮以用嵌入式数据库,这个数据库很轻的,只需要在项匚中加入几个库文件就行了。回复该留言楼油烟机什么牌了好很不错啊博主继续加油k6鸡啄米于回复起加油回复该留言楼我的名字叫麒楼主好人啊!你可千万别删,我一直在学习6鸡啄米于回复不会删的,呵呵,欢逛常来学习回复该留言楼已纤顺利完成编程入门教程的全部内窣(当然个别暂时用不到的就掠过了)。冉次感谢作老完成这样非常适合学者的教程!≤鸡啄米于回复不用谢,以后常来逛逛啊回复该留鸡啄米先生;您的,文章使我受益匪浅,真诚的感谢你回复该留言楼我的名字叫麒博主,我实在搞不懂这些,看了很久了,连白学都不行,你看这样行不行?你给我培训,开价吧!46鸡啄米于回复那就从最基础的学起呵呵,如果有几个像你这样需求的朋友,看来我可以开培训班了。。回复该留言楼我的名字叫麒博主救我!我电脑里软伫管家现实,编程开发一栏里有个东西,请你带我删除一批。详细看这里≤6鸡啄米于回复你装的版本大多了,有和,可以卸毂两个,剩个就可以http://www.jizhuomi.com/software/257.tml[2013,969:48:41]vS2 DIO/MFC编程入门教程之目录和总结-敦一开发-鸡啄米回复该留言楼室内设计博客难刚起步,学学回复该留言楼诩谢!辛苦了。鸡啄米老师6鸡啄米于回复不用客气,欢迎常来回复该留言楼水上之舟每次不记得该如何操作,就会跑这来看看,真心很感谢回复该留琢米老师!想用同时绘制三个坐标图,点已经有了,还是不是很会弄,可以指点指点吗?回复该留言琢米老师是个妤老师啊,一直在跟着啄米老师走、觉着老师讲的非常容易理解,刚看完了的教程,现在打算开始学了,希望以后能和老师学到更多东西,提高自己!鸡啄米于回复先学再学记得回头再看看,呵呵回复该留言楼这篇文档介绍详细,对于我们这些刚入门的有极大作用,谢谢米哥回复该留言非常感谢前辈这个是我看过的最好的教程了,比我车图书馆里翻过的那些大部头教材好多了全部做下来感觉自己对很有自信了表小再也不用控制台了6鸡啄米于回复谢谢肯定,欢迎常来啊回复该留言楼多谢多谢写的非常好,果断多谢多谢回复该留言老师,你好:我想问下你的教稈有没有出书啊?我想买书看,不上网的时候也可以学习看下,谢谢鸡啄米于回复抱歉,没有出书,匚前只能在这里看http://www.jizhuomi.com/software/257.tml[2013,969:48:41]
- 2020-12-08下载
- 积分:1