3588 pwm android12 的操作,包含 NDK native C++

问题: 客户需要在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 测试一下。

执行时有这个报错。

这个错误的解决方法 :

但是我还有另一种方式的测试,就是使用 android 的 NDK 。

1 首先是安装 android studio

发现网址 https://developer.android.com/studio?hl=zh-cn

无法下载 android studio 所以使用 网盘上之前的 android studio 进行安装。

这里需要等一段时间才可以 点击下一步,可能是在下载什么东西。

        

接下俩测试第一个程序。

出现这个界面

然后是 下载一个虚拟机。

从新下载一下 android11 的 SDK。

依然报相同的错误。

增加几个SDK看看。

还是不行。

还是这个报错。

继续解决:  原因是, 我自定义 了 SDK 的安装目录

这样做依然是 不可以。

干脆就要 卸载重装了。

        

卸载完。

重新安装。

剩下的步骤跟上面是一样的,只是我还是自定义了studio 的安装 的目录。

但是还是报错。

哈哈哈。彻底崩了。

接下来我就 安装一个 win10 的虚拟机。系统崩了大不了重新安装。

网页链接  下载 Windows 10

然后无脑下一步。

大概有4G

接下来就是 ,使用虚拟机安装 iso 了。

使用net 是可以上网的。

通过远程桌面的方式, 在win10 虚拟机 与 宿主机之间来 传输文件。

结果是不支持。

那么我就使用 共享的方式来传文件。

在虚拟机中直接使用这种方式。

虽然 我的 主机是 192.168.1.113,  虚拟机的ip 是: 192.168.128.132, 这样也是可以的。

然后安装的话,就是,一路next , 不设置任何的个人路径,看看怎么样。

但是在虚拟机中 win10 的安装报错。

然后重新 启动一下。

但是依然是这个报错。

重新sync 的方式。

在测试一遍 看看行不行。

还是不行。

我最终的解决方法: 去掉这个斜杠。

然后就是 安装虚拟机,按照上面的步骤进行安装。

结果又有报错。

在虚拟机中开启bios ,这是uefi.

结果跳到了, 重新安装的界面。

那么接下来就重新安装就好了。

这次对上了。

但是TMD ,bios 里面没有 虚拟化选项。

但是bios 里面依然是没有这个选项。

直接启动在系统里查看一下。

但是查不到。

最终还是使用的这个方法。

接下来 测试, android studio 的 虚拟机。

问题: 

下载SDK

但是在虚拟机中的 android studio 仍然是报一样的错误。

我开始怀疑这个 android studio 的安装包了。

尝试在虚拟机中下载 android studio , 居然是可以的。

依然是这个错误:

有点无奈了。

重新在PC机上 安装上了最新的 androdi studio 但是还是之前的 错误。

2 然后是安装 NDK

3 然后是编写native C++ 的测试程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/838137.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Gone框架介绍17 - 创建一个可运行在生产环境的Web项目

gone是可以高效开发Web服务的Golang依赖注入框架 github地址:https://github.com/gone-io/gone 文档原地址:https://goner.fun/zh/guide/auto-gen-priest.html 请帮忙在github上点个 ⭐️吧,这对我很重要 ;万分感谢!&a…

【Unity-Timeline进度条显示与拖动】

利用Unity 自带的Timeline 可轻松实现场景的巡检漫游效果, 基本使用参考以下链接: Unity中的Timeline Unity学习笔记——TimeLine的简单使用方法(一) 这里主要介绍如何通过滑动条控制播放的进度,效果图附上。 话不多说&#xff…

Minecraft 我的世界服务器Java版开服联机教程

本教程使用Paper核心开服 1、进入控制面板 1.2、第一次购买服务器会安装游戏端,大约5分钟左右,如果长时间处于安装状态请联系客服 2、开启服务器 2.1、等待出现同意Minecraft EULA 协议时,点击“我接受” 2.2、等待running出现服务器就打开了…

【C++】 C++ 编写 鸡兔同笼程序

文章目录 “鸡兔同笼”问题是一个经典的数学问题,要求根据总头数和总腿数来计算鸡和兔的数量。假设鸡有 2 条腿,兔有 4 条腿。可以通过以下步骤求解这个问题: 1 .设鸡的数量为 x,兔的数量为 y。2.根据题意,我们有以下…

vue 微信小程序 uniapp 微信头像上传裁剪功能

效果如图&#xff1a; 操作流程&#xff1a; 个人中心–点击设置头像–选择图片-裁剪–选取–上传 template <view class"meilan" style"position: relative;"><u-row justify"space-between"><u-col span"3">设置头…

nn.BatchNorm中affine参数的作用

在PyTorch的nn.BatchNorm2d中&#xff0c;affine参数决定是否在批归一化&#xff08;Batch Normalization&#xff09;过程中引入可学习的缩放和平移参数。 BN层的公式如下&#xff0c; affine参数决定是否在批归一化之后应用一个可学习的线性变换&#xff0c;即缩放和平移。具…

冒险岛vcruntime140_1.dll无法继续执行代码要怎么处理?教你一键修复vcruntime140_1.dll

当你在玩着冒险岛的时候&#xff0c;突然弹出一个vcruntime140_1.dll无法继续执行代码&#xff0c;这时候你是不是一脸懵逼&#xff1f;不知道怎么去解决&#xff1f;其实不需要担心&#xff0c;这是一个小问题&#xff0c;vcruntime140_1.dll文件是一个非常常用的dll文件&…

STM32最小系统

组件描述主控芯片STM32F103C8T6等时钟源外部晶体振荡器或者陶瓷谐振器&#xff0c;通常在4MHz到25MHz之间复位电路包括复位按钮和复位电路&#xff0c;用于将单片机置于初始状态电源电路提供稳定的电压&#xff0c;通常为3.3V或5V编程/调试接口SWD接口或JTAG接口等&#xff0c;…

JavaScript基础知识强化:变量提升、作用域逻辑及TDZ的全面解析

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 ⭐️ 引言&#x1f3af; 变量提升(Hoisting)&#x1f47b; 暂时性死区&#xff08;Temporal Dead Zone, TDZ&#xff09;解释&#x1f4e6; var声明&#x1f512; let与const声明&#x1f4d6; 函数声明 与 函数表达式函数声…

JavaScript-BOM编程

BOM对象 1 什么是BOM2 window对象的常见属性3 window对象的常见方法4 通过BOM编程控制浏览器行为演示5 通过BOM编程实现会话级和持久级数据存储 1 什么是BOM BOM是Browser Object Model的简写&#xff0c;即浏览器对象模型。 BOM由一系列对象组成&#xff0c;是访问、控制、修…

【网络安全】【Frida实战案例】某图xx付费功能逆向分析(二)

文章目录 一、目标应用二、环境三、步骤1、重打包2、运行打包后apk3、找到签名信息&#xff08;1&#xff09;、查看apk签名信息&#xff08;2&#xff09;、hook Android方法获取apk签名信息&#xff08;3&#xff09;、转为md5验证 4、hook apk签名信息 四、总结五、相关源码…

Learn Next.js(浅全栈)

Learn Next.js 中文教程

Pytorch代码基础—张量

Pytorch代码—张量 Pytorch张量 张量的属性&#xff1a; data&#xff1a;被包装的Tensorgrad&#xff1a;data的梯度grad_fn:创建Tensor的Function&#xff0c;是自动求导的关键requires_grad&#xff1a;指示是否需要梯度isleaf&#xff1a;指示是否是叶子结点&#xff0…

2.4 IDEA开发词频统计项目

文章目录 2.4.1 词频统计准备工作2.4.2 本地模式运行Spark项目2.4.3 集群模式运行Spark项目 2.4.1 词频统计准备工作 2.4.2 本地模式运行Spark项目 2.4.3 集群模式运行Spark项目

Etsy和其他平台的不同之处

Etsy平台每月的访问量大概是3.9亿&#xff0c;活跃用户有近9000万。区别于现在大部分的电商平台都是以快消产品为主&#xff0c;产品竞争激烈&#xff0c;而Etsy平台售卖的定制性原创产品便脱颖而出&#xff0c;更受消费者欢迎。 Etsy可以说是一个线上市场&#xff0c;提供一个…

AI预测福彩3D采取887定位大底=23策略+杀断组+杀组选+杀和尾+杀和值012缩水测试5月15日预测第1弹

昨天与一位玩3D的彩友通过视频直播的形式聊了下&#xff0c;受益匪浅&#xff0c;给我提供了一些比较有价值的建议&#xff0c;比如&#xff0c;对于887的定位策略&#xff0c;方向是没问题的&#xff0c;但是8873的话&#xff0c;还是缺乏一定的命中率&#xff0c;如果88723&a…

静态IP地址:网络通信的稳定之锚

在数字化时代&#xff0c;网络通信是企业运营和个人生活不可或缺的一部分。而在这个过程中&#xff0c;IP地址扮演着至关重要的角色。静态IP地址&#xff0c;作为一种特殊的网络配置&#xff0c;为网络通信提供了稳定性和可靠性。本文将从五个方面深入探讨静态IP地址的重要性、…

二进制部署k8s---下篇

一 master02 节点部署 1 先在master01 添加映射master02 对master02进行环境初始化 3 从 master01 节点上拷贝证书文件、各master组件的配置文件和服务管理文件到 master02 节点 scp -r /opt/etcd/ root192.168.11.12:/opt/ scp -r /opt/kubernetes/ root192.168.11.12:/opt…

贪心算法----最大数

今日题目&#xff1a;leetcode179------点击跳转题目 分析&#xff1a; 要把这些数组组成最大的数&#xff0c;首先我们把数字转化为字符串&#xff0c;根据自定义的排序规则把这些字符串字数排列&#xff0c;再用一个字符串接受这些字符串数字拼接成最大的字符串数字 排序规则…

秋招算法复习——5/15——三数之和

文章目录 问题描述思路分析实现代码分析与总结 问题描述 思路分析 三个之和为零&#xff0c;即a b c 0 &#xff0c;将这个拆解为b c -a &#xff0c;那就变成了两数之和问题。两重指针的模版来解决。 虽然列表中存在重复的数字&#xff0c;但是结果不允许存在重复的组合…