在单片机的开发中,软件的过程式开发(跟自顶向下的过程式语言有直接关系)是长久以来的软件开发方法,但不能否认的是,存在数十种为人所知和不知的 RTOS,甚至是开发人员自己动手构造一个简单的 RTOS 以提高工作效率和改善软件构建的复杂性,这也是不争的事实。
在业界存在着大量技术顶尖的工程师,也有无数的新人加入进来,从事这项表面崇高的工作。很多资深的单片机研发工程师的软件构造能力很有限,有少数人则会批判软件人员的前期工程安排和自我臆断,从软件的角度来说,这些工程师的代码书写的的确很令人头疼,那真是程序。没有层次和架构可言,并且他们并不经常信任伙伴的劳动成果。
很荣幸有机会从事一项基于 PIC 单片机的关键项目的开发工作(主要是对某项数据进行监视和反馈),在分析了整体软件布局以后,我惊叹的发现长久以来的传统工作方式如此低效,即便是对于整个项目都归于一个人的工作方法而言,后期的项目负担尤其沉重,对于团队来说,更加糟糕。这主要是过程式软件结构造成的(排除文档而言,因为大多数类似
用于少数人开发的电子产品都很少拥有正规文档)。当然不排除项目人员素质参差不齐的情况。
在进行全局性的了解之后(项目中确定使用 Microchip 的 PIC18F4520 芯片,它拥有至多 32KB 的程序空间),有一件事情是另我感到困惑的,18 系列 8 位芯片只有 2 级中断,1.5KB 的 RAM,PIC 芯片中存在大量的关键寄存器,从某种程度上来说,多个任务之间的现场保护的内存开销是很大的(如果你需要 4 个或更少的任务,那么或许可以少一些担心
),任务切换所需的时间代价也是一个必须关注的事情,因为需要记录任务现场。
Jack OS 是专为 PIC 芯片开发的操作系统,其设计重点针对团队工作和代码规范性,以及更利于程序除错。我和我的团队在纷乱的项目中利用了 Jack 减少了复杂性,增加了软件层次感,使其更加模块化,代码变得可以重用,并配合 BUGFREE 很好的协调了后期工作。在后来的研究中,在相似项目上所记录的数据均有大幅度提升,这在外部主要体现在:
1. 项目进度上与计划上更加吻合,加班次数和时间明显减少
2. 结构代码上没有明显压力,歧义大大降低
3. 一些非单片机人员快速融入开发,尤其是对于 win32 程序员来说
4. 团队人员明显变得乐观
5. 更加容易实施软件工程方法,如团队协调配合
6. 可使项目对人员的技术要求降低,使开发门槛更容易进入
而在内部,又表现为:
1. “窗口”和任务程序中更容易快速除错和调试
2. 对于增量式开发更加具有优势
3. 对于批量式开发更加具有支持性
4. 电子产品运行变得更加稳健,并且使系列产品突出一致性
我们不排除数据有偏差,但总体来说,大的方向是具有正确性的。而 Jack 对 PIC 单片机
的最大支持,就是在快速搭建程序模型以及“窗口”程序良好的概念上。你甚至可以同时
使用多任务和“窗口”程序来搭建复杂的单片机软件。
====================================================================
Jack——PIC 单片机操作系统,免费提供支持库,获得完整技术支持!
官网:
http://www.os-base.com