自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 Android7 Input(九)View 建立Input Pipeline

上一个章节,我们讲解了App通过注册InputEventReceiver获取从Input服务上报的输入事件的流程,在讲述App处理具体输入事件之前,我们讲述App处理输入事件的模型,也就是本章要讲述的InputState Pipeline。本文描述了View处理input事件的Pipeline模型的实现,下一个章节讲述App处理input事件的具体过程。

2025-05-25 15:54:58 484

原创 Android7 Input(八)App Input事件接收器InputEventReceiver

上一个章节,我们讲解了App如何使用InputChannel通道与input系统服务建立通信的桥梁的过程,本章我们讲述App如何从input系统服务中获取上报的输入事件,也就是我们本章讲述的InputEventReceiver。本文讲述了App通过注册输入事件接收器的方式,当InputDispacther上报输入事件时,通过Looper的回调机制App获取到了事件,并通过doProcessInputEvents接口,正式开启App对input事件的处理。

2025-05-20 23:10:58 680

原创 Android7 Input(七)App与input系统服务建立连接

本文主要讲述Android 系统创建窗口时与输入相关管理系统服务通过InputChannel通道建立通信桥梁的过程。本文主要讲述了App初始化创建窗口时的与输入管理相关的处理流程,App为了能接收到系统上报的输入事件,通过InputChannel作为桥梁,将App和Input系统服务建立了通信桥梁,实现的核心原理就是创建socket对,并通过事件监听的方式,从socket中获取监听的信息,并进行处理,当App处理完信息也则通过socket对,告诉input系统服务的处理结果。后续章节我们会讲述这个处理流程。

2025-05-17 20:38:12 925

原创 Qemu-STM32(十八):Qemu运行Keil编译出来的axf文件

本文档算是一个Qemu模拟STM32的一个阶段性的成果展示,之前博主成功在gcc下运行了qemu STM32F103模拟器,这次博主尝试运行Keil编译出来的axf文件,并成功运行起来,让博主不得不佩服qemu的强大之处。

2025-05-14 00:20:55 578

原创 OpenMCU(七):STM32F103开发环境搭建

本文主要讲述了使用Keil软件搭建STM32F103嵌入式开发环境的步骤,主要面向想从事嵌入式行业的入门同学,如果下面的讲述过程中有不对的地方,欢迎大家给我留言。本文主要讲述了Keil 5.43的安装教程,主要用于学习交流,请勿用于商业开发。1、本文主要描述了搭建STM32F103开发环境,并详细说明了使用比较广泛的Keil的安装和破解过程;2、关于keil的破解,主要用于学习交流,请勿用于商业开发环境;3、讲述了离线安装STM32F103开发包的步骤;

2025-05-14 00:06:10 854

原创 OpenMCU(六):STM32F103开发板功能介绍

博主开启这个OpenMCU系列博客的主要目的,就是源码分析我们在嵌入式开发中用到一些软件库。让嵌入式MCU学习非常容易入门

2025-05-12 23:19:36 897

原创 OpenHarmony Linux内核本地管理

写这篇文章的初衷,其实也是作者从事多年Android系统开发中,根深蒂固的目录情节导致的,再开发Harmony系统中,总是想模拟Android系统的开发思路。对于OpenHarmony这个patch机制,其实我很讨厌它,虽然这样可以简化维护工作,不需要每个厂家都维护一个内核开发版本,但是这个patch,我讨厌它的地方就是严重制约了多人协作开发。如果一不小心修改了上游内核的文件,则如果用现有的机制,每一个协作开发的同学都需要重新再次生成patch ,不然无法patch到编译的内核。

2025-05-12 20:30:37 593

原创 RK3568-OpenHarmony(1) : OpenHarmony 5.1的编译

本文主要描述了,如何在ubuntu-20.04操作系统上,编译RK3568平台的OpenHarmony 5.1版本。

2025-05-10 13:35:02 527

原创 Android7 Input(六)InputChannel

本文讲述Android Input输入框架中 InputChannel的功能。从前面的讲述,我们知道input系统服务最终将输入事件写入了InputChannel,而input属于system_server进程,App属于另外一个进程,当Input系统服务想要把事件传递给App进行处理时这里就涉及到了一个跨进程通信的问题。

2025-05-08 21:44:24 951 1

原创 Qemu-STM32(十七):STM32F103加入AFIO控制器

本文主要描述了在Qemu平台中,如何添加STM32F103的AFIO控制器模拟代码,AFIO是属于GPIO引脚复用配置的功能。本文描述了如何在qemu中添加stm32f103平台上AFIO控制器实现步骤。

2025-04-29 20:00:14 603

原创 Android7 Input(五)InputDispatcher

本文主要描述了Android Input框架中的InputDispatcher的功能和数据处理流程。InputDispatcher的功能总结成一句话就是处理InputReader传递过来的事件并将事件进行再次封装为一个InputDispatcher事件然后传递给App进行处理,当App处理完成后,通知InputDispatcher模块清理InputDispatcher上报的事件,即完成整个输入事件的处理流程。

2025-04-26 14:27:08 1039

原创 Qemu-STM32(十六):STM32F103加入GPIO控制器

本文主要描述了在Qemu平台中,如何添加STM32F103的GPIO控制器模拟代码。本文描述了如何在qemu中添加stm32f103平台上GPIO控制器实现步骤。

2025-04-16 23:47:41 257 5

原创 Qemu-STM32(十五):STM32F103加入Flash控制器

本文主要描述了在Qemu平台中,如何添加STM32F103的Flash控制器模拟代码。本文描述了如何在qemu中添加stm32f103平台上FLASH控制器实现步骤。

2025-04-16 23:21:19 511

原创 Android7 Input(四)InputReader

本文主要描述了Android Input框架中的InputReader的功能,InputReader模块的功能,总结成一句话就是InputReader获取输入设备的事件并将事件进行加工处理,然后传递给QueuedInputListener,最终QueuedInputListener将事件传递给InputDispatcher模块处理,事件处理的方向就是:InputReader -> QueuedInputListener -> InputDispatcherframeworks/native/services

2025-04-12 15:25:09 572

原创 Qemu-STM32(十四):STM32F103加入USART控制器

本文主要描述了在Qemu平台中,如何添加STM32F103的USART控制器模拟代码。1、本文描述了如何在qemu中添加stm32f103平台上UASRT控制器实现;2、完成的提交记录,请查看代码库链接;

2025-04-06 18:07:31 381

原创 Qemu-STM32(十三):STM32F103加入RCC控制器

本文主要描述了在Qemu平台中,如何添加STM32F103的RCC控制器模拟代码。1、本文描述了如何在qemu中添加stm32f103平台上RCC控制器实现;2、RCC模块主要功能就是配置STM32103运行时的时钟频率;2、完成的提交记录,请查看代码库链接;

2025-04-06 18:01:58 516

原创 Android7 Input(三)EventHub

在Android Input框架中,EventHub主要作用就是读取输入设备上报的event事件, 并将收集的事件提交给InputReader进行处理。本文主要描述了EventHub如何管理系统中的输入设备以及系统上报输入事件的处理流程。本文并没有细节展开描述每一个EventHub类的实现方法和输入事件处理的代码细节,感兴趣的同学可以去分析一下Linux系统中input事件的获取和Linux input事件的组成等。1、本文主要描述了EventHub输入设备的管理和事件获取流程描述,并没有细节上去描述;

2025-04-01 23:44:51 863

原创 Android7 Input(二)Linux 驱动层输入事件管理

在Linux系统中,将按键,键盘,鼠标,触摸屏等这类交互设备交由Linux Input子系统进行管理,Linux Input驱动子系统由于具有良好的和用户空间交互的接口。因此Linux Input驱动子系统,不止于只管理输入类型的设备。也可以将其他类型的设备归纳于Linux Input进行管理, 比如Rockchip 的Android系统平台上,将传感器数据的处理,就归纳到Linux Input进行管理。

2025-03-29 22:22:54 975

原创 OpenMCU(五):STM32F103时钟树初始化分析

本文主要描述了STM32F103初始化过程系统时钟的初始化,主要描述了系统时钟的初始化,AHB总线时钟,APB总线时钟等的初始化。本文主要描述了,在STM32F103 CPU初始化过程中,系统时钟的初始化。虽然,我们可以利用ST提供的上位机图形化工具进行时钟配置,简单的勾选就可以产生我们需要的代码。但是,作为一个嵌入式开发程序员,我觉得,还是有必要去分析源码,了解CPU的内部原理和HAL层代码,这样才能根据自己产品的实际需求情况,设计出更具有性价比的产品。

2025-03-27 22:26:44 897

原创 Qemu-STM32(十二):STM32F103 框架代码添加

本系列博客主要描述了STMF103的qemu模拟器实现,进行该项目的原因有两点: 作者在高铁上,想在STM32F103上验证一个软件框架时,如果此时掏出开发板,然后接一堆的线,旁边的人估计会投来异样的目光,特别是,当不太幸运坐在了靠近过道的位置,那就更麻烦了,估计没法进行代码开发了。因此,作者决定开发这个模拟器该项目,只要打开电脑,就可以随意的开发软件功能;第二个原因,作者也在设计STM32F103的PCB板卡,在硬件板卡还没焊接回来时,也可以提前进行产品原型的代码开发。

2025-03-27 22:06:53 682

原创 OpenMCU(三):STM32F103 FreeRTOS移植

本文主要描述了STM32F103移植FreeRTOS的简要步骤。移植描述过程中,忽略了Keil软件的部分使用技巧。默认读者熟练使用Keil软件。本文的描述是基于OpenMCU_RTOS这个工程,该工程已经下载放好了移植STM32F103 FreeRTOS的所有文件OpenMCU_RTOS工程的愿景主要有:1.、能移植支持主流mcu的freeRTOS2、深入分析FreeRTOS代码和第三方库代码,让嵌入式学习变得非常容易;

2025-03-22 23:13:02 979

原创 OpenMCU(四):STM32F103启动汇编代码分析

本文描述STM32F103处理器在上电到进入main函数阶段的启动汇编代码分析。以startup_stm32f103x6.s该启动汇编文件进行讲解startup_stm32f103x6.s启动文件的开始定义了栈空间的长度Stack_Size = 0x400,即1K的内存空间当做程序栈空间。ALIGN=3, 栈的长度对齐到8字节(1堆内存定义堆内存长度定义为Heap_Size = 0x200,即512字节长度,并且8字节对齐。

2025-03-22 23:02:42 476

原创 STM32F103C8T6 -MINI核心板

本文主要描述了作者设计的STM32F103C8T6 最小系统开发板。

2025-03-22 20:46:30 302

原创 4-Taurus平台 LCD驱动支持DRM框架移植

本文主要描述了在作者自己开发的qemu仿真平台上(Taurus),移植PL111 LCD的drm驱动步骤。本文的描述是基于Linux-4.13.0内核加buildroot进行实验的,所有的修改都开源了,文章的末尾有工程链接。

2025-03-22 19:00:32 249

原创 STM32F103C8T6 开发板

本文主要描述了作者设计的STM32F103的PCB产品的功能。

2025-03-20 00:36:41 341

原创 IMX8MP Android 10系统编译SDK

本文描述了在Ubuntu 20.04操作系统上搭建IMX8MP Android10系统编译环境。

2025-03-19 23:45:12 832

原创 Android7 Input(一)Android Input服务初始化

本文主要描述了InputManagerService服务的初始化和启动,在Android7系统上InputManagerService服务的框架如下所示:注:箭头的方向,并不能真实代表数据流向方向。1、FrameWorks层:inputManagerService对外提供服务的模块;2、JNI层:因为InputManagerService要去管理底层硬件输入设备,而在Android 7系统的所有与硬件相关的部分,都会涉及到JNI层。用C++代码去管理硬件设备;

2025-03-19 23:13:41 988

原创 OpenMCU(三):STM32F103 FreeRTOS移植

本文主要描述了STM32F103移植FreeRTOS的简要步骤。移植描述过程中,忽略了Keil软件的部分使用技巧。默认读者熟练使用Keil软件。本文的描述是基于OpenMCU_RTOS这个工程,该工程已经下载放好了移植STM32F103 FreeRTOS的所有文件OpenMCU_RTOS工程的愿景主要有:1.、能移植支持主流mcu的freeRTOS2、深入分析FreeRTOS代码和第三方库代码,让嵌入式学习变得非常容易;

2025-03-10 22:21:23 1053

原创 5-STM32F407硬件板卡从零开始设计-以太网 PHY LAN8720A原理图设计

本文描述了STM32F407板卡中以太网PHY芯片LAN8720A 原理图设计,本系列主要目的是学习PCB的设计,因此采用了多页原理的设计方法;

2025-03-06 00:34:55 660 1

原创 OpenMCU(二):GD32E23xx FreeRTOS移植

本文主要描述了GD32E230移植FreeRTOS的简要步骤。移植描述过程中,忽略了Keil软件的部分使用技巧。默认读者熟练使用Keil软件。本文的描述是基于OpenMCU_FreeRTOS这个工程,该工程已经下载放好了移植GD32E230 FreeRTOS的所有文件OpenMCU_FreeRTOS工程的愿景主要有:1.、能移植支持主流mcu的freeRTOS2、深入分析FreeRTOS代码和第三方库代码,让嵌入式学习变得非常容易;

2025-03-05 08:44:25 1089

原创 OpenMCU(一):STM32F407 FreeRTOS移植

本文主要描述了STM32F407移植FreeRTOS的简要步骤。移植描述过程中,忽略了Keil软件的部分使用技巧。默认读者熟练使用Keil软件。本文的描述是基于OpenMCU_FreeRTOS这个工程,该工程已经下载放好了移植stm32f407 FreeRTOS的所有文件OpenMCU_FreeRTOS工程的愿景主要有:1.、能移植支持主流mcu的freeRTOS;2、深入分析FreeRTOS代码和第三方库代码,让嵌入式学习变得非常容易;

2025-03-03 00:41:23 1169

原创 Qemu-STM32(十):Windows 源码静态编译qemu-5.0

在于msys2环境下执行pkg-config --cflags iconv找不到路径引起的, 其实系统已经安装,并正确配置了iconv.pc文件,但是,1、将静态编译的文件,拷贝到桌面,在桌面中打开cmd窗口,然后输入qemu-system-arm -M?执行配置文件后,在LIBS字段手动添加iconv库的路径和加入-liconv链接。1、在msys2安装目录,打开mingw64 程序。3、选择安装目录,注意放到磁盘空间比较大的盘符。3、进入源码目录,输入如下的配置信息。5、msys2软件安装方法。

2025-03-02 15:41:25 1114

原创 Qemu-STM32(九):STM32F407加入GPIO控制器

本文主要描述了在Qemu平台中,如何添加STM32F407的GPIO控制器模拟代码。1、本文描述了如何在qemu中添加stm32f407平台上GPIO控制器实现;2、完成的提交记录,请查看代码库链接;

2025-02-27 22:28:04 254

原创 Qemu-STM32(八):STM32F407加入Timer控制器

本文主要描述了在Qemu平台中,如何添加STM32F407的Timer控制器模拟代码。1、本文描述了如何在qemu中添加stm32f407平台上Timer控制器实现;2、完成的提交记录,请查看代码库链接;

2025-02-27 01:46:11 278

原创 4-STM32F407硬件板卡从零开始设计-EC800M 4G 原理图设计

本文描述了STM32F407板卡中的基于EC800M原理图设计,本系列主要目的是学习PCB的设计,因此采用了多页原理的设计方法;

2025-02-27 01:18:22 331

原创 3-STM32F407硬件板卡从零开始设计-SDCard原理图设计

本文描述了STM32F407板卡中的SDcard原理图设计,本系列主要目的是学习PCB的设计,因此采用了多页原理的设计方法;

2025-02-20 00:10:12 137

原创 Qemu-STM32(七):STM32F407加入Power控制器

本文主要描述了在Qemu平台中,如何添加STM32F407的Power控制器模拟代码。1、本文描述了如何在qemu中添加stm32f407平台上Power控制器实现;2、完成的提交记录,请查看代码库链接;

2025-02-19 23:51:21 498

原创 Qemu-STM32(六):STM32F407加入RCC控制器

本文主要描述了在Qemu平台中,如何在添加STM32F407中添加RCC控制器。1、本文描述了如何在qemu中添加stm32f407平台上RCC控制器实现;2、RCC模块主要功能就是配置STM32F407运行时的时钟频率;2、完成的提交记录,请查看代码库链接;

2025-02-19 00:25:50 254

原创 2-STM32F407硬件板卡从零开始设计-Power原理图设计

本文描述了STM32F407板卡的电源输入的原理图设计,因为,该项目只是一个开发板,主要侧重于学习PCB硬件设计。为了方便后期的软件调试,我们采用电源使用Type-C的5V输入作为整个板子的电源输入。

2025-02-18 23:47:49 185

原创 1-STM32F407硬件板卡从零开始设计-模块框图

本人是一个硬件小白,但是,总觉得作为一个嵌入式软件工程师,其实很多时候,也在跟硬件打交道,特别是调试板卡的时候(需要跟硬件同事常常battle)。别人设计硬件板卡,从用万用表测量一个电容显示参数值和用示波器测量显示一段波形,总觉得别人非常的帅气,是我敬仰的对象。我也想拥有那样的高光时刻,但是,奈何身边没有可以请教的硬件大佬进行指点,因此,本人将从网上学到的视频和自己的一些理解,特此建立一个STM32F407的单片机硬件项目。

2025-02-16 20:36:07 742

空空如也

空空如也

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

TA关注的人

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