硬件操作系统(HOS)进展与阶段总结

xiaoxiao2021-02-28  77



硬件操作系统(HOS)进展与阶段总结

两个月前在《试论推行硬件操作系统(HOS)的可能性及必要性》一文中陈述了我开发硬件操作系统的想法。经过两个月的探索和实践,有一些初步的结果,现在和大家分享一下。

 

首先需要更正前文的一个错误假设和推断,即“在这个方案中我们可以设计一个嵌入式Shell及解释器,把它控制在100KB~150KB。”在深入了解CC2530flash地址空间结构后,发现这个intel51内核的芯片的最大线性地址空间为64K,如果程序代码超过这个值,就要涉及到复杂的Bank操作(即非线性地址空间到线性地址空间的转换操作)。我们希望这个程序能够保持设计到实现的简洁和一致,而不是引入复杂晦涩的地址管理代码。

 

于是我们重新在TI提供的网络资源中寻找更适合的基础方案。我们发现最简单的也许是最有用的!这个最简单的程序拥有无线通讯功能和一个开关量的操作功能,甚至还有LCD和简单的菜单功能。它编译完成后只有5KB左右。这是我们想要的!于是我尝试着将一个C语言的子集加入进去,这个C语言包括charint类型,支持功能可以从关键字看出forwhileswitchcasebreakdefaultifelsereturn等,同时支持函数调用。有趣的事情发生了,编译完成后,它仅占用的27KBFlash空间。不仅没有超过一个Bank32KB),而且还留有不少余量。接下来我们继续作了大量工作,在没有进行更多代码优化的情况下,这个小的编译器可以编译并生成最大3KB左右的“小程序”。这对于我们最初的设想是够用的,一般的,一个对芯片外设的访问程序代码大小不会超过3KB。于是基于这些事实,我们可以做更有意思的事情,在同一个Bank里我们可以放入多个小程序,借助主程序可以让这些小程序作更多更复杂的事情。同时,因为主程序没有超过一个Bank,所以它可以永久地放在Common Bank中,这样所有Bank都能派上用场,地址管理相对简单了,而整体功能和灵活性却大大的扩展了!

 

所以,基于这些实验和事实,我们基本能实现前文对无联网建设的设想。

 

下面想简单总结一下自己的感受和体会。我的博客中绝大部分是技术创新文章,而其中的绝大部分不涉及艰深晦涩的理论推导。事实上这些创新反复用到的多是一些大学本科的知识。但是请千万不要将这些创新等同于本科水平。我想说的是,大家本应该都有机会作这样的创新,可是提出联网发展战略也有十年时间了,大家在这些方面的实践和创新还是远远不够的。痛定思痛,我认为问题在于在大学阶段没有真正的把专业基础课程学好、吃透。自己不应止步于考试合格,而应用实践的尺子衡量自己的知识积累;不应被畏难情绪打败,总是在困难面前绕着走,绕来绕去最终只能是被现实生活打败;不应为安逸的生活俘虏,要知道安逸的光阴的尽头就是生命的结束;更不应不知、不问缘由地享受生活,因为这是对勤劳者所创造财富的最大浪费。其实到现在大家仍然觉得生活富足,衣食无忧,而社会发展到现在,好像所有的创新都被先哲们发现,我们能做的甚少。我说你是被畏难情绪打败了,被安逸生活俘虏了!说句大实话,不是祖上留下的财富少,而是年轻一辈不知珍惜,不愿进取,把日子越过越穷了。所以会过日子的人,有社会良知的人,即使每天吃小米也是幸福的洋溢;不会过日子的人,即便是天天吃山珍海味,也是生活乏味,思想僵化。

 
转载请注明原文地址: https://www.6miu.com/read-52962.html

最新回复(0)