1.疯壳出品鸿蒙os-驱动程序接收应用程序的消息
2.鸿蒙开发环境搭建、源码下载和编译
疯壳出品鸿蒙os-驱动程序接收应用程序的消息
鸿蒙操作系统(HarmonyOS)的驱动程序设计允许应用程序向驱动发送消息。此过程通过`HdfIoServiceBind`接口实现,其在`hdf_io_service_if.h`文件中声明如下:
`struct HdfIoService *HdfIoServiceBind(const char *serviceName, mode_t permission)`
该接口接受服务名称和权限作为参数。成功获取服务后,调用服务的小程序 诗词 源码`Dispatch`方法向驱动发送消息。参数`serviceName`指向服务名称的指针,`permission`表示创建设备节点的权限,通常用户空间调用时使用默认值0。
在`myapp`应用基础上添加接口以获取`sample_service`服务并调用`Dispatch`方法,代码如下:
完整程序如下:(略)
驱动实现中,需要在`IDeviceIoService`类中实现`Dispatch`方法,其函数指针在`HdfDeviceIoClient`结构体中定义。驱动代码包括:
1. 在`sample_driver.c`文件中定义兼容`Dispatch`的方法,示例如下:
完整驱动代码如下:(略)
编译源码后,烧录到板子中执行`app`,结果显示消息发送和接收符合预期:
打印信息验证了程序逻辑的正确性。
`app`代码示例:
包括但不限于头文件和函数定义,如下:
完整代码如下:(略)
`驱动`代码示例:
包括`hdf_device_desc.h`头文件引用,cys 源码日志接口头文件引用,服务结构定义,`Dispatch`方法实现,以及驱动接口函数,如下:
完整代码如下:(略)
鸿蒙开发环境搭建、源码下载和编译
搭建鸿蒙开发环境,涉及到Linux与Windows主机的协同工作。Linux主机主要负责源码下载与编译,而Windows主机则用于程序烧写以及源码编辑。handerthread源码推荐在C盘预留至少G空间以确保顺畅运行。
相较于虚拟机,Win的Ubuntu子系统(WSL)在内存与CPU资源消耗上更为高效。同时,由于可以直接访问WSL环境,相较于多系统操作,文件交互更为便捷。安装Ubuntu . LTS可通过Win应用商店完成。
初次启动Ubuntu . LTS会涉及软件安装与配置,raspicam源码耐心等待几分钟直至完成。安装目录为%USERPROFILE%\AppData\Local\Packages,Linux系统的根目录为rootfs,而你的家目录为/home/yourname。WSL下系统硬盘自动挂载,如C/D盘对应/mnt/c,/mnt/d。
安装VcXsrv以实现X远程显示,下载后进行默认安装。jedisshardinfo 源码启动XLaunch,选择“one large window”,Display number设置为0,其余保持默认即可。
安装桌面环境所需的必要软件,遇到问题时先更新apt-get,问题通常迎刃而解。配置CCSM(桌面控制中心)后,输入相应命令在XLaunch上显示桌面。
在Windows与Linux之间互看文件,可以通过在Ubuntu下查看“/mnt”目录实现。若需查看Ubuntu Python版本,可在/usr/bin下执行ls -l python*命令。系统中应包含python3.7及以上版本,确保满足需求。
修改python命令指向的版本,使用mv命令将python3改名为python3.bak,然后使用ln -s命令将python3.8链接至python。配置repo工具用于下载与管理源码。
下载Harmony OS源码,如已完成,安装文件系统打包工具(dosfstools、mtools、zip)。执行编译指令前,确保scons命令路径在环境变量中。
使用虚拟env环境编译源码,执行编译目标平台的命令:/bin/python build.py wifiiot。如果在过程中遇到编译器问题,检查文件路径是否在环境变量中,添加至环境变量即可解决。
整个过程耗时约一天,系统空间需求接近G,建议在安装前做好系统空间管理,确保过程顺畅。通过以上步骤,成功搭建鸿蒙开发环境,为后续的源码下载与编译打下坚实基础。