摘要: 跳转指令(如函数调用)会导致流水线失效(pipeline flush/stall),这是函数调用最重要的性能开销之一‌,也是内联函数能提升效率的关键原因。让我们深入分析这个机制: 1. ‌处理器流水线与分支惩罚(Branch Penalty)‌ 现代处理器采用流水线设计(通常 10-20 级流水线) 阅读全文
posted @ 2025-08-23 16:13 songchaohuang 阅读(8) 评论(0) 推荐(0)
摘要: /* make this 0 to disable FPU context save/restore */#define ENABLE_FPU_SAVE_RESTORE (1) .text .arm .set SYS_MODE, 0x1f .set SVC_MODE, 0x13 .set IRQ_M 阅读全文
posted @ 2025-08-17 17:30 songchaohuang 阅读(27) 评论(0) 推荐(0)
摘要: 下面是freertos源码中使用LDR命令一些场景 LDR指令使用场景1: /*ulPortInterruptNestingConst = ulPortInterruptNestingConst +1*/ LDR r3, ulPortInterruptNestingConst /*获取ulPortI 阅读全文
posted @ 2025-08-11 19:25 songchaohuang 阅读(21) 评论(0) 推荐(0)
摘要: 代码片段:cINDU_InterfaceLCD *pIndu_LcdMgr = NULL; printf("pIndu_LcdMgr %p\n",pIndu_LcdMgr) pIndu_LcdMgr->INDU_LcdMgrShow("test"); class cINDU_InterfaceLCD 阅读全文
posted @ 2025-08-11 13:22 songchaohuang 阅读(4) 评论(0) 推荐(0)
摘要: 关于select 某个进程调用select后,陷入内核后会调用所有被监测fd的poll函数,那么poll函数中会将该进程添加到各个fd的等待队列中,即第一次遍历 当任何一个fd处于就绪状态,就会唤醒调用select的进程,此时该进程还处于select函数内部,并且对所有被检查的fd进行二次遍历,并设 阅读全文
posted @ 2025-08-03 17:32 songchaohuang 阅读(11) 评论(0) 推荐(0)
摘要: 【原创】(一)ARMv8 MMU及Linux页表映射 - LoyenWang - 博客园 (cnblogs.com) (9条消息) ARM平台下独占访问指令LDREX和STREX的原理与使用详解_Roland_Sun的博客-CSDN博客_arm ldrex指令 (26条消息) 深入剖析MMU二级页表 阅读全文
posted @ 2022-05-15 14:27 songchaohuang 阅读(15) 评论(0) 推荐(0)