Makefile 实战

Bcm96xx 系列芯片 SDK介绍(二) 3 启动过程分析 这里所要分析的是linux系统起来之后的过程,因为在这之前相比于其他linux系统,它并没有什么不同之处。 1 busybox 的init中会执行 etc/inittab 2 inittab 中调用 "bcm_boot_launcher start" 3 bcm_boot_lanucher 是userspace中的一个应用程序,其作用是调用 /etc/rc3.d/ 中的全部脚本 阅读详情

最近在做新项目的预研,主要是用bcm96xx方案做二次开发。在构建最小文件系统的时候主要遇到了Makefile的调试难题。

调试的内容包括:

1、变量的值;

2、执行流程;

3、内嵌Makefile的调用。

 

首先,我们回顾一下Makefile执行机制:

我们要明白一点:makefile是一个脚本,所以会解析执行;

GNU的make工作时的执行步骤入下:(想来其它的make也是类似)

    1、读入所有的Makefile。
    2、读入被include的其它Makefile。
    3、初始化文件中的变量。
    4、推导隐晦规则,并分析所有规则。
    5、为所有的目标文件创建依赖关系链。
    6、根据依赖关系,决定哪些目标要重新生成。
    7、执行生成命令。

1-5步为第一个阶段,6-7为第二个阶段。第一个阶段中,如果定义的变量被使用了,那么,make会把其展开在使用的位置。但make并不会完全马上展开,make使用的是拖延战术,如果变量出现在依赖关系的规则中,那么仅当这条依赖被决定要使用了,变量才会在其内部展开。

Makefile的基本调试:

1、在有依赖性的地方直接使用echo 输出变量值和调试信息。

2、Makefile 命令前不要加@。

举一个例子:

OBJ =test

all:

 

 

明天继续……



 

 

BCM 芯片SDK初始化 BCM 芯片SDK初始化 作者: 北京—小武 邮箱:night_elf1020@163.com 新浪微博:北京-小武 SDK初始化前,需要对SDK的架构有所了解,具体如下图;可以看出SDK的代码结构是一个层次化分明的架构,这里对各层的作用和详细工作机制不阐述了,具体可以参见SDK的介绍文档。               SDK代码的结构图   S 阅读详情

相关推荐

Bcm96xx 系列芯片 SDK介绍(一)

Bcm96xx系列SDK支持的芯片从代码的target目录就可以看出,有63186362 63268 6328 6368 6818 6818O 6838O 68500 等芯片。此SDK使用的Linux内核版本算是比较高的了,为Linux3.4。 Broadcom的网站提供下载:bcm963xx_4.14L.04_data_src.tar.gz 其目录结构 bcmdrivers

tianming5202的专栏 1万+

makefile findstring_11 个 Makefile 实战技巧

本文首次发表在 11 个 Makefile 实战技巧 -- 泰晓科技过去数月,笔者在重构开发了数年的开源项目:Linux Lab(Linux 内核实验室)。在开发过程中,需要跟 Makefile 打交道,完善功能,优化速度,提升体验。数月下来,积累了不少 Makefile 实战技巧。回过来看,之前对 Makefile 的熟知程度只能说是幼儿园托班水平 ;-)本文篇幅较长,请先看大纲。建议从大纲中选...

weixin_39996908的博客 903

Makefile文件编写与实战技巧

Makefile 的核心逻辑在于通过定义目标(Target)与依赖(Dependency)之间的关系,来控制构建流程的执行顺序和条件。理解目标与依赖的定义方式,是掌握 Makefile 构建机制的基础。本章将从最基础的目标依赖定义开始,逐步深入到多目标管理、伪目标(PHONY)的使用,以及构建清理目标 clean 的最佳实践,帮助读者在实际项目中高效构建构建系统。在 Makefile 中,目标通常是指一个文件名,或者是逻辑上的构建动作(如clean依赖。

weixin_42465332的博客 1091

ifeq makefile 或语句_11 个 Makefile 实战技巧

本文首次发表在 11 个 Makefile 实战技巧 -- 泰晓科技过去数月,笔者在重构开发了数年的开源项目:Linux Lab(Linux 内核实验室)。在开发过程中,需要跟 Makefile 打交道,完善功能,优化速度,提升体验。数月下来,积累了不少 Makefile 实战技巧。回过来看,之前对 Makefile 的熟知程度只能说是幼儿园托班水平 ;-)本文篇幅较长,请先看大纲。建议从大纲中选...

weixin_42310670的博客 560

大彩串口屏+LUA避坑指南:从Flash读写到控件状态配置的5个常见问题

本文针对大彩串口屏的LUA脚本开发,深度剖析了Flash数据存储与控件状态配置中的5个常见陷阱。重点讲解了如何通过标志位安全初始化Flash、正确处理多字节数据转换,以及如何精准配置按钮与文本控件的状态与事件响应,帮助开发者提升开发效率与代码可靠性。

weixin_27945229的博客 242

SystemVerilog新手实战指南:iverilog与VScode的完美组合

本文为SystemVerilog新手提供了一套高效入门方案,详细介绍了如何利用开源编译器iverilog与轻量编辑器VScode搭建学习环境。内容涵盖十分钟快速安装配置、首个工程从编码到查看波形的完整流程,并演示了动态数组和队列等SystemVerilog新特性的使用,旨在帮助初学者避开复杂商业工具,快速掌握数字电路设计与验证的核心技能。

f6g7h8i9j的博客 513

makefile快速开始(go项目makefile编写实战)

Makefile是一个名为`make`软件所需要的脚本文件,该脚本文件可以指导make软件控制gcc等工具链去编译工程文件最终得到可执行文件,几乎所有的Linux发行版都内置了GNU-Make软件,VScode等多种IED也内置了Make程序。

西京刀客 1570

华为/H3C/锐捷交换机配置命令对比表:一张图搞定VLAN划分与端口设置

本文详细对比了华为、H3C、锐捷三大品牌交换机在VLAN划分与端口设置中的配置命令差异,提供从基础配置到高级功能的横向对比表,帮助网络工程师快速掌握多品牌设备混用环境下的配置技巧,提升工作效率。

rust6ferris的博客 699

Makefile 实战指南

避免过度复杂的逻辑,必要时拆分多个 Makefile。Make 自动推导常见操作(如。声明不生成实际文件的操作(如。集中管理编译器、路径和选项。为所有非文件生成目标添加。确保依赖项完整,可通过。

weixin_42300449的博客 496

NVMe与PCIe的完美结合:高速存储背后的技术解析

本文深入解析了NVMe与PCIe技术如何完美结合,实现高速存储性能的飞跃。从机械硬盘到NVMe SSD的进化历程出发,详细介绍了PCIe总线的高带宽优势与NVMe协议的低延迟设计,以及两者协同工作带来的显著性能提升。通过实测数据对比,展示了NVMe SSD在消费级和企业级应用中的卓越表现,并提供了选购与优化建议。

weixin_29216353的博客 376

UFS总体介绍及FPGA开发

通过实现UFS的主控制器、设备控制器等组件,我们可以在FPGA上进行UFS开发,并实现高速数据传输和低功耗特性的存储解决方案。物理层负责传输物理信号,数据链路层提供数据包的传输和错误检测功能,传输层处理数据包的分段、重组和重传,逻辑层管理设备和主控制器之间的命令和数据传输,文件系统层负责文件管理和数据存储。在本文中,我们将介绍UFS的总体架构和特性,并探讨如何在FPGA上进行UFS开发。这些组件的实现涉及到UFS协议的具体细节和硬件平台的特性,因此需要参考UFS协议规范和FPGA开发平台的相关文档。

PodProgram的博客 2135

makefile代码实战

makefile是为编译程序代码而生,有以下要点:1、源代码文件(c,cpp)转换成中间代码文件(.obj/.o)文件:这个过程叫编译 compile。2、中间代码文件合成可执行文件,这个过程叫链接 link。3、如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接。 4、如果这个工程的某几个C文件被修改,那么我们只编译被修改的C文件,并链接目标程序。          5、如果这个工程...

曹昆的技术博客 731

wxComboBox类的使用方法及示例代码

其中,parent表示该控件的父窗口,ID_COMBOBOX是该控件的ID,用于在事件处理函数中区分不同的控件,"默认选项"是下拉列表框的默认选项,options是wxArrayString类型的数组,用于存储下拉列表框中的选项,style可以指定wxComboBox的样式。wxComboBox是wxWidgets中的一个常用控件,它可以被用来显示一组在下拉列表框中的选项,并允许用户从中选择一个选项。上述就是wxComboBox类的基本使用方法,使用这个控件可以方便地实现下拉列表框的功能。

学习使你进步。 713

Makefile自动化编译实战项目

Makefile是Linux下自动化构建的核心工具,通过规则定义目标、依赖和命令实现编译流程管理。其核心价值在于增量编译(依赖时间戳机制)、多文件批量处理(模式规则)和跨平台支持。特殊符号和变量简化编写,伪目标管理非文件任务。大型项目通过动态文件列表(wildcard)组织,Android平台扩展NDK支持。实战中结合调试技巧提升效率。

QT性能优化QT原理源码QT界面美化 1047

【HFSS】仿真目录

Author: JiJi\textrm{Author: JiJi}Author: JiJi Created Time: 2026.04.27\textrm{Created Time: 2026.04.27}Created Time: 2026.04.27 Modified Time: 2026.04.27\textrm{Modified Time: 2026.04.27}Modified Time: 2026.04.27如果大家觉得有用,就点个赞吧,在阅读过程中存在任何困惑,可在下方评论区留言~

u011699626的博客 310

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Makefile实战教程:项目的核心功能/场景

Makefile实战教程:项目的核心功能/场景 去发现同类优质开源项目:https://gitcode.com/ 《Makefile实战教程》 项目介绍 在软件开发领域,自动化构建是提高效率、保证项目质量的关键环节。Makefile作为Linux环境下的一种构建工具,已经成为了项目管理中不可或缺的配置文件。本次推荐的《Makefile实战教程》项目,为您提供了一份全面而详尽的Makefile使用指...

gitblog_06785的博客 1069

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

从0到1:Makefile自动化编译实战全解析

本文围绕 Makefile 自动化编译展开,先介绍 Makefile 的定义与基本结构,让读者初步认识其在软件开发中的作用;接着详解语法基础,包括变量定义与使用、模式规则、伪目标,夯实读者理论基础;随后通过假设 C++ 项目,讲解项目搭建中基础 Makefile 编写与优化方法,注重实战;还探索多平台支持、第三方库集成、版本控制与清理等进阶技巧。整体从基础到实战再到进阶,助力读者全面掌握 Makefile 自动化编译技能。

邓邓子的博客 940

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Makefile实战

Makefile实战

周同学的博客 2407

新手入门 Makefile:FPGA 项目实战教程(三)

本文介绍了使用Makefile自动化FPGA开发流程的实战教程,以LED闪烁项目为例。主要内容包括:1) 项目需求分析,设计25位计数器实现1Hz LED闪烁;2) 提供Verilog RTL代码和XDC约束文件示例;3) 详细讲解Makefile脚本编写,包含变量定义、构建目标和清理功能;4) 讲解配套的Tcl脚本,实现项目创建、文件添加、综合实现等自动化流程。该教程为FPGA开发者提供了从代码编写到自动化构建的完整解决方案,适用于Xilinx Vivado开发环境,特别适合需要提高开发效率的工程师。

现任某外企的算法工程师!专注于人工智能、嵌入式、FPGA、论文写作四大主题的教程和经验分享!辅导请➕v :sci666888999 2142

Makefile从入门到项目编译实战(学习笔记)

1.make和makefile介绍 2.makefile的结构 3.程序编译流程详解 4.makefile脚本运行流程介绍 5.makefile伪目标和模式匹配 6.makefile中的变量 7.makefile条件判断和循环语句 8.makefile函数定义和调用 9.makefile调用shell命令 10.makefile嵌套调用 11.makefile路径搜索 12.makefile同样部分做公共头文件 13.makefile编译静态链

卓学课堂 1765

实战Makefile

1. 没有makefile的日子 1.1 手动编译 1.2 文件编译依赖树 2. 快速体验makefile 3. makefile 变量 4. makefile条件编译 5. makefile函数 6. 参考资料 <1>. 没有makefile的日子 1.1 程序是如何编译的? 如果存在这么一个工程目录结构: . |-- foo.c ...

ladymaidu 113

新手入门Makefile:FPGA项目实战教程(二)

本文是FPGA项目实战教程系列的第二部分,重点介绍Makefile在FPGA开发中的实际应用。文章提供了一个完整的LED闪烁项目Makefile示例,包含项目创建、文件添加、综合、实现和生成比特流等关键步骤。同时详细讲解了Tcl脚本在Vivado中的重要作用,包括项目管理命令、文件管理命令、综合与实现命令等核心功能。教程还提供了一个完整的Tcl脚本示例,展示了从项目创建到比特流生成的全流程自动化实现方法,帮助开发者提高FPGA开发效率。

现任某外企的算法工程师!专注于人工智能、嵌入式、FPGA、论文写作四大主题的教程和经验分享!辅导请➕v :sci666888999 1415
上一篇: WEP四次握手(4-way-handshake)过程
下一篇: 专业评测工具CHARIOT的应用
wifi狂人
博客等级 码龄17年 98粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值