自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CMS摄像头驱动-基础

高帧率(≥60 FPS)可减少动态模糊,提升实时性;但会增加带宽和计算负载。

2025-04-01 08:40:59 854

原创 kernel优化之嵌入式 Linux 中 BusyBox init 与 systemd 的核心区别

‌‌:嵌入式领域事实标准,适合资源受限、服务逻辑简单的场景,教学重点为 Shell 脚本控制与裁剪优化‌26。‌systemd‌:功能强大但资源消耗高,嵌入式应用受限,仅在高性能设备中作为补充方案‌。

2025-03-31 08:52:14 943

原创 Xen panic: Unable to copy the kernel in the hwdom memory

将Xen中的dom0的内存提升到 6G时,Xen会出现Unable to copy the kernel in the hwdom memory的报错,依据这条报错日志追踪问题。

2025-03-30 21:00:00 302

原创 CMS: linux kernel 提高loglevel和PRINTK TIME

在进行启动优化之前,我需要提高kernel的日志水平,并且在打印的日志中有时间体现,看看在优化之前kernel用了多少秒。

2025-03-30 21:00:00 255

原创 dom0运行android_kernel: do_serror of panic----failed to stop secondary CPUs 0

最终问题得到解决,发现是前期在调试汇编阶段代码时,增加了汇编打印的指令,注释掉这些指令,问题得到解决。至少为什么导致这个现象,还未分析出来,通过日志,结合内核的源码有一个猜测,在。在汇编阶段写入的地址产生了中断了,但是此时中断并未打开,被屏蔽了,中断并未相应,后续内核执行到内核的c阶段把中断又打开了 ,这时候就开始响应中断。,所以在c阶段引发kernel的panic了,而不是在汇编阶段就crash。setup_arch中的local_daif_restore。的函数功能中有打开某个中断的动作,有可能是。

2025-03-29 21:00:00 332

原创 Display Serializer、Camera Deserializer(Camera Des)和SerDes‌ 加解串应用

‌ 为例,三者的协作流程如下。

2025-03-29 21:00:00 544

原创 dom0-kernel: /thermal-zones/soc_max/cooling-maps/map0: could not find phandle 2

这是因为在Xen解析相关节点时,soc_max下的某个节点被跳过了,注释掉相关的cpu节点处理dom0就可以找到soc_max的节点了。由于soc_max下某个节点找不到,到时dom0-kernel后面有很多有关thermal热管理之类报错。soc_max相关的thermal的热管理报错就解决了。

2025-03-28 21:00:00 345

原创 嵌入式开发场景中Shell脚本执行方式的对比

‌,否则变量仅在子Shell生效,编译时会提示找不到工具链。

2025-03-28 21:00:00 1718

原创 Xen-cpu@100->cpu@1:Failed to bring up CPU 1 (error -2)

例如cpu@100的编号是256,这个只能用于物理cpu,虚拟cpu的编号应该是1,根据这个结论去灵活修改Xen的源码(如果修改dom0的kernel可能无效,这边尝试从dts读出来的256右移8位,crash依然存在)结合日志和Xen的源码追踪,Xen启动cpu的条件依赖于设备树中的reg参数,可以理解为cpu编号,找到Xen通过dts获取cpu编号的接口,并在关键数组赋值将其左移8位即可(dts原生态的cpu编号:cpu@100/reg=0x100)在使用mtk2715平台的原生态的。

2025-03-27 21:00:00 401

原创 嵌入式系统中各类存储方式的区别及接口协议详解

在kernel优化时,也可以考虑硬件层面用的协议是否已经是最优解。在嵌入式系统中,存储设备的选择直接影响系统性能、成本和设计复杂度。

2025-03-27 21:00:00 1242

原创 ‌关于(sigmstar) echo 32 > /sys/class/mstar/msys/booting_time 命令的解析

在嵌入式 Linux 系统中,向写入数值(如echo 32)的操作本质是通过 ‌‌。

2025-03-26 20:00:00 310

原创 ‌Linux 内核镜像编译与自解压机制总结(表格形式)

2025-03-26 20:00:00 676

原创 ‌Linux 4.9.227 内核启动流程解析:kernel_init函数详解

是 Linux 内核启动过程中从内核空间切换到用户空间的核心函数,负责完成内核初始化并启动用户空间的第一个进程(如/sbin/init以下针对 ‌‌ 版本,详细梳理其流程及实现逻辑。

2025-03-25 20:00:00 1297

原创 ‌I2C 与 SPI 总线线数对比表

‌I2C 扩展 4 线‌:‌SPI 扩展 6 线‌:‌线数公式‌:

2025-03-25 20:00:00 422

原创 博客摘录「 Xen启动过程概述」2024年12月9日

启动汇编部分代码是xen 的引导启动程序,位于./xen/arch/x86/boot目录下。代码描述了从xen加载到调用第一个C函数“__start_xen”之间的初始化系统环境过程。

2025-02-28 12:17:05 82

原创 MTK平台lk阶段

因项目需求,我需要在MTK平台新增一个分区,并将这个分区的img的文件从emmc中加载到DDR中,然后通过DDR的地址启动它。

2025-02-28 12:16:26 264

原创 Xen(4.15)的串口驱动原理

进入static void vprintk_common(const char *prefix, const char *fmt, va_list args)看到__putstr(p);可以看到注册了pl011设备的串口驱动serial_register_uart(SERHND_DTUART, &pl011_driver, uart);进入serial_puts(sercon_handle, s, nr);进入console_serial_puts(str, len);

2025-02-28 12:15:50 322

原创 Xen(4.15)创建页表和使能MMU

因项目需求,在将xen移植至MTK平台时,代码执行到Xen汇编阶段打开MMU的时候卡住,猜测:创建页表,打开MMU的时候,原先直接操作串口物理地址的方法失效,需要梳理清楚Xen创建页表的过程,将串口的物理地址与虚拟地址映射关系具象出来。代码执行到e f之间: msr SCTLR_EL2, x0。

2025-02-28 12:15:27 874

原创 MTK启动Xen

启动地址0xb7202000必须4K对齐。

2025-02-28 12:15:05 92

原创 linux反汇编指令

aarch64-linux-gnu-objdump -S vmlinux > vmlinux.S` 是一个命令,用于反汇编并生成 Linux 内核映像文件 `vmlinux` 的汇编代码,并将其输出重定向到一个名为 `vmlinux.S` 的文件中。- **`aarch64-linux-gnu-objdump`**:这是针对 AArch64 架构(即 ARM 64位架构)的 `objdump` 工具。- **`.data` 和 `.bss` 段**:分别包含已初始化的数据和未初始化的数据。

2025-02-28 12:13:52 336

原创 Xen中Dom0启动linux_kernel中引发Xen panic的异常问题

在MTK平台移植Xen,利用Xen构建的dom0启动linux_kernel从而启动android,在调试过程中需要在linux_kernel的汇编阶段增加打印log确认dom0中的kernel是否启动,在增加log的打印过程,引发了Xen中的panic问题,即说找不到guest os。

2025-02-28 12:13:38 978

原创 MTK启动流程整理补充

本文依据MTK的启动流程做了一些补充梳理,若侵权必删。参考文章:MTK平台启动流程解析-优快云博客https://blog.youkuaiyun.com/u010481276/article/details/103283053https://blog.youkuaiyun.com/u010481276/article/details/103283053总体流程:lk阶段会从boot image 解析出dtb数据,然后通过atag方式将dtb数据传递给了内核。在mtk平台lk在向内核传递dtb数据前会修改部分dtb数据。

2025-02-28 12:13:29 616

原创 用宏控制调试的打印信息

【代码】用宏控制调试的打印信息。

2025-02-19 18:48:00 91

原创 linux内核打印函数调用的栈的接口

【代码】linux内核打印函数调用的栈的接口。

2025-02-19 18:47:34 129

原创 确认文件编译进哪个img

进入这个文件device/mediateksample/auto2715m1_64_bsp/ko_order_table.csv会看到ko文件被编译进哪里了。最终vendor会被编译进super.img,这个需要在编译中看。可以看到都是m,那么就被编译进ko文件,也就是驱动。通过搜索看到对应文件的.o文件的编译规则。

2025-02-19 18:47:12 250

原创 Xen(4.15)调试过程在使能MMU过程种操作串口地址导致的异常问题

问题现象描述:在调试Xen中,为了确认CPU执行到汇编文件哪一条指令,我在使能MMU中操作了串口的地址(物理或虚拟地址),这个操作会导致CPU在使能MMU的函数中进入某种死循环,使能MMU这个接口会陷入一种阻塞状态,例如卡在某条指令,或者循环打印某些字符。解决方法:在使能MMU中禁止任何操作物理外设地址的行为,将使能MMU作为一种不可打断的操作行为 ,这样使能MMU就不会出现一种类似阻塞的状态。enable_mmu中不要进行任何操作物理外设地址的行为。

2025-01-06 09:14:37 154

原创 移植MTK平台的串口驱动到Xen-4.15实现串口的输出

因项目需要,需要移植MTK的驱动到Xen实现串口输出。

2025-01-06 09:12:25 409

原创 linux中vim编辑器常用配置

记录一下日常使用vim编辑器的常用的配置.vimrc文件。

2024-12-24 11:48:56 362

原创 Uboot启动Xen的过程

背景基于Xen On Qemu for arm64项目,解读uboot-2019启动xen-4.15的源码结构。

2024-12-14 10:01:05 362

原创 xen on qemu for arm64(在服务器上利用docker容器搭建环境)

由于日常工作中经常在服务器上开发,而gs对服务器又有许多限制,所以借助Docke容器搭建所需要的开发环境。

2024-12-13 10:51:18 691

原创 深入vendor_boot.img文件格式实例解析

以mtk平台为例,分析android源码编译生成的vendor_boot.img的结构。vendor_boot包括boot.img header、kernel、ramdisk系统。结合vendor_boot.img文件(UltraEdit打开)总结:通过增加log调试打印验证vendor_boot.img的结构成员变量。

2024-12-04 18:42:13 793

原创 Docker常用命令

A平台实现了通过xen运行dom0,domU。移植B平台时因为运行环境差异程序无法运行,再加上一些下载权限的限制,从而引入Docker,需要将Xen运行Dom0和DomU的环境统一在Dockerfile中配置完成,创建Docker容器所需要的Image会依据Dockerfile的配置生成。

2024-09-24 10:40:06 356

原创 Xen on qemu for arm64: 由qemu-system-aarch64导致的kernel-panic

我在A平台利用qemu实现了xen中dom0的运行,将其移植到B平台运行,dom0的复现遭遇了kernel-panic,在虚拟设备的添加时异常。

2024-09-14 20:52:11 1895

原创 Busybox编译Failed(Xen On Qemu for arm64)

发生原因,是由一个未定义的undefined reference to `stime'函数引起的:error的根本原因,由于新的平台的交叉编译链aarch64-linux-gnu-gcc所链接的库是没有stime函数定义的,在旧的平台的交叉编译工具链是有这个函数stime的生效的。

2024-09-13 12:57:14 936

原创 [Hypervisor]Xen On Qemu for arm64-复现

由于我的第一份工作也是有关hypervisor虚拟化的,此前玩过minos-hypervisor,但是与xen-hypervisor相比代码量与稳定性都相差较大,我找了很多帖子,有关xen的项目都很零碎,在csdn看到了一篇文章,参考这篇文章复现利用xen实现双系统的运行。。这篇文章也是为了记录复现时遇到的问题,及其解决办法,欢迎讨论交流。文中提到的log和脚本的源文件在文章末尾下载,复现有其他问题欢迎联系交流:1665575244@qq.comxen-4.12.0。

2024-09-11 18:01:48 1692 1

空空如也

空空如也

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

TA关注的人

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