- 博客(24)
- 收藏
- 关注
原创 记一次 stm32f407 无法进入 standby 问题
通过查看当前中断信息,发现是 systick 中断pending未处理导致进入standby 模式的 WFI 失败,所以需要在执行 WFI 之前清除 systick 中断pending标志.查看<Cortex M3与M4权威指南>如下:可知ICSR寄存器的bit 26表示systick中断是否pending,写bit 25可以清除systick中断pending,bit 22表示是否有片内外设中断在pending等。所以在执行WFI之前 调用即可清除systick中断pending标志。
2024-10-08 18:04:15
386
原创 19内核审计
审计机制使用了内核与应用层的通信机制netlink.用户层使用netlink套接字向内核注册审计规则.内核将审计消息发送给用户层auditd守护进程,该进程将消息存储到日志文件.内核审计线程在接收到第一条用户空间的审计信息时创建内核触发审计规则后创建审计信息,加入审计队列中审计线程从审计队列中取出审计信息通过netlink机制向应用层发送消息。
2024-09-13 19:41:09
990
原创 18页回收和页交换
前一章描述了数据与底层块设备的同步,这能够缓解内核在可用物理内存达到极限时所面临的态势。将缓存的数据回写,可以释放一些内存页,以便将物理内存用于更重要的功能。所涉及的数据可以在需要时从块设备再次读取,虽然会花费时间,但不会丢失信息。该方法也有其局限性。在某些时候,会遇到这样的情况,缓存和缓冲区都不能再收缩。另外,数据同步对动态产生的内存页是不适用的,因为这种页没有后备存储器。内核连同处理器(处理器管理的虚拟地址空间比实际存在的物理内存要大很多)可以征用部分磁盘,用作内存的扩展。
2024-09-13 19:37:43
939
原创 17内核数据同步
在页的刷出(flushing)、交换(swapping)、释放(releasing)操作之间,有着明确的关系。不仅需要定期检查内存页的状态,还需要检查空闲内存的大小。在完成检查后,未使用或很少使用的页将自动换出,但在换出前,其中包含的数据将与后备存储器同步,以防数据丢失。对动态产生的页,系统交换区充当后备存储器。对映射自文件的页来说,其交换区就是底层文件系统中与页对应的部分。如果内存发生严重的不足,必须强制刷出脏数据,以获得干净的页内存/缓存与后备存储器之间的同步,概念上分为两部分。
2024-09-13 19:28:14
1009
原创 16页缓存和块缓存
块缓存->页缓存 从小到大基于页缓存的块缓存,缓存数据修改后将页设为脏即可不基于页缓存的块缓存,块缓存头在一个数组中,按LRU组织,最近使用过的块缓存,将缓存头移动到数组头,数组其他项向后移,一直不使用的缓存最后会被移出数组页分配到地址空间中,地址空间关联到内存虚拟地址,虚存管理中建立了虚拟地址到块设备上的映射地址空间(页缓存)中用基数树管理页所有显示调用的读写函数最后都是提交一个bio请求实际对磁盘的写操作由一个系统进程执行,其他的写操作函数只将页设为脏预读机制,三个读函数接口。
2024-09-13 19:19:27
1487
原创 ubuntu24.04 gdb调试kernel4.4环境配置
kernel4.4配置kgdb选项,ubuntu需要安装gdb7.7版本,高版本会报错无法使用,ubuntu24.04默认安装的python版本为3.12,需要配置为3.4环境。
2024-08-23 01:12:35
916
原创 ubuntu24.04编译android7.1.2
以s5p6818支持的 android7 为例在ubuntu24.04中编译android7.1.2提示:以下是本篇文章正文内容,下面案例可供参考这里只记录了大体的流程,不同的编译环境还会遇到一些依赖包等之类的错误,需要自己安装.编译需要的内核版本要小于5.17这个问题网上提到的比较少.需要关注。
2024-08-14 10:16:28
1051
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人