第一篇博文鼓励一下自己
嵌入式行业软件,一般从下到上,硬件驱动,硬件抽象层,中间件,应用层。
但对于开发除了纵向以外,往往还有横向的拓展。 有些硬件相关连的信息一般不对外公开,大家通过接口对接是一种普遍横向展开自己的模式。
模块之间交互方法就是必须要考虑的方式。
嵌入式大家一般模块独立。相互之间的数去传递就是通用的手法。
一般都会采用消息机制。 (Linux, QNX, OS21)
模块都会被分在不同的进程,各自管理自己的线程,为了通信各个进程都会开启消息通信线程。
进程间通信一般会利用共享内存,消息体都被封在共享内存里。
进程锁也用共享内存实现。
各个模块负责分解消息,然后通过模块提供的处理函数完成机能。
同步可以通过消息派发完成。
例:
进程1 进程2 之间同步通信。
1. 进程1 发信给进程2 要求同步
(进程1有2个线程 一个工作, 一个通信, 要求同步的时候工作线程调用【pthread_cond_wait】进入等待)
2. 进程2 完成同步要求工作给线程1回执
3. 进程1通信线程接到回执后调用 【pthread_cond_sign】将工作线程锁解开完成同步。