自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (4)
  • 收藏
  • 关注

原创 android11:基于rk3568 适配裕泰以太网Phy芯片YT8512

android11:基于rk3568 适配裕泰以太网Phy芯片YT8512。

2024-02-19 15:44:06 841 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 2382 6

原创 Android 编译的配置文件:android.mk 和android.bp

(android 10 取消这个参数)此参数会影响到库生成后的存放位置.user: 指该模块只在user版本下才编译eng: 指该模块只在eng版本下才编译tests: 指该模块只在tests版本下才编译optional:指该模块在所有版本下都编译Prelink利用事先链接代替运行时链接的方法来加速共享库的加载,它不仅可以加快起动速度,还可以减少部分内存开销,是各种Linux架构上用于减少程序加载时间、缩短系统启动时间和加快应用程序启动的很受欢迎的一个工具。

2023-11-22 13:39:39 1610 1

原创 android 车机 BootAnimation开机动画代码分析

从整体来看开机动画模块是安卓系统中最简单的一个模块,文件少,代码简单。对于初学者来说,bootanimation 是入门android底层开发最好的模块之一了,从模块中我们能够大概知道Android代码的设计思路和代码编写规则。

2023-09-07 10:11:57 468

原创 编译AOSP 出现错“libcrypto-NO_USE_RDRAND: rk3399“

基于ubuntu 编译rk3399 AOSP时报错:内存不足 增大内存或者交换分区。

2023-08-09 16:34:51 125

原创 android NDK 编译流程

下载对应版本的ndk。基于cmake 执行。

2023-08-09 16:32:06 58

原创 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 340

原创 rockpi4 android10 编译流程

【代码】rockpi4 android10 编译流程。

2023-08-09 16:16:53 101

原创 Android 系统镜像文件介绍

android启动时 首先加载ramdisk.img镜像,并挂载到/目录下,并进行了一系列的初始化动作,包括创建各种需要的目录,初始化console,开启服务等。:System.img是在init.rc中指定一些脚本命令,通过init.c进行解析并挂载到根目录下的/system目录下的。app的目录下是所有的apk包,即包含了Android源码自身所发布的应用程序,又包含了用户自己编译的应用程序apk包,bin目录下是基本的命令,系统的本地程序,主要是Linux系统自带的组件,

2023-08-09 16:09:00 1954

原创 android 实用adb push 文件时报错“adb: error: failed to copy”

新手在使用adb push文件时往往会遇到push不进去的情况通过报错信息可以看出,是因为文件夹权限不足导致的,因为是只读文件系统,所以在进行文件复制过程中无法写入文件导致复制失败。

2023-08-09 16:01:10 4643 1

原创 android hidl 介绍

HIDL 是围绕接口进行比啊你的,接口是面向对象语言实用的一种用来定义命令行为的抽象类型。每个接口都有一个软件包。

2023-08-09 15:58:31 143

原创 Android 硬件抽象层HAL 驱动编写方法演示

HAL 是一个抽象层,具有供硬件供应商实现的标准接口。HAL 允许 Android 不了解较低级别的驱动程序实现。使用 HAL 允许您在不影响或修改更高级别系统的情况下实现功能。HAL 开始语言是HIDL,它是一种接口描述语言,用与指定HAL与用户之间的接口。

2022-11-29 15:12:10 2083

原创 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 349

原创 esp-adf音频框架 :audio stream->I2S Stream

【代码】esp-adf音频框架 :audio stream。

2022-11-26 21:18:23 827

原创 esp-adf音频框架 :audio element

为了能够控制从输入,处理到输出的数据生命周期的特定阶段,audio_element对象提供了在每个阶段触发回调. 可用的回调函数有七种类型:打开,查找,处理,关闭,销毁,读取和写入.打开,查找,处理,关闭,销毁,读取和写入.在audio_element_cfg_t 中配置。Element的一般功能是在输入中获取一些数据,对其进行处理,然后输出到下一个。每个元素都作为单独的任务运行。对象是使用ADF开发的应用程序的基本构建块。实际上,每个解码器,编码器,滤波器,输入流或输出流都是音频元素。

2022-11-26 21:17:58 493

原创 ESP32+ILI9341驱动LittleVGL

只是简单的整理一下,实际上并没有什么难度,只要熟悉了esp32的开发流程之后移植LittleVGL可以说十分容易。欢迎关注我的个人网站物联网开发入门 - 知乎 (zhihu.com)

2022-11-26 21:17:19 1636

原创 spiffs 文件系统在esp32中的应用

spiffs 介绍SPIFFS 是一个开源文件系统,用于 SPI NOR flash 设备的嵌入式文件系统,支持磨损均衡、文件系统一致性检查等功能。spiffs 源码地址​spiffs 特点​编辑切换为居中添加图片注释,不超过 140 字(可选)而我们知道乐鑫的esp32的大部分存储都依赖于SPI flash ,spiffs可以说对于esp32 真可谓是最合适不过的了。

2022-11-26 21:17:00 1152

原创 主流车载操作系统简介

车载操作系统离不开操作系统的支持,随着汽车的不断发展,车载操作系统也随之蓬勃发展,一下介绍几个应用比较广泛的车载操作系统。

2022-11-26 21:16:34 4565

原创 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 1796

原创 esp-adf 音频框架:record_raw_http.c 简单分析

【代码】esp-adf 音频框架: 基于 record_raw_http.c 简单分析框架原理。

2022-11-25 10:23:35 329

原创 esp32开发快速入门 8 : MQTT 的快速入门,基于esp32实现MQTT通信

简介MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。2. 通信方式。

2022-11-25 10:19:40 5523

原创 esp32开发快速入门 7 : smartconfig 例程分析

smartconfig 直译过来就是智能配置,它是一种可以是wifi快速连接到网络的技术。可以省去直接将wifi账号和密码写入到无线设备中的过程,通过手机将无限设备连接到网络中去。smartconfig只是无线连接的一种,乐鑫还支持airkiss 方式将设备连接到网络。具体原理我就不过多介绍了,只是简单介绍一下esp32 如何通过smartconfig技术接入到网络中。esp32 进入smartconfig模式:将自己设置成wifiAP模式,以UDP的模式将此信息广播出去,等待有wifi接入。

2022-11-25 10:16:35 1334

原创 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 1374

原创 esp32开发快速入门 5 : I2C(驱动SSD1306)

对于学嵌入式的来说,i2c在熟悉不过了,两根线数据线(SDA)和时钟线(SCL)在加上一根地线就可以完成通信。。具体硬件上怎么实现的我们暂且不管,我们只需记住这些概念就行了。

2022-11-25 10:04:49 1969

原创 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 723

原创 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 1878 2

原创 esp32开发快速入门 1

在物联网中大多数的设备使用的都是实时操作系统。在工作的这几年我明显的能够发现单片机开发越来越简单,各个芯片制造商不断的推到自家的软件开发辅助工具,使得工程师开发起来越来越容易,以stm32为例,一个stm32cubemx解决了大部分代码需求,前几年写的大段代码,现在有可能只需要在cubemx选择几个配置就解决。2. 沟通简化:实时操作系统都是统一的API接口,降低了开发难度和多人配合时的沟通成本,多人开发时大家都使用统一的API,大家只要定义基本的接口就可以了,不用去指定复杂的API文档。

2022-11-25 09:54:28 1218

原创 esp32开发快速入门 2:FreeRTOS(1)

以上是一个最简单了示例,我在每一个函数中都调用了vTaskDelay这个函数,vTaskDelay这个函数是延时函数(相对延时,延时时间并不准确),调用这个函数的原因在于跳出当前任务,因为RTOS是抢占是调度器,就是移植执行最好优先级的任务,所以如果不让最高优先级停下来的话 ,其他任务是不可能有执行机会的。另外注意,前缀要小写。创建任务: 使用函数xTaskCreate ,这个函数是freeRTOS提供的创建任务的函数,FreeRTOS官方已经提供了详细的注释,如果有阅读英文的能力最好是看官方提供的注释。

2022-11-25 09:54:10 837

原创 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 1328

原创 Android 11:[email protected]蓝牙架构分析

介绍了Android11的蓝牙从app到hal的大概执行流程,对于移植蓝牙的同学有一定帮助。

2022-11-01 13:48:15 5861

原创 解决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 13869 6

usb描述符详细讲解

详细讲解的USB描述符,包括设备描述符,接口描述符,端点描述符,字符描述符,报告描述符

2016-01-18

字模精灵(Version1.0)

应用液晶的时候需要提取 字模, 字模精灵很好用。

2013-01-26

JLINKV8 固件烧写指导

JLink V8 固件烧录指导,由于用国内的山寨仿真器经常出现 固件丢失的问题 所以上传以个指导 ,希望对大家有帮助

2013-01-26

时间触发嵌入式系统设计模式

本书主李内容包括:   针对使用一个或多个微控制器的嵌入式应用,设计实现完整的调度操作系统。、   采用开关、键盘、LED显示、LCD等元件创建用户界面。   有效地使用网络和通信协议。   在监控系统设计 中应用PID算法脉冲宽度调 制。   本书特点:   通过列举大量 的例子来说明如何将特定模式应用到实际项目中。   在相关的上包括了众多的详细案例研究。   随便书附送的CD上包括:   所有模式和例子的C语言完整源代码,包含一系列完整 的调度器。   工来标准的Keil C 编译器和硬件模拟器的一个评估版本,因此不需要额外购买硬析可以测试书中的例子 。

2012-11-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除