当前位置: 首页 > news >正文

ARCH与交叉编译器的关系

编译器只是一台“翻译机”,它自己没有思想,它只会机械地把输入的 .c 文件翻译成机器码。而决定“把哪些 .c 文件喂给它翻译”的,是构建系统(Makefile)

关键机制
当你执行make时,总管会先看ARCH环境变量

  • 如果ARCH=arm,总管就把arch/arm/这个目录下的.c文件列表,列成清单,塞给arm-gcc去翻译。

  • 如果ARCH=x86,总管就无视arch/arm/,把arch/x86/目录下的.c文件塞给arm-gcc去翻译

ARCH=arm决定了“哪些代码属于体系相关部分”,而CROSS_COMPILE决定了“如何将体系无关 + 体系相关两部分代码翻译成硬件能跑的指令”

  • 体系无关的代码(骨架):位于kernel/mm/fs/net/等目录。

    • 它负责“通用逻辑”:比如进程调度算法(CFS)、虚拟内存换页(LRU)、文件系统的 inode 管理。

    • 特点:只写逻辑,不碰硬件寄存器。写这些代码的人不需要知道 CPU 是 ARM 还是 x86,只看重算法。

  • 体系相关的代码(皮肤/血管):位于arch/arm/arch/x86/目录。

    • 它负责“硬件触达”:比如 CPU 上电第一条汇编指令(head.S)、中断控制器(GIC)初始化、MMU 页表填充、具体 CPU 的 Cache 操作。

    • 特点:赤裸裸地操作物理地址和特定寄存器。这段代码必须和 CPU 架构 100% 严丝合缝

http://www.jsqmd.com/news/1402928/

相关文章:

  • Day5语法:循环-分支语句
  • 南宁防水修缮品牌怎么选?漏水维修科普、避坑与靠谱服务商参考 - 收录优先
  • PCB镀铜均匀性怎么做?工程师揭秘关键工艺
  • 停车场道闸系统选购避坑指南:选对设备,大幅降低后期运维难题
  • 纯WINDOWS API的C++2D小游戏Subterra(目前还未开发,实时更新)
  • 从PID到模型预测:管道小球摆杆控制的核心难点与工程实现
  • Linux vsftpd匿名FTP服务器搭建:安全配置与被动模式故障排查
  • OpenClaw像素风赛博办公室:AI Agent工作流可视化与实时监控实践
  • 华为eNSP设备启动失败:从虚拟化冲突到权限配置的完整排错指南
  • 工业陶瓷零件的材料选型与精度控制:从氧化锆到氮化硅的几个技术点
  • 【无标题】买房收房别只看颜值,这些坑你根本看不见 在本地房产交易活跃的当下,越来越多人意识到:房子表面光鲜不代表住得安心。尤其是二手房翻新或精装交付,墙面平整、地板漂亮背后,可能藏着水电隐患、防水失效
  • Quartus内置ModelSim‑Altera报错Error: Failure to obtain a Verilog simulation license. Unable to checkout
  • Cursor 修复循环校验翻车:3次追问后账单超预算200%,我这样设熔断
  • 居家如何养护艾草暖宫精油日常养护感受海艾独有的温润体感
  • PDF 临时处理总要四处找工具?常用操作放进一个工具箱
  • 脱皮腰果色选怎样减少黑斑、碎仁与异色料混入
  • 上海市口碑好的防水补漏维修公司怎么找_屋面防水本地维修队伍水准盘点,挑选要点深度剖析 - 雨婺虹修缮
  • 网络安全入门:小白必学的极简框架与实战指南
  • OpenClaw部署运维指南:从安装到稳定运行的AI智能体实践
  • Windows鼠标异常唤醒电脑的排查与解决全攻略
  • IDEA代码报红但能运行?深度解析索引缓存机制与系统化解决方案
  • Java枚举类深度解析:从常量管理到状态机设计的实战指南
  • Linux 服务器测速工具:speedtest‑cli 命令完整详解(命令行网速测试实战)
  • 40岁适合做什么创业项目?
  • 找个大佬带带我
  • 标书销毁怎么做?这几种方式最靠谱 - 生态测评师
  • RAG 召回率 95% 仍答错:Anthropic 重排机制差点让我交差一份科幻小说
  • 空地协同巡线系统:从仿真到实战的嵌入式与机器人视觉开发指南
  • 彻底解决Maven依赖爆红:从诊断到根治的系统化指南
  • Object.hasOwn 兼容性解析:从原理到工程化解决方案