【android12-linux-5.1】【ST芯片】HAL移植后没调起来
ST传感器芯片HAL按官方文档移植后,测试一直掉不起来,加的日志没出来。经过分析,是系统自带了一个HAL,影响的。
按照官方文档,移植HAL后,在/device/<vendor\>/<board\>/device.mk*路径增加PRODUCT_PACKAGES += sensors.{TARGET_BOARD_PLATFORM}。生成的sensors.{TARGET_BOARD_PLATFORM}.so会被在刷系统的时候安装到目标机器的/system/vendor/lib/hw/位置。
我进入到目标机器的hw目录下查看,发现有两个sensors.*.so,另一个应该是系统源码自带的。源码搜索后,发现在hardware/rockchip/sensor/st/Android.mk有配置如下图。该配置会生成一个sensors.$(TARGET_BOARD_HARDWARE).so文件,且安装到目标机器hw目录下。
LOCAL_MODULE := sensors.$(TARGET_BOARD_HARDWARE)
LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_RELATIVE_PATH := hw
在sensor的HAL逻辑中,打开so是有检索顺序的:
第一顺序:sensors.$(TARGET_BOARD_HARDWARE).so
第二顺序:sensors.{TARGET_BOARD_PLATFORM}.so
第三顺序:sensors.default.so
考虑到迅速实现,我直接在hardware/rockchip/sensor/st/Android.mk中的文件名后面加字符串,让该so名字改变,不影响我们的目标文件调用就行。修改后如下图:

修改完成后,直接编译刷机就行。完成后,开机就能看到我们移植的HAL中添加的日志了,说明移植的HAL已经默认被系统调起来了。
新人入行,经验分享,如有所误,欢迎指出~
版权归属:深圳市琪智科技有限公司-花花
相关文章:
【android12-linux-5.1】【ST芯片】HAL移植后没调起来
ST传感器芯片HAL按官方文档移植后,测试一直掉不起来,加的日志没出来。经过分析,是系统自带了一个HAL,影响的。 按照官方文档,移植HAL后,在/device/<vendor\>/<board\>/device.mk*路径增加PROD…...
Redis Lua脚本执行原理和语法示例
Redis Lua脚本语法示例 文章目录 Redis Lua脚本语法示例0. 前言参考资料 1. Redis 执行Lua脚本原理1.1. 对Redis源码中嵌入Lua解释器的简要解析:1.2. Redis Lua 脚本缓存机制 2. Redis Lua脚本示例1.1. 场景示例1. 请求限流2. 原子性地从一个list移动元素到另一个li…...
百望云华为云共建零售数字化新生态 聚焦数智新消费升级
零售业是一个充满活力和创新的行业,但也是当前面临很大新挑战和新机遇的行业。数智新消费时代,数字化转型已经成为零售企业必须面对的重要课题。 8 月 20 日-21日,以“云上创新 韧性增长”为主题的华为云数智新消费创新峰会2023在成都隆重召…...
JMETER基本原理
Jmeter基本原理是建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,可以通过监听来记录测试结果; JMETER是运行在JVM虚拟机上的,每个进程的开销比loadrunner的进程开销大&#x…...
elementUI自定义上传文件 前端后端超详细过程
下面是使用Element UI自定义上传文件的前后端详细过程: 前端过程: 引入Element UI组件库:在前端项目中引入Element UI库,可以通过CDN引入或者通过npm安装并导入。 创建上传组件:在前端代码中创建一个上传组件&#x…...
快速排序笔记
一、quick_sort方法中如果 il,jr 会死循环的分析 1、示例代码 void quick_sort(int a[],int l,int r){if(l>r) return;int il,jr; //此处设置会导致死循环int x num[(lr)>>1];while(i<j){while(a[i] <x); //死循环的地方while(a[--j] >x);if(i<j) swap(a…...
JAVA:(JSON反序列化Long变成了Integer)java.lang.Integer cannot be cast to java.lang.Long
困扰了好几个小时。。。 场景:mybatisplus从数据库取数据,只是用了最基础的 LambdaQueryWrapper 来查询,实体类如下。 TableField(typeHandler JacksonTypeHandler.class) private Set<Long> ids; 得到的Set数据却是Set<Integer…...
ui设计师简历自我评价(合集)
UI设计最新面试题及答案 1、说说你是怎么理解UI的? UI是最直观的把产品展示展现在用户面前的东西,是一个产品的脸面。人开始往往是先会先喜欢上美好的事物后,在去深究内在的东西的。 那么也就意味着一个产品的UI首先要做的好看,无论风格是…...
Nginx 反向代理
一. Nginx 反向代理 1.1 反向代理介绍 在计算机网络中,反向代理一般指代理服务器,其首先代替内网的服务器接收客户端请求 并从一个或多个服务器检索资源,然后将这些资源返回给客户端。在客户端看来,这些资 源就好像来自代理服务…...
[论文阅读笔记25]A Comprehensive Survey on Graph Neural Networks
这是一篇GNN的综述, 发表于2021年的TNNLS. 这篇博客旨在对GNN的基本概念做一些记录. 论文地址: 论文 1. 引言, 背景与定义 对于图像数据来说, CNN具有平移不变性和局部连接性, 因此可以在欧氏空间上良好地学习. 然而, 对于具有图结构的数据(例如社交网络 化学分子等)就需要用…...
iview时间控件 动态不可选日期 可选择24小时范围内 时间往后退24小时
演示 html 设定 起始时间 触发on-change 方法结束时间 options 动态设置不可选择的日期。 <!-- 起始时间 --> <FormItem :label"$t(startTime)" prop"startTime"><DatePickertransfertype"datetime":placeholder"$t(pleas…...
Rest学习环境搭建:服务消费者
建一个子模块 导入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache…...
JVM内存模型介绍
内存模型 内存模型如下图所示 堆 堆是Java虚拟机所管理的内存最大一块。堆是所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域唯一的目的就是存放对象实例。所有的对象实例都在这里分配内存 Java堆是垃圾收集器管理的主要区域。从内存回收的角度来看&am…...
2000-2021年地级市产业升级、产业结构高级化面板数据
2000-2021年地级市产业升级、产业结构高级化面板数据 1、时间:2000-2021年 2、范围:地级市 3、指标:年份、地区、行政区划代码、地区、所属省份、地区生产总值、第一产业增加值、第二产业增加值、第三产业增加值、第一产业占GDP比重、第二…...
Java实现密码加密实现步骤【bcrypt算法】
一、SpringBoot和SSM框架均可实现密码加密的方法 在Spring Boot和SSM中实现密码加密可以使用bcrypt算法。bcrypt是一种密码哈希函数,通过将密码与随机生成的盐值进行混合,然后再进行多次迭代的计算,最终生成一个安全的哈希密码。 下面是使用…...
商城-学习整理-集群-K8S(二十三)
目录 一、k8s 集群部署1、k8s 快速入门1)、简介2)、架构1、整体主从方式2、Master 节点架构3、Node 节点架构 3)、概念4)、快速体验1、安装 minikube2、体验 nginx 部署升级 5)、流程叙述 2、k8s 集群安装1、kubeadm2、…...
MATLAB算法实战应用案例精讲-【深度学习】强化学习
目录 基础知识点 马尔科夫决策过程 策略梯度定理 蒙特卡洛策略梯度定理 REINFORCE 算法...
时间和日期--Python
1. 时间:time模块 总结:2. datetime模块 相比与time模块,datetime模块的接口更直观、更容易调用 2.1 datetime模块定义的类 (1)datetime.date:表示日期的类。常用的属性有:year、month、day; ÿ…...
【Git】学习总结
【Git】学习总结 【一】安装【二】Git克隆项目代码【1】idea下载git项目【2】创建新的分支【3】新建的分支推送到远程【4】合并最新代码到主分支【5】切换分支 【三】提交本地项目到远程🚀1. 配置 Git🚀2. 创建项目远程仓库🚀3. 初始化本地仓…...
手写Spring源码——实现一个简单的spring framework
这篇文章主要带大家实现一个简单的Spring框架,包含单例、多例bean的获取,依赖注入、懒加载等功能。文章内容会持续更新,感兴趣的小伙伴可以持续关注一下。 目录 一、创建Java项目 二、开始实现Spring 1、创建BeanFactory接口 2、创建Appl…...
AI数字人制作:零门槛创建专属虚拟形象
AI数字人制作:零门槛创建专属虚拟形象 【免费下载链接】Duix-Avatar 🚀 Truly open-source AI avatar(digital human) toolkit for offline video generation and digital human cloning. 项目地址: https://gitcode.com/GitHub_Trending/he/Duix-Avat…...
告别答辩 PPT 熬夜局!PaperXie AI 一键生成,3 分钟拿捏学术范答辩神器
paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AIPPThttps://www.paperxie.cn/ppt/createhttps://www.paperxie.cn/ppt/create 一、开题答辩人破防瞬间:PPT 做得好,答辩分数高一半 “论文写完了,PPT 才是真正的修罗场…...
深入解析STM32与FreeRTOS内存管理:从理论到实践的最佳配置策略
1. STM32内存结构深度剖析 第一次接触STM32内存管理时,我也被那些专业术语搞得晕头转向。直到把开发板跑死机十几次后,才真正理解RAM和Flash的区别。简单来说,RAM就像你的办公桌面,随时可以读写但断电就清空;Flash则是…...
Shiny框架终极指南:输入控件与输出渲染的完美交互原理
Shiny框架终极指南:输入控件与输出渲染的完美交互原理 【免费下载链接】shiny Easy interactive web applications with R 项目地址: https://gitcode.com/gh_mirrors/sh/shiny Shiny是R语言生态中一款强大的交互式Web应用框架,它让数据科学家和分…...
5个维度深度评估:哪款内容解锁工具真正值得投入时间?
5个维度深度评估:哪款内容解锁工具真正值得投入时间? 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在数字信息时代,付费墙已成为内容获取的主要障…...
手把手教你用Cline插件5分钟搞定DeepSeek-R1模型接入(附硅基流动平台2000万Token福利)
5分钟极速上手:用Cline插件无缝对接DeepSeek-R1大模型实战指南 当你第一次听说只需要5分钟就能让一个强大的AI模型为你工作时,可能会觉得这像是某种夸张的营销话术。但作为一个曾经花了整整三天时间才搞定第一个模型接入的开发者,我可以负责任…...
告别CTex!TeX Live+Texstudio组合安装避坑指南(Windows/Mac双平台)
告别CTex!TeX LiveTexstudio组合安装避坑指南(Windows/Mac双平台) 如果你曾经使用过CTex套装,可能会被其"开箱即用"的便利性所吸引。但当你需要跨平台协作或追求更灵活的定制时,TeX LiveTexstudio的组合无疑…...
PyAEDT终极指南:3个技巧让你快速掌握Python自动化工程仿真
PyAEDT终极指南:3个技巧让你快速掌握Python自动化工程仿真 【免费下载链接】pyaedt AEDT Python Client Package 项目地址: https://gitcode.com/gh_mirrors/py/pyaedt PyAEDT是Ansys Electronics Desktop(AEDT)的Python客户端工具包&…...
怎样避免网站因 SEO 优化而被搜索引擎惩罚
<h2>怎样避免网站因 SEO 优化而被搜索引擎惩罚</h2> <p>在当今数字化时代,搜索引擎优化(SEO)已经成为了任何网站想要获得流量和提升知名度的关键因素。SEO 优化的过程并不是一帆风顺,特别是在过度优化时&#x…...
抖音无水印下载完全指南:5分钟掌握批量下载核心技巧
抖音无水印下载完全指南:5分钟掌握批量下载核心技巧 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support…...
