问题: 客户需要在android12 的界面上操作板卡上的 PWM 蜂鸣器设备。
过程:
1 了解一下 3588 android12 源码的 关于PWM 的驱动。
设备树找不到 pwm
但是,
还不知道,android12 最终包含的 设备树是哪个,但是经过我的测试, 在android12 的 shell 里可以通过 sysfs 操作 pwm15.
2 了解一下PWM 子系统。
主要参考的是 正点原子的手册。
linux 有pwm 子系统。 芯片厂商需要完成的函数。
官方的pwm 驱动 只是在 /sys/ 目录下生成节点。
3 能否在 /dev/ 下生成设备节点。
感觉是可以的。
可以按照裸机的方式+字符设备的方式,自己写驱动。
能不能 改官方的 pwm子系统呢? 估计不行,太复杂。
4 怎么在andorid界面上 操作 PWM
要么是 写一个 操作 /sys/ 节点的C应用程序,然后,android app 去调用这个应用程序。
要么就是通过 NDK的方式 去操作 PWM , 但是最后还是会走到 操作 /sys/ 的设备节点。
5 测试一下直接在shell 中操作 /sys/ 看看有没有权限的限制。
发现没有。
6 接下俩写一个 C程序,在shell 中执行,看看,有没有权限。
后来我发现,在andoid12 的shell 中,无法使用 gcc 编译器,难道是没有 gcc 编译器吗?
所以只能是, 先编译好, 应用程序,然后拷贝到 android12 的命令行,测试。
但是没有找到 android12 的编译器路径。
使用这种方法也不行。
干脆使用 linux 源码中的编译器。
直接在 build.sh 中便找到了。
用这个编译一遍测试一下。
将程序 通过U盘拷贝到 android12 的shell 测试一下。
执行时有这个报错。