- 博客(31)
- 资源 (4)
- 收藏
- 关注
原创 android11:基于rk3568 适配裕泰以太网Phy芯片YT8512
android11:基于rk3568 适配裕泰以太网Phy芯片YT8512。
2024-02-19 15:44:06
1909
4
原创 rk3588 repo 更新代码是报错:ModuleNotFoundError: No module named ‘formatter‘
如题 在使用repo 拉取瑞芯微提供的sdk 时,由于Ubuntu 版本不同,导致 执行repo sync 更新代码时报错:ModuleNotFoundError: No module named 'formatter'。原因就是:formatter已经在python3.4标记成废弃接口,在python3.10已经正式删除,并且其依赖的cStringIO也已经删除。因此就算你按照网上教程添加这个模块也会出现各种各样的错误。
2023-11-26 09:29:36
4256
8
原创 Android 编译的配置文件:android.mk 和android.bp
(android 10 取消这个参数)此参数会影响到库生成后的存放位置.user: 指该模块只在user版本下才编译eng: 指该模块只在eng版本下才编译tests: 指该模块只在tests版本下才编译optional:指该模块在所有版本下都编译Prelink利用事先链接代替运行时链接的方法来加速共享库的加载,它不仅可以加快起动速度,还可以减少部分内存开销,是各种Linux架构上用于减少程序加载时间、缩短系统启动时间和加快应用程序启动的很受欢迎的一个工具。
2023-11-22 13:39:39
2662
1
原创 android 车机 BootAnimation开机动画代码分析
从整体来看开机动画模块是安卓系统中最简单的一个模块,文件少,代码简单。对于初学者来说,bootanimation 是入门android底层开发最好的模块之一了,从模块中我们能够大概知道Android代码的设计思路和代码编写规则。
2023-09-07 10:11:57
796
原创 编译AOSP 出现错“libcrypto-NO_USE_RDRAND: rk3399“
基于ubuntu 编译rk3399 AOSP时报错:内存不足 增大内存或者交换分区。
2023-08-09 16:34:51
203
原创 Android 10 如何关闭selinux权限
在/selinux.cpp文件中IsEnforcing()方法中直接返回false就是关闭selinux权限了。1、在/selinux.cpp文件中SelinuxInitialize()方法初始化selinux权限问题。由于应用层访问设备节点的时候,因为selinux权限问题而访问不了,所以就先关闭selinux。设置版本为 permissive 模式,有三种方式。方法二、 修改 dts bootargs 参数。方法三、修改 init 代码。
2023-08-09 16:29:53
596
原创 Android 系统镜像文件介绍
android启动时 首先加载ramdisk.img镜像,并挂载到/目录下,并进行了一系列的初始化动作,包括创建各种需要的目录,初始化console,开启服务等。:System.img是在init.rc中指定一些脚本命令,通过init.c进行解析并挂载到根目录下的/system目录下的。app的目录下是所有的apk包,即包含了Android源码自身所发布的应用程序,又包含了用户自己编译的应用程序apk包,bin目录下是基本的命令,系统的本地程序,主要是Linux系统自带的组件,
2023-08-09 16:09:00
3118
原创 android 实用adb push 文件时报错“adb: error: failed to copy”
新手在使用adb push文件时往往会遇到push不进去的情况通过报错信息可以看出,是因为文件夹权限不足导致的,因为是只读文件系统,所以在进行文件复制过程中无法写入文件导致复制失败。
2023-08-09 16:01:10
7559
1
原创 android hidl 介绍
HIDL 是围绕接口进行比啊你的,接口是面向对象语言实用的一种用来定义命令行为的抽象类型。每个接口都有一个软件包。
2023-08-09 15:58:31
242
原创 Android 硬件抽象层HAL 驱动编写方法演示
HAL 是一个抽象层,具有供硬件供应商实现的标准接口。HAL 允许 Android 不了解较低级别的驱动程序实现。使用 HAL 允许您在不影响或修改更高级别系统的情况下实现功能。HAL 开始语言是HIDL,它是一种接口描述语言,用与指定HAL与用户之间的接口。
2022-11-29 15:12:10
2680
原创 esp-adf音频框架 :audio stream->HTTP Stream
http stream hook 类型HTTP_STREAM_PRE_REQUEST = 0x01, //将在HTTP客户端与服务器建立连接之前调用事件处理程序/** 当HTTP Client请求数据时,将调用事件处理程序。* 如果fucntion返回值(-1:ESP_FAIL),则HTTP Client将停止.* 如果fucntion返回值> 0,则HTTP Stream将忽略post_field* 如果fucntion返回值= 0,HTTP流继续从post_field发送数据(如果有)
2022-11-26 21:18:50
725
原创 esp-adf音频框架 :audio element
为了能够控制从输入,处理到输出的数据生命周期的特定阶段,audio_element对象提供了在每个阶段触发回调. 可用的回调函数有七种类型:打开,查找,处理,关闭,销毁,读取和写入.打开,查找,处理,关闭,销毁,读取和写入.在audio_element_cfg_t 中配置。Element的一般功能是在输入中获取一些数据,对其进行处理,然后输出到下一个。每个元素都作为单独的任务运行。对象是使用ADF开发的应用程序的基本构建块。实际上,每个解码器,编码器,滤波器,输入流或输出流都是音频元素。
2022-11-26 21:17:58
797
原创 ESP32+ILI9341驱动LittleVGL
只是简单的整理一下,实际上并没有什么难度,只要熟悉了esp32的开发流程之后移植LittleVGL可以说十分容易。欢迎关注我的个人网站物联网开发入门 - 知乎 (zhihu.com)
2022-11-26 21:17:19
1901
原创 spiffs 文件系统在esp32中的应用
spiffs 介绍SPIFFS 是一个开源文件系统,用于 SPI NOR flash 设备的嵌入式文件系统,支持磨损均衡、文件系统一致性检查等功能。spiffs 源码地址spiffs 特点编辑切换为居中添加图片注释,不超过 140 字(可选)而我们知道乐鑫的esp32的大部分存储都依赖于SPI flash ,spiffs可以说对于esp32 真可谓是最合适不过的了。
2022-11-26 21:17:00
1482
原创 主流车载操作系统简介
车载操作系统离不开操作系统的支持,随着汽车的不断发展,车载操作系统也随之蓬勃发展,一下介绍几个应用比较广泛的车载操作系统。
2022-11-26 21:16:34
5181
原创 esp-adf框架笔记 1 概述
ESP-ADF 在 ESP-IDF(乐鑫物联网开发框架,广泛运用于 ESP32 的 SDK)的基础上开发而成,具有高度的灵活性,既可作为一整套应用方案,面向配网、OTA (Over The Air) 等各类应用场景,亦可作为开发平台,供开发人员搭建各类定制化应用场景。ESP-ADF 具有一系列丰富的功能特色,涵盖编解码器、发送端和接收端音频流、管线化支持、唤醒词引擎,以及其他各类服务和控制等。乐鑫音频开发框架:支持音频格式:MP3、AAC、WAV、OGG、AMR、TS、OPUS、SPEEX 等。
2022-11-25 10:29:01
2255
原创 esp-adf 音频框架:record_raw_http.c 简单分析
【代码】esp-adf 音频框架: 基于 record_raw_http.c 简单分析框架原理。
2022-11-25 10:23:35
479
原创 esp32开发快速入门 8 : MQTT 的快速入门,基于esp32实现MQTT通信
简介MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。2. 通信方式。
2022-11-25 10:19:40
6284
原创 esp32开发快速入门 7 : smartconfig 例程分析
smartconfig 直译过来就是智能配置,它是一种可以是wifi快速连接到网络的技术。可以省去直接将wifi账号和密码写入到无线设备中的过程,通过手机将无限设备连接到网络中去。smartconfig只是无线连接的一种,乐鑫还支持airkiss 方式将设备连接到网络。具体原理我就不过多介绍了,只是简单介绍一下esp32 如何通过smartconfig技术接入到网络中。esp32 进入smartconfig模式:将自己设置成wifiAP模式,以UDP的模式将此信息广播出去,等待有wifi接入。
2022-11-25 10:16:35
1747
原创 esp32开发快速入门 6 : esp32存储简介
应用程序可调用 nvs_open API 选择使用带有 nvs 标签的分区,也可以通过调用 nvs_open_from_part API 选择使用指定名称的任意分区。例如,您可以使用 /fat 前缀注册 FAT 文件系统驱动,之后即可调用 fopen("/fat/file.txt", "w")。命名空间的名称在调用 nvs_open 或 nvs_open_from_part 中指定,调用后将返回一个不透明句柄,用于后续调用 nvs_read_、nvs_write_ 和 nvs_commit 函数。
2022-11-25 10:11:29
1890
原创 esp32开发快速入门 5 : I2C(驱动SSD1306)
对于学嵌入式的来说,i2c在熟悉不过了,两根线数据线(SDA)和时钟线(SCL)在加上一根地线就可以完成通信。。具体硬件上怎么实现的我们暂且不管,我们只需记住这些概念就行了。
2022-11-25 10:04:49
2503
原创 esp32开发快速入门 4 : GPIO
esp32 是乐鑫即ESP8266后又一款标杆性的芯片,拥有低功耗,wifi&蓝牙双模,音频视频的应用等优点,在加上它良好的开源社区使得它在国内外物联网领域都十分流行。3. 之后只需要执行 gpio_set_level(gpio_num_t gpio_num, uint32_t level);2. 将gpio_config_t 赋值后,使用 gpio_config(&io_conf);esp-idf对于各种外设提供了丰富的接口函数和例程,用户只需阅读例程和函数注释就完全可以使用esp32的各种外设。
2022-11-25 09:56:55
990
原创 esp32开发快速入门 3:FreeRTOS(2)
假设当task1函数执行完buf[0]++后,切换到任务task2,task2也执行了buf[0]++,此时buf[0]=3,在切换回task1,此时在执行sum=buf[0]+buf[1]=3+2=5,这和我们想要的结果完全不同,当然只是我举的例子实际情况有可能和我说的不同,但我只想想说明这个问题,让人明白RTOS中不能使用这样的全局变量的原因。任务1向消息队列发送数据时,任务2取出数据,但是当发送数据的速度比取出的快就会导致消息队列放满的青睐。任务1 将数据发送给消息队列,任务2冲消息队列中接收数据。
2022-11-25 09:54:36
1979
2
原创 esp32开发快速入门 1
在物联网中大多数的设备使用的都是实时操作系统。在工作的这几年我明显的能够发现单片机开发越来越简单,各个芯片制造商不断的推到自家的软件开发辅助工具,使得工程师开发起来越来越容易,以stm32为例,一个stm32cubemx解决了大部分代码需求,前几年写的大段代码,现在有可能只需要在cubemx选择几个配置就解决。2. 沟通简化:实时操作系统都是统一的API接口,降低了开发难度和多人配合时的沟通成本,多人开发时大家都使用统一的API,大家只要定义基本的接口就可以了,不用去指定复杂的API文档。
2022-11-25 09:54:28
1365
原创 esp32开发快速入门 2:FreeRTOS(1)
以上是一个最简单了示例,我在每一个函数中都调用了vTaskDelay这个函数,vTaskDelay这个函数是延时函数(相对延时,延时时间并不准确),调用这个函数的原因在于跳出当前任务,因为RTOS是抢占是调度器,就是移植执行最好优先级的任务,所以如果不让最高优先级停下来的话 ,其他任务是不可能有执行机会的。另外注意,前缀要小写。创建任务: 使用函数xTaskCreate ,这个函数是freeRTOS提供的创建任务的函数,FreeRTOS官方已经提供了详细的注释,如果有阅读英文的能力最好是看官方提供的注释。
2022-11-25 09:54:10
1036
原创 android 源码管理工具repo
Repo:是对 Git 构成补充的 Google 代码库管理工具。Repo 可以在必要时整合多个 Git 代码库,将相关内容上传到 Gerrit 修订版本控制系统,并自动执行 Android 开发工作流程的部分环节。Repo 启动器会提供一个 Python 脚本,该脚本可以初始化检出,并可以下载第二部分,即完整的 Repo 工具。完整的 Repo 工具包含在 Android 源代码检出中。该工具默认位于 $SRCDIR/.repo/repo/... 中,它可以从下载的 Repo 启动器接收转发的命令。Rep
2022-11-09 17:53:50
1555
原创 Android 11:bluetooth@1.0蓝牙架构分析
介绍了Android11的蓝牙从app到hal的大概执行流程,对于移植蓝牙的同学有一定帮助。
2022-11-01 13:48:15
7254
原创 解决ESP32 make flash 报错:a fatal error occurred :MD5 of file does not match data in flash!
百度了一下,可是压根就没有相关问题,而且对esp32深入分析的文章都没有,只能Google了,本人英文水平有限,找了好久,就当我打算把这块板子扔了的时候找到解决方法,试了一下 我去 还真行!公司有项目用到wifi ,立马想到了esp8266和ESP32,esp32是一款相当不错的芯片,但是问题资料太少,而且大部分都是英文,对于新手来说遇到问题真的很难解决。这不不知道怎么搞的运行make flash 就失败了,但是make app-flash 却可以成功,以为是工程的问题,重新配置了工程,但是还是失败。
2018-09-14 15:58:59
15217
7
时间触发嵌入式系统设计模式
2012-11-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人