打印

本人在竞选**里面发表了一篇“从武侠学技术”的**

[复制链接]
43624|227
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lldwsw|  楼主 | 2007-5-31 15:49 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 lldwsw 于 2013-3-10 08:53 编辑

本人2004年在21ic上发表了“实用单片机系统”,也叫McuSystem,基于周立功的DP51开发板编写的,很多初学朋友觉得还不错,现在在网上发表了他的第三版本,MS3,这个版本在消息机制上有改进,采用16位结构,适合一些采集系统,同时采用循环消息队列,软件定时器上有了比较大的改进,采用回调函数形式,并且支持中断内回调和中断外回调,这样可以实现伪任务的概念。第三个改进是去掉了很多具体的应用,留下一个内核可以适用于一个最小系统,具体应用请各位自己扩充,本人自己建了一些库,要应用的时候直接加上就可以了,第四个改进是应用了比较多的函数指针,这个可能对一般的单片机开发人员有点难度,但应用更加灵活了。<br /><br />本程序可以直接在keil的debug模式下执行,适合对单片机有一定理解的朋友。<br />不足之处请多多指出<br />地址21ic的FTP:<br />File.21ic.comMCU实用单片机系统第三版(带SI).rar<br /><br />内附SourceInsight3.5,一个非常好的C语言编辑器,内带程序注析自动生成实用说明,这个非常可以自动生成函数,文件头的注析。MS1,MS2:MS2比较简单,适合入门,MS1可以了解历史
MS1.rar (426.21 KB) MS2.rar (222.58 KB)

/***************************************/
最新MSV3.21版本, ms3.21.rar (207.54 KB) 增加了GUI部分,利用一个函数指针变量代替复杂的状态机,每个菜单只有一个显示函数和一个处理函数即可,附件为最新版本,可以直接下载,建议用SourceInsight看


实用单片机系统程序说明(MS3.21).pdf (290.42 KB)

基于NXP的LPC13XX开发的MS4,评估板是基于MCU123,按键为GPIO0.0和GPIO0.6,BUZZ为GPIO2.8,MS4基于MS3平台开发,结合多家评估板的程序而成。因此版本刚发布,可能存在一些bug,请大家指出。

ms4.rar (673.42 KB)

基于STM32F103的实用单片机系统,为了避免与NXP版本搞混淆,特意用MS5,现在发布测试版本,欢迎使用并报告bug,QQ:26033613
MS5.rar (594.13 KB)
MS5说明:
MS5基于STM32F103设计开发,可以在Keil下软件仿真调试,不需要实物硬件板子,UART1作为人机窗口。硬件测试是基于正点原子的miniSTM32F103RBT6板子测试,资料是开源的。MS5主要基于MS4(基于NXP Cortex M3)升级而来,因为在2011年基于MS4做了6KW高频焊接机,增加了界面部分,采用函数指针加消息机制,感觉比较简单而有效,性能比较不错,尤其是针对工业产品,系统节拍分时设计有进一步的体会,把这两点融入到MS5中,同时修改了串口UART发送系统等待问题,先把串口数据放到一个buff中,系统节拍去检测buff,当有数据时,每个节拍发送一个,这样就避免了以前发送的时候,需要很长的等待问题。
升级为MS5的根本目的作者是为了设计一款仿西门子S7系列的分布式PLC,应用在自己公司的自动化控制领域及工业电源设备上。同时考虑到今后这个PLC系统需要推向市场,所以选择了STM32这颗比较通用的芯片来设计。作者把这个PLC系统叫做msPLC,初级版本开源设计,包括软硬件。今后关于PLC的一些开发,都会在MS5中得以体现,也希望MS5发展成为针对工业控制领域的系统平台。
读者需要明确的是,MS5是一个系统平台,它不是一个RTOS,它是一个为了简单、可靠、看得懂代码,容易上手,缩短开发周期而构建的平台。MS5是一个前后台系统,作者也曾多次想上RTOS之类的,但对于工业产品深入分析后,发现绝大部分是没必要的,并且引入了自己不了解,代码把握不了的RTOS,一旦出现问题无法解决。所以就退回到了MS系统上来,尤其发现工业设备,采样速度是要求较高的,但执行可以慢一些,这样可以把中断作为紧急不可延时高速采样,系统节拍设定为万分之一秒用于AD,IO常规采样,节拍分频后获得百分之一秒用于按键、数码管,分频为十分之一秒用于数据显示刷新,分频为一秒用于RTC时钟。中断获取的数据,可以在万分之一的节拍中处理,也可以在更低速的地方处理,更可以在main主程序中处理。这就是所谓的,高速采样,低速处理,系统可以设计的非常有条理。
/*************************/
MS5.00 bug报告:感谢kingpoo发现MS5中的临界态处理不够严谨,退回到采用MS4中的临界态处理方法,并提出参数应该放在一个固定的头文件里,采纳建议,现已改进。
/*************************/
基于MS5与uCOSII的msOS发布
对很多只具有MCU51,Cortex基础的网友来说,学习RTOS是一件痛苦的事情,以uCOS为例,博主以前看过2遍,虽然有些概念,但因为涉及内容较多,理解不深,加上没做项目,过段时间就忘记了。这次为了做msPLC系统:一种网络化PLC,需要解决网络通讯,特意引入RTOS实现任务分离,所以把目前资料最为广泛的uCOS与博主自己设计的“实用单片机系统MS5”结合起来,uCOS具备RTOS的多任务,并且资料丰富,MS5博主自己开发的,最为熟悉,并且在单任务下代码简洁,功能齐全,尤其是对时间分割管理、消息机制、界面设计上,都有一定的模式,所以可以理解为基于MS5下,把单任务变成多任务处理,比较完美的结合。

uCOS可以认为是比较标准的一种RTOS,就RTOS来说,它不算复杂,但对于绝大部分只有单任务设计经验的嵌入式人员,已经足够复杂,主要有几点原因:

1、刚接触RTOS思想,对很多名词,功能、变量都不熟悉,这些一多就混淆了
2、文件结构、头文件定义复杂,条件编译、函数指针、结构体过多
3、外围函数过多,任务核心不突出


基于以上三点,本人以普通嵌入式人员的思维,做以下几点精简:

1、去掉一般项目不常用的函数,比如信号量事件(SEM)、开关量事件(MUX)、标记事件(FLAG)、内存管理(MEM),只保留消息邮箱(MBox)和消息队列(MQ)。
2、精简头文件,按常规写法修改,去掉不必要的条件编译
3、去掉统计任务(StatTask)和空闲任务(IdleTask),系统内部精简掉相关的变量,加入MS5,作为它的IdleTask,设置为最低优先级。
4、加入MBox和MQ例子,让其可以在Keil的Debug的UART1窗口下直接调试模拟。


初学者基于精简版本的uCOS,对照书本,学起来应该更容易,起码不会有强烈的排斥心里,在理解了uCOS内核后,再看完整的源码,就非常容易。

msOS今后将基于MS5为基础,引入其他免费公开的RTOS的一些优点,比如FreeRTOS和RT-Thread,形成自己的风格,避免版权,主要超工业自动化方向进化,专注于工业自动化领域。
精简的uCOS
uCOS.rar (531.22 KB)
基于MS5的uCOS
msOS.rar (629.29 KB)

相关帖子

沙发
席君秋| | 2007-5-31 16:31 | 只看该作者

下载来学习学习!

使用特权

评论回复
板凳
席君秋| | 2007-5-31 16:34 | 只看该作者

晕,下载不了,提示找不到文件!

使用特权

评论回复
地板
gyt| | 2007-5-31 21:01 | 只看该作者

链接

麻烦楼主重新写一下链接吧:)

使用特权

评论回复
5
lldwsw|  楼主 | 2007-5-31 22:36 | 只看该作者

http://file.21ic.com/MCU/实用单片机系统第三版(带SI).rar

使用特权

评论回复
6
王紫豪| | 2007-5-31 22:54 | 只看该作者

支持楼主,我记住你了,好人。

使用特权

评论回复
7
hq_y| | 2007-5-31 22:57 | 只看该作者

支持楼主,好人一个~~~~~~~~~~~~

使用特权

评论回复
8
席君秋| | 2007-5-31 23:10 | 只看该作者

5楼的地址也不行呢!

使用特权

评论回复
9
平常人| | 2007-6-1 07:59 | 只看该作者

路过,关注中

使用特权

评论回复
10
gyt| | 2007-6-1 09:47 | 只看该作者

可以

5楼的地址可以直接用旋风或者快车下载:)

多谢楼主!!!

使用特权

评论回复
11
席君秋| | 2007-6-1 09:50 | 只看该作者

倒塌,直接在IE打开不行,进入FTP也不行,

原来要用专门的下载软件!晕!

使用特权

评论回复
12
lldwsw|  楼主 | 2007-6-1 10:35 | 只看该作者

直接在

使用特权

评论回复
13
lldwsw|  楼主 | 2007-6-1 10:36 | 只看该作者

直接在IE下可以的,讯雷也可以下,我刚试过,多提一些意见

使用特权

评论回复
14
甄蔡组合| | 2007-6-1 10:48 | 只看该作者

好人 支持一下。用迅雷很快

使用特权

评论回复
15
zhaoyu2005| | 2007-6-1 11:26 | 只看该作者

迅雷可以下

顶一下

使用特权

评论回复
16
lldwsw|  楼主 | 2007-6-1 12:29 | 只看该作者

本人对这个软件的分析

1)消息机制,这个是现在程序的趋势,它可以把一个项目分成好几个部分,相对独立,程序的可读性加强,我们这边特别强调程序的可读性,因为可读性加强了,后续的维护,开发的成本都会降低。
2)现在一个项目的费用,硬件只占1/3,软件却占2/3,甚至更多,他提供了一个平台,搭好了一个框架,给了后来者一个思路,也就是往上添东西就行了,降低了开发时间。
3)这个架构在很多人使用后,证明是稳定的,这是一种积累,那么测试费用降低很多,因为他是可靠的,只需要测试自己的那部分就可以了。若你每做一个项目都起一套体系,那么测试就是这一次,到了下一次你自己都不敢说是安全的。
4)最后我们采用了平台的概念,采用减法,以前很多人都把做过的东西做成一个个函数,或者库之类的,可是时间长了,把一些条件忘了,结果各个函数连接起来,问题一大堆。因为函数之间的衔接是最难做的,并且每次都从头开始写,成本很高。消息机制就是把各个函数连接起来,把他做为一个整体,这样就是一个具体的东西,不会忘记和丢弃。
以上都是昨夜跟21ic上一个朋友聊的内容,也是写这个软件的意图。同时觉得比较有亮点的是软件定时器部分,这个本人觉得比较好。

使用特权

评论回复
17
wsl_5631| | 2007-6-1 13:22 | 只看该作者

不错,下了再说,谢谢楼主

使用特权

评论回复
18
gyt| | 2007-6-1 18:27 | 只看该作者

很好

楼主在16楼的分析很有水平:)

使用特权

评论回复
19
dengzhao| | 2007-6-2 16:13 | 只看该作者

楼主辛苦了

很不错的8位机系统,而且为进一步学习RTOS提供了思路

使用特权

评论回复
20
mingboal| | 2007-6-2 16:27 | 只看该作者

5楼的地址可以直接用快车下载



多谢楼主!!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

96

主题

859

帖子

50

粉丝