2024年12月5日
摘要: __schedule()是主调度器的核心函数,其作用是让调度器选择和切换到一个合适进程运行。调度的时机可分为如下3种: a、阻塞操作:互斥量(mutex)、信号量(semaphore)、等待队列(waitqueue)等 b、在中断返回前和系统调用返回用户空间时,去检查TIF_NEED_RESCHED 阅读全文
posted @ 2024-12-05 10:56 penglcool 阅读(367) 评论(0) 推荐(0)
  2024年9月10日
摘要: 1、在openwrt的根目录中可以执行如下命令:make menuconfig打开CONFIG_DEBUG选项就会生成待调试信息的内核版本 2、在openwrt的根目录中可以执行如下命令:make kernel_menuconfig打开CONFIG_DEBUG_INFO也会生成待调试信息的内核版本 阅读全文
posted @ 2024-09-10 17:38 penglcool 阅读(388) 评论(0) 推荐(0)
  2024年2月27日
摘要: 1、发生硬件中断后,ARM处理器做了哪些事情? 答:当CPU感知到中断发生后,硬件会自动做如下一些事情: 1)保存中断发生时CPSR寄存器的内容到SPSR_irq寄存器中; 2)修改CPSR寄存器,让CPU进入处理器模式(processor mode)中的IRQ模式,即CPSR寄存器中的M域设置为I 阅读全文
posted @ 2024-02-27 09:47 penglcool 阅读(27) 评论(0) 推荐(0)
  2023年9月18日
摘要: 万恶之源:C语言中的隐式函数声明_隐式声明_smstong的博客-CSDN博客 示例:riscv32的平台,在32位架构上定义一个函数,函数的返回值为uint64_t,在调用该函数的时候返回值的高32位异常,其原因就是因为没有对该函数进行声明,编译的时候使用了隐式声明,默认返回int类型导致的。需要 阅读全文
posted @ 2023-09-18 09:26 penglcool 阅读(63) 评论(0) 推荐(0)
  2023年4月3日
摘要: link链接脚本中_end设置的意义,如果需要支持malloc和free,需要在链接脚本中设置_end的符合,这个表示是堆起始的地址,从后面开始都是作为heap进行申请的。 阅读全文
posted @ 2023-04-03 17:12 penglcool 阅读(256) 评论(0) 推荐(0)
  2021年12月3日
摘要: bad_mode异常怎么出现的,cpsr模式恢复如果出现问题就可能会出现,如下的图显示是正常的调用关系,如果这时候把flags的值设置为0xa00001b6会出现什么情况呢? ​ 把flags的值设置为0xA00001B6后的异常打印和调用栈: 问题发生在rcu_idle_exit函数中,需要走查代 阅读全文
posted @ 2021-12-03 09:42 penglcool 阅读(20) 评论(0) 推荐(0)
  2021年9月16日
摘要: 为了使单独编译的c语言和汇编程序之间能够相互调用,必须为子程序之间的调用规定一定的规则。ATPCS就是ARM程序和Thumb程序中子程序的基本规则。 基本ATPCS规定了在子程序调用时的一些基本规则,包括下面3个方便的内容: 1、各寄存器的使用规则及其相应的名称 子程序间通过寄存器R0一R3来传递参 阅读全文
posted @ 2021-09-16 17:13 penglcool 阅读(454) 评论(0) 推荐(0)
摘要: PMSA介绍: PMSA基于内存保护单元(MPU),PMSA与基于VMSA的MMU相比提供了更简单的内存保护方案,简化适用于硬件和软件。PMSAv7处理器依赖MPU类型寄存器来识别,请参见MPUIR,MPU Type Register。 PMSA主要简化的地方就是MPU不使用转换表。相反,系统控制协 阅读全文
posted @ 2021-09-16 16:43 penglcool 阅读(623) 评论(0) 推荐(0)
  2021年9月14日
摘要: 1、EXPORT_SYMBOL的作用是什么? EXPORT_SYMBOL标签内定义的函数或者符号对全部内核代码公开,不用修改内核代码就可以在您的内核模块中直接调用,即使用EXPORT_SYMBOL可以将一个函数以符号的方式导出给其他模块使用。 这里要和System.map做一下对比: System. 阅读全文
posted @ 2021-09-14 14:58 penglcool 阅读(427) 评论(0) 推荐(0)
  2020年7月13日
摘要: 1、复合页的定义: 复合页(Compound Page)就是将物理上连续的两个或多个页看成一个独立的大页,它可以用来创建hugetlbfs中使用的大页(hugepage), 也可以用来创建透明大页(transparent huge page)子系统。但是它不能用在页缓存(page cache)中,这 阅读全文
posted @ 2020-07-13 15:44 penglcool 阅读(2668) 评论(0) 推荐(0)