板子快要回来了,这几天开始着手修改项目了。突然又感觉学了不少东西,在这里记录下来,也算是一点进步吧。
1,关于fb显示图片的问题,以前以为所有的图片,要在lcd上显示,必须转换为RGB格式的,网上也都这么说的,但现在发现,原来不是,至少我现在要做的这个系统,fb是支持yuv420数据的。还有fb页的概念,下来要好好看一下fb驱动代码。关于fb,在我们这个系统里,jpg图片通过ffmpeg转化为yuv420格式的数据直接显示在lcd上面,这不失为一种lcd上显示图片的方案。但还要继续研究怎么很好的使用,ffmpeg这个东西。另外一种显示方案就是libjpeg库,很多系统都用这个,先关注一下。当然,fb为什么支持yuv,为什么支持rgb,下来要好好研究一下。
2,共享内存的使用。每一个ipc通信,都要有一个key_t型的id号,用:
key_t ftok( char * fname, int id )
fname就时你指定的文件名,id是子序号。然后,取得共享内存段,用:
int shmget(key,size,shmflg);
key_t key 是这块共享内存的标识符。如果是父子关系的进程间通信的话,这个标识符用IPC_PRIVATE来代替。但是刚才我们的两个进程没有任何关系,所以就用ftok()算出来一个标识符使用了。
int shmsiz 是这块内存的大小.
int flag 是这块内存的模式(mode)以及权限标识。
模式可取如下值: 新建:IPC_CREAT
使用已开辟的内存: