对于不同的平台,需要在对应的平台目录修改对应的 hcs 文件,接下来示例为在 rk3568下新增 uart4 uart9 uart7 的修改方法。
修改 vendor/hihope/rk3568/hdf_config/khdf/device_info/device_info.hcs 文件,device_info.hcs 中添加以下内容:
1、device3 :: deviceNode {
2、policy = 2;
3、permission = 0644;
4、priority = 40;
5、moduleName = "HDF_PLATFORM_UART";
6、serviceName = "HDF_PLATFORM_UART_4";
7、deviceMatchAttr = "rockchip_rk3568_uart_4";
8、}
9、device4 :: deviceNode {
10、policy = 2;
11、permission = 0644;
12、priority = 40;
13、moduleName = "HDF_PLATFORM_UART";
14、serviceName = "HDF_PLATFORM_UART_7";
15、deviceMatchAttr = "rockchip_rk3568_uart_7";
16、}
17、device5 :: deviceNode {
18、policy = 2;
19、permission = 0644;
20、priority = 40;
21、moduleName = "HDF_PLATFORM_UART";
22、serviceName = "HDF_PLATFORM_UART_9";
23、deviceMatchAttr = "rockchip_rk3568_uart_9";
24、}
在配置过程中要注意以下几点:
1 device3,device4,device5 是自定义的,可以根据实际情况修改
2 policy 表示服务策略,取值为 0 时,表示不发布服务,取值为 1 时表示向内核态发布服务,
取值为 2 时表示向内核用户态发布服务
3 moduleName 的值要与驱动实现的 HdfDriverEntry 结构体中的 moduleName 相同。
4 deviceMatchAttr 的值表示驱动的私有配置信息
5 serviceName 表示服务名称,服务加载成功之后会在开发板的/dev/目录下生成节点。例如
HDF_PLATFORM_UART_9 后面跟着的数据 9 是 UartOpen()的端口号
|