自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ARM64架构启动流程

ARM64 的启动流程是一个分层次、多阶段协作的过程,涉及从硬件初始化到操作系统加载的多个环节。理解其核心阶段(BootROM → Bootloader → Kernel)和权限切换(EL3 → EL1)是进行底层开发或系统移植的关键。实际应用中需结合具体芯片手册和调试工具,确保各阶段代码的地址、权限和安全策略正确配置。ARM64 架构的启动流程是一个多阶段、分层次的过程,涉及硬件初始化、权限切换、代码加载和操作系统启动。或厂商定义的地址)开始执行 BootROM 代码。:执行完整启动流程。

2025-04-23 09:15:34 955

原创 嵌入式硬件平台修改启动地址

修改启动地址的具体方法取决于目标硬件平台和启动阶段(如 BootROM、Bootloader 或操作系统)。某些芯片(如 STM32)通过引脚电平选择启动模式(从 Flash、RAM 或系统存储器启动)。仅在某些可擦写 BootROM 的芯片上可行(如部分 ESP32),需使用厂商专用工具。使用专用工具(如 STM32CubeProgrammer)修改芯片的启动地址寄存器。:在 BootROM 执行后,通过代码跳转到自定义地址(需汇编/C 开发能力)。修改环境变量中的内核加载地址和启动命令。

2025-04-23 09:10:09 462

原创 BootROM的主要工作

是作为设备启动过程中的第一个固件层,负责最底层的硬件初始化和启动流程控制。

2025-04-23 09:04:11 406

原创 Linux内核崩溃定位及解决方法

在 Linux 系统中,内核崩溃(Kernel Panic/Oops)通常由硬件故障、驱动错误或内核代码缺陷引发。通过结合日志分析、崩溃转储调试和硬件检测,可以高效定位内核崩溃根源。对于关键系统,建议定期演练崩溃恢复流程并保持内核更新。

2025-04-09 08:19:17 1994

原创 Linux系统如何定位并且解决内存泄露

通过工具链(Valgrind、ASan)和代码规范(RAII、智能指针)的结合,可以在 Linux 系统中高效定位和解决内存泄漏问题。Valgrind 是 Linux 下最经典的内存调试工具,可检测未释放内存、非法访问等问题。ASan 是 Google 开发的内存错误检测工具,性能损耗比 Valgrind 更低。ASan 会在检测到错误时直接输出堆栈信息。是 GNU C 库自带的工具,用于跟踪。明确指出了泄漏位置在。

2025-04-09 08:13:00 1957

原创 显式初始化

为变量、对象或数据结构赋予初始值的行为。与隐式初始化(由编译器或运行环境自动赋予默认值)不同,显式初始化通过代码直接指定初始状态,确保程序的行为更可控、更安全。通过显式初始化,开发者可以更精准地控制程序状态,减少因未初始化或默认值导致的潜在错误,是编写健壮代码的重要实践。显式初始化是指在编程中,开发者。

2025-04-03 09:00:11 247

原创 DMA一致性问题

DMA一致性问题需结合软硬件手段解决:通过显式缓存管理、配置内存属性、利用IOMMU及适应架构特性,确保数据在设备与CPU间正确同步。开发时需深入理解目标平台的缓存机制和DMA API,以优化性能和可靠性。DMA(直接内存访问)传输的一致性问题源于CPU缓存与主存之间的数据不一致,可能导致设备与处理器访问的数据版本不同。

2025-04-01 20:08:02 481

原创 Linux 下 DMA 使用的详细指南

一、DMA 使用基础流程流式 DMA 映射(Streaming DMA)配置 DMA 传输二、关键 API 详解映射类型选择| 类型 | 适用场景 | 生命周期 | 缓存管理 ||-----------------|----------------------------|--------------|---------------|| 一致性映射 | 控制寄存器、长期共享数据 | 长

2025-03-31 08:45:17 638

原创 DMA(直接内存访问)原理及使用方法详解

一、DMA基本原理二、Linux DMA API使用方法:长期存在的映射,CPU和设备可同时访问:短期映射,需要显式同步缓存三、高级DMA技术四、缓存一致性处理。

2025-03-31 08:42:37 5335

原创 带Cache内存的别名访问问题

情况2:特殊Cache配置(VIVT Cache)尽量避免对同一物理地址创建多个可缓存虚拟映射。情况1:普通Cache配置(通常情况)这种情况在带Cache的系统中会导致。带Cache内存的别名访问问题。,可能产生不符合预期的结果。方法1:使用非缓存内存。方法2:维护缓存一致性。方法4:内核API处理。方法3:使用共享映射。

2025-03-31 08:10:00 194

原创 kzalloc与缓存(Cache)的结合使用

通过合理使用内核的缓存机制,可以显著提高频繁内存分配/释放操作的性能,同时保持。机制来实现带缓存的内存分配。本身不直接提供缓存功能,但可以通过内核的。缓存创建有开销,只对高频分配的对象有意义。确保缓存名称唯一(建议加模块前缀)注意内存泄漏,所有分配都应正确释放。在 Linux 内核中,在多核系统上考虑使用。

2025-03-31 08:00:38 345

原创 kzalloc的定义以及用法

是内核开发中最常用的内存分配函数之一,特别适合需要初始化内存为零的场景。的一个变体,它在分配内存后会将其内容初始化为零(相当于。是 Linux 内核中用于内存分配的一个函数,它在。相同,最大约几MB(具体取决于架构和配置):在中断上下文等不能睡眠的地方使用。:对于大内存分配,考虑使用。

2025-03-31 07:49:15 329

原创 Linux下Slab分配器

通过预分配和复用相同大小的内存块来优化频繁分配/释放的场景(如。,是 Linux 内核高效内存管理的基础设施之一。Slab 分配器是 Linux 内核中的一种。,减少内存碎片并提升性能。Slab 的核心价值在于。

2025-03-29 09:43:37 682

原创 中断上下文Tasklet

但它是一种特殊的“软中断(Softirq)”机制,与硬件中断上下文(Hard IRQ)有区别。如果需要更复杂的操作或允许睡眠,应改用。(属于进程上下文)。

2025-03-29 09:37:09 282

原创 自旋锁和互斥锁的区别?

自旋锁(Spinlock)和互斥锁(Mutex)是两种完全不同的锁机制,主要区别体现在。总结:中断上下文只能用自旋锁,可能睡眠的代码必须用互斥锁!

2025-03-29 09:25:09 406

原创 中断里可以用什么锁

在中断上下文中,由于对并发控制和睡眠的限制,需要使用特殊的锁机制。若中断和进程共享数据,且进程已持有自旋锁,此时中断到来并尝试获取同一锁,会导致死锁。:中断上下文(如中断处理函数、软中断、tasklet等)。// 同时保存IRQ状态(推荐在中断上下文使用)在加锁时禁用本地中断,避免这种竞争。

2025-03-29 09:11:02 437

原创 ARM下用scp指令拷贝远程文件到本地

远程目标机的IP是192.168.1.10,ssh用户名是ftfscp -r [email protected]:/home/ftf/test.mp4 ./

2023-01-10 10:36:12 305 1

原创 Yocto的weston如何取消上面的标题栏?

修改/etc/xdg/weston/weston.ini[shell]panel-position=none

2023-01-10 09:55:49 348

原创 2020-09-24

ffmpeg实现udp单播推送视频流1、编译ffmpeg4.2.2编译环境Ubuntu16.04#sudo ./configure --prefix=/ffmpeg_x86 --disable-x86asm#make#make install2、推流#sudo /ffmpeg_x86/bin/ffmpeg -re -i test. mp4 -vcodec copy-f mpegts udp://192.168.10.9:50043、用vlc播放测试在vlc中输入流地址udp://@19

2020-09-24 15:43:01 112

原创 2020-04-17

ARM开发板通过NFS加载内核出现ERROR:Cannot umount解决方法:在主机的/etc/hosts下面加入ARM开发板IP nfs目录比如192.168.0.21 /nfsroot/

2020-04-17 11:14:32 127

原创 2020-04-17

让ubuntu16.04系统支持组播输入命令sudo route add -net 224.0.0.0 netmask 224.0.0.0 ens33

2020-04-17 09:34:55 129

空空如也

空空如也

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

TA关注的人

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