驱动和BSP开发事项

驱动和底层的封装开发,技巧有很多,通常会考虑以下的一些原则:
       
1 )、驱动效率优先,简单优先。举例来说不是所有的驱动都一定要用中断,如果轮训就可以达到我们系统所需求的实时性,为啥我们不用轮训呢?这样软件处理简单并且灵活,简单就意味着少犯错误。
       
2 )、驱动中要留下足够的调试手段和后面, trace 很重要,但是 trace 多了又会影响效率,所以通常会考虑在驱动中设置打印开关,用以实现分级打印,同时可以动态修改打印级别,便于现场定位。
       
3 )、在满足性能的情况下,我们尽量减少在内核态的操作,而且将大部分的工作移到用户态来执行(这样可能会降低了性能),但是会带来系统的稳定性。不会由于内核态的某些误操作,导致整个系统挂掉。
       
4 )、对于可能导致阻塞的系统调用,驱动中要多考虑一下,是否必须这么用
       
5 )、驱动要考虑系统的重入问题,这点在 I2C 这种共享总线的驱动上一定要仔细考虑,因为有些对于芯片寄存器的访问中间是不能被打断的。
       
6)、BSP 层的开发,最好能够首先界定出 BSP 的功能需求,然后结合需求来定义定义 BSP 层的框架,根据我今天的了解,我认为 BSP 的封装不仅仅是对 driver 简单的薄封装,而是 driver 上的高度抽象,并且会包含部分的系统控制功能在里面,先把这些功能从逻辑上先理清楚,然后再考虑接口的实现。

你可能感兴趣的:(c,框架,工作)