|
大好的一个暑假又过去,接触51单片机也有两年多了,从单初的入门到熟悉,再有一个年头就面临就业问题了,最后发现这几年51单片机虽然经典,但是也到了差不多该退出历史的舞台了,尽管8系列的芯片性能还不错,但是较STM32系列的F3就能把它打的落花流水,当然这里也不是贬低STC单片机,只是说物尽其能嘛,什么样的需求,选择什么样的芯片,但是就市场而言STM32无疑是占据了一定优势了,比如速度可以高达百兆,可以搭载诸多RTOS(UCOS/free RTOS等),还可以移植emwin等诸多GUI,使得人机交互界面更上一层楼,DMA、FMSC、DIO硬协议的集成,结合库的开发,功能强大的同时,开发周期也更短,性价比超高。 说了这么多,也就是我也进入那股大潮流中去了,为此还是有许多不甘心的,比如在STC单片机上的应用还比较少,为此在转入学习ucos之前,打算在学习了操作系统的基础上,在让手里的51发挥些余热,为STM32开开路。自从编程从结构化到携带操作系统,特别是复杂的多任务处理,让单片机的并行与并发在多个任务之间处理得淋漓尽致,用过之后就在也回不去了。于是就寻思着 在这个51单片机内核得STC8上带个操作系统跑破玩玩,于是就找到了2004年周立功公司开发的,陈明计工程师编写的开源small RTOS研究使用一番,作为在最后谢幕的结果。他开发的这个操作系统还是有很多优点的,不如说最直接的就是占用SRAM少,堆栈指针比比较精简,支持多达255层中断嵌套,可裁剪,用户自定义配置丰富,支持消息队列、信号量、邮箱等诸多功能。开始使用的时候因为赶时间嘛,就用了它开发了一套简易的系统,其实也不算完整的系统,就是把外部的电路模块集成到一块,加了个操作系统整合了,后面加到NRF24L01和1.8寸TFT液晶驱动时才发现,喔呦,编译出错了,报错信息是“DATA”,内存溢出了,原来该操作系统仅仅支持编译的small模式(DATA),对于XDATA和PDATA模式操作系统是无法引导的,这个就麻烦了呀,所有的变量远离data、idata,希望变量都加上xdata关键字,最后发现还是不行,这样有些值是读不出来的,甚至编译器报错,各种奇葩的bug,原本说支持最多16个任务的,现在就仅仅写了7-8个就已经无法使用了,我猜测,这个也有可能是当年它由轰动一时,到后来的无人问津的原因之一吧。还有要吐槽的是其实对于消息对列和邮箱我个人感觉都是多余的,很多东西一个全局变量就解决了,使用了消息队列反倒占用内存不说,变量定义的更多了,操作系统切换任务的堆栈寄存器都不够用了,还有信号量,都变成使用中断开关了,参考了它的例子,消息队列应用在了键盘发送,和一个值接收进程,好像也没有多大用处,装个逼倒是还不错。最后只能总结得出看样子51还是不适合搭载操作系统了,重要的函数重载都不可以。后来就去使用了RTX-51-tiny去了,一个头文件搞定,对于超出127字节的small区,可以改用XDATA,还可以删除任务,还不错。好了,最后就来看下效果吧,手都酸了,欢迎批评指正。
|
-
1.8寸测温度
-
1.8寸采集光敏电阻
-
0.96寸显示图片
-
0.96寸显示温湿度
-
0.96寸显示ADC
-
显示界面
-
0.96寸显示时间
-
关机状态
-
-
39 TFT_1.8寸全彩.rar
240.43 KB, 下载次数: 69, 下载积分: 黑币 -5
RTX-51-Tiny
-
-
37 small_RTOS.rar
282.25 KB, 下载次数: 99, 下载积分: 黑币 -5
small_RTOS
评分
-
查看全部评分
|