随着一些用户使用raw-os开发项目,逐渐暴露出一些问题,为了引导更多的用户顺利开发项目。有必要说明一下。
如果你随便用几下就测试出raw-os的不稳定性或者bug, 那恭喜你了,txj会给你发钱,一个bug一万。代码出了问题,首先请检查你的设计,api是否用对,设计是否正确,你的代码是否正确。raw-os的稳定性远远要比你自己随便写几行代码要强得多,如果随随便便就有问题了,raw-os还是早点关门倒台的好。目前为止开发者问题形形色色,但是没有一个问题是内核bug引起的,归根到底还是用户的问题。
绝对禁止改动raw-os的任何一行代码,raw-os是基于LGPLV3 协议的,此协议禁止用户改动任何代码。这样做是充分为了保护用户,如果你有什么需要实现的内核功能,或者api请告诉txj,如果他觉得合适的话,他肯定会增加的,如果他不增加的话,也会告诉你解决问题的使用方法。Raw-os的内核的每一行代码都经过严格的测试以及数年的逻辑推理,改动里面任何一行代码都可能会带来意想不到的bug, 如果你坚持要自己改动代码,那只能自己背负由此带来的后果。
一定要有驱动的单元测试以及单元组件的测试。如果你实现了一个gui,请一定要做大量的功能测试以及长时间的稳定性测试后,才能进行下一个模块的工作,不然很有可能你会走回头路重新做起。往往等到应用环境复杂了,单元测试没做好的话,定位问题相当困难。往往解决一个问题需要比解决单元测试时候解决该问题需要花的时间多出来数十倍。如果模块多了可以做一些模块间配合的组合测试,这个时候往往也能测试出一些设计问题,以及一些不稳定因素的存在。一个系统的设计和稳定性往往是单元测试,组合单元测试慢慢叠加的一个过程,缺少此过程,往往最后搬起石头砸伤自己的脚。
对于一些新手入门来说,VC的仿真环境是极力推荐的,打开main.c自己可以尝试着增加自己的例子来学习api的用法和验证自己的逻辑,这样的话就彻底入门了。除了网上的开源书之外,一些其它rtos的书,比如ucos等的都会有直接的帮助。学习rtos是一个长期的活,也是未来一个电子研发公司公司成长所必需的。目前除了裸机就是os, os除了linux等大型系统就是rtos, 这个过程电子研发公司都要去面对,晚痛不如早痛,早痛早解决。
目前所想到的开发者的问题就是这些,以后有更多的问题会随时写心得,方便更多的人使用raw-os做开发。学习和使用rtos到现在还是一件非常刺激的事,因为你永远都在挑战自己的设计方式,没有最好,只有更好。