海思 Camera | Hi3559AV100 双系统下如何使用 sharefs?

        前段时间,在开发 Hi3559AV100 时遇到双系统下要传输共享文件的操作问题,同时,也有客户反馈,按照官方文档操作双系统下 sharefs 使用不了,所以整理了这篇博文,希望能够帮到进行 Hi3559AV100 开发的伙伴。



一、Sharefs 功能

       Sharefs 可使 A53UP Huawei LiteOS 访问 A53MP+A73MP Linux 上目录。 其源码目录位 sdk/osdrv/components/ipcm/class/sharefs Sharefs 采用 IPCM6 号端口。

Sharefs 采用 Server/Client 模型。 Server 提供被访问目录,接收 Client 发出的文件访命令并执行,然后返回结果给 Client。 在 Client 端,通过一些基本的文件或目录访问操作(open/read/write/close、cd/ls/stat等),其实际等同于访问 Server 端目录。


二、初始化

      A53UP Huawei LiteOS 链接 libipcm.a,libsharefs.a 库。 在 app_init 中执行初始化 :

      _ipcm_vdd_init();

      sharefs_client_init("/sharefs");

      

      修改源码后重新译烧录,具体译烧录方法可以段时间上传的博文《海思 Camera | Hi3559AV100 环境搭建》。


三、加载驱动


       A53MP+A73MP 加载 hi_ipcm.ko,并执行:sharefs & ,作为后台程序。

      系统起来后进入 /kmod 目录下加载驱动
     

insmod hi_ipcm.ko
insmod hi_virt-tty.ko
sharefs &

       

看到这样子,驱动就是加载成功了。


四、LiteOS 访问 Sharefs

       驱动加载完成后就可以通过 virt-tty 虚拟串口切换到 A53UP LiteOS 端


virt-tty a53

       这样在 A53UP Huawei LiteOS 就可访问 A53MP+A73MP Linux 的目录"/sharefs"

      A53MP+A73MP Linux:

      




      A53UP Huawei LiteOS:
    
     

      注意 :

       由 Client 指定的 Sharefs 访问目录(sharefs_client_init 的入参)在 Server 端必须存在,并且能被 Server 端应用 sharefs 访问。 不然,Client 会访问失败。

 

      说明 :

       有些客户可能会使用 sharefs 来传输一些视频码流文件来做其他处理。 例如:big-little 模式下通过 /sharefs 来解码会产生解码太慢的问题,这是因为 sharefs 只是用于传输音频的一些文件,如果是视频码流流,需要使用 datafifo 来传输。
       具体请参考 hisyslink\datafifo 里面的 sample 说明,通过 datafifo 获取到码流之后再调用 decode 的接口 即可。

    
       后面我们也会单独写一篇博文来处理上述问题,请期待~


       接下来我们也会不断更新更多关于海思相关的开发博文, 同时我们也会持续推出更多 ADAS 相关(S32V234、Hi3566V100、Hi3559AV100、Hi3518EV300、硬件、软件、算法等)的技术开发博文, 如社会需更深入交流,欢迎在博文下方评论或者关注给我留言。


【参考资料】:

       1. 《海思 Camera | Hi3559AV100 环境搭建》

       2. 《WM_Hi3559A/C V100 SDK 安装及升级使用说明.pdf 》

       3. 《WM_Hi3559A/C V100 中开发环境用户指南.pdf 》

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论