MCU面向对象思维的架构.docx
《MCU面向对象思维的架构.docx》由会员分享,可在线阅读,更多相关《MCU面向对象思维的架构.docx(13页珍藏版)》请在优知文库上搜索。
1、程序架构重要性很多人尤其是初学者在写代码的时候往往都是想一点写一点,最开始没有一个整体的规划,导致后面代码越写越乱,bug不断.最终代码跑起来看似没有问题(有可能也真的没有问题),但是要加一个功能的时候会浪筑大量的时间,甚至导致整个代码的崩渍。所以,在一个项目开始的时候多花一些时间在代码的架构设计上是十分有必要的.代码架构确定好之后你会发现敲代码的时候会特别快,并且在后期调忒的时候也不会像无头苍蝇一样胡乱找问题。当然,调试也是一门技术。在学习实时操作系统的过程中,发现实时操作系统框架与个人的业务代码之间的耦合性就非常低,都是只需要将业务代码通过一定的接口函数注册好后就交给操作系统托管了,十分方
2、便。但是操作系统的调度过于复杂,这里就使用操作系统的思维方式来重构这个时间片轮询框架。实现该框架的完全解耦.用户只需要包含头文件,并且在使用过程中不需要改动已经写好的库文件。Demo苜先来个dem。,该dem。是使用电脑开两个线程:一个线程模拟雎片机的定时器中断产生时间片轮询个时钟,另一个线程则模拟主函数中一直运行的时间片轮询调度程序。inc1.udeMinc1.udeSinc1.udeItinc1.udetimes1.ice.h/创建5个任务对象TimesiIceTaskObjtask_1.,task_2,task_3,task_4,task_5;/具体的任务函数voidtask1.-hd1
3、.()(printf(task1isrunning.n);)voidtask2-hd1.()printf(task2isrunning.n);voidtask3-hd1.()printf(task3isrunning.);)voidtask4_hd1.()(printf(task4isrunning.);voidtask5-hd1.()(printf(task5isrunning.);)/初始化任务对象,并且将任务添加到时间片轮询调度中voidtaskjnit()(times1.ice_task_init&ta$k_1.,task1._hd1.,1,10);times1.ice_task_in
4、it(&task_2,task2_hd1.,2,20);t1.me$1.ice_task_init(&task_3,ta$k3_hd1.,3,30);times1.ice_task_init&task_4,task4_hd1.,4,40);times1.ice_task_add(&task_1.);times1.ice_task_add(&ta$k_2);times1.ice_task_add(&task_3);times1.ice_task_add(&task_4);times1.ice_task_add(&task_5);/开两个线程模拟在单片机上的运行过程voidtimes1.ice_e
5、xec_thread()(whi1.e(true)(times1.ice_exec();)voidtimes1.ice_tick_thread()whi1.e(true)t1.mes1.ice_tick();SIeep(IO);intmain()(taskjnit();printf(tasknum:%dn,times1.ice_get_task_num();printf(tasken:%dn,times1.ice_get_task_times1.ice_1.en(&task_3);times1.ice_task_de1.(&task_2);printf(de1.ettask2n);printf
6、(task2isexist:%dn,time$1.ice_task_i$exist(&task_2);printf(tasknum:%dnztimes1.ice_get_task_num();times1.ice_task_de1.(&task_5);printf(de1.ettask5n);printf(tasknum:%dn,times1.ice_get_task_num();printf(task3isexist:%dn,times1.ice_task_isexist(&task_3);times1.ice_task_add(&ta$k_2);printf(addtask2n);prin
7、tf(task2isexist:%dn,times1.ice_task_isexist(&task_2);time$1.ice_task_add(&task_5);printf(addtask5n);printf(tasknum:%dn,times1.ice_get_task_num();printf(nn=times1.icerunning=n);stdthreadthread_1.(times1.ice_exec_thread);std:threadthread_2(times1.ice_tick_thread);threadJjoin();thread_2.join();return0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCU 面向 对象 思维 架构