登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
博客
发1篇日志+1圆
记录
发1条记录+2圆币
发帖说明
VIP申请
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
VIP申请
VIP网盘
网盘
联系我们
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
安全
›
Lesson01-利用Makefile创建内核镜像文件kernel8.img ...
Lesson01-利用Makefile创建内核镜像文件kernel8.img
[ 复制链接 ]
钦遭聘
2025-6-8 13:15:05
编写树莓派内核映像的过程可以等同于gcc的编译过程:预处理、编译、汇编、链接,后面还会加一步:将可执行文件转换成二进制的镜像文件。
在MakeFile里的构建过程分为3步:
1.将.c文件经过预处理、编译、汇编生成.o文件,将.S文件经过汇编生成.o文件。
2.将.o文件经过链接生成.elf可执行文件。
3.将.elf文件转换成二进制的.img镜像文件。
#变量-交叉编译工具
ARMGNU ?= aarch64-linux-gnu
#变量-编译可选参数
COPS = -Wall -nostdlib -nostartfiles -ffreestanding -Iinclude -mgeneral-regs-only
#变量-汇编可选参数
ASMOPS = -Iinclude
#变量-源文件目录
SRC_DIR = src
#变量-生成文件目录
BUILD_DIR = build
#构建-all首个构建对象
all: kernel8.img
#构建-clean
clean:
rm -rf $(BUILD_DIR) *.img
#构建-.c变.o
$(BUILD_DIR)/*_c.o: $(SRC_DIR)/*.c
mkdir -p $(@D)
$(ARMGNU)-gcc $(COPS) -MMD -c -o $@ $<
#构建-.S变.o
$(BUILD_DIR)/*_S.o: $(SRC_DIR)/*.S
$(ARMGNU)-gcc $(ASMOPS) -MMD -c -o $@ $<
#变量-.c文件
C_FILES = $(wildcard $(SRC_DIR)/*.c)
#变量-.S文件
ASM_FILES = $(wildcard $(SRC_DIR)/*.S)
#变量-.o文件
OBJ_FILES = $(C_FILES:$(SRC_DIR)/%.c=$(BUILD_DIR)/%_c.o)
OBJ_FILES += $(ASM_FILES:$(SRC_DIR)/%.S=$(BUILD_DIR)/%_S.o)
#变量-.d文件
DEP_FILES = $(OBJ_FILES:%.o=%.d)
#函数-包含依赖.d文件
-include $(DEP_FILES)
#构建-.o变.elf .elf变.img
kernel8.img: $(SRC_DIR)/linker.ld $(OBJ_FILES)
$(ARMGNU)-ld -T $(SRC_DIR)/linker.ld -o $(BUILD_DIR)/kernel8.elf $(OBJ_FILES)
$(ARMGNU)-objcopy $(BUILD_DIR)/kernel8.elf -O binary kernel.img
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
Lesson01
利用
Makefile
创建
内核
相关帖子
PostgreSQL中利用pgaudit审计扩展记录SQL审计,以及使用fdw分析审计日志
PostgreSQL中利用pgaudit审计扩展记录SQL审计,以及使用fdw分析审计日志
真开眼了!利用招聘来盗取加密货币?
k8s 新版创建完 serviceaccount 后-- 不再生成 对应的--token
利用ruoyi框架开发自己的后台管理系统日志(8.6)
如何通过Python SDK创建一个新的Collection
利用MATLAB的FDATOOL工具生成IIR滤波器的verilog代码
利用ruoyi框架开发自己的后台管理系统日志(8.7)
pygame小游戏飞机大战_5创建敌人
经验贴:利用Maven打包时的注意事项
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
PostgreSQL中利用pgaudit审计扩展记录SQL审计,以及使用fdw分析审计日志
0
517
讲怔
2025-08-03
安全
PostgreSQL中利用pgaudit审计扩展记录SQL审计,以及使用fdw分析审计日志
0
300
徙办
2025-08-03
业界
真开眼了!利用招聘来盗取加密货币?
0
669
第璋胁
2025-08-04
安全
k8s 新版创建完 serviceaccount 后-- 不再生成 对应的--token
0
379
锟及
2025-08-12
业界
利用ruoyi框架开发自己的后台管理系统日志(8.6)
0
313
全跺俚
2025-08-13
业界
如何通过Python SDK创建一个新的Collection
0
202
聱嘹
2025-08-15
业界
利用MATLAB的FDATOOL工具生成IIR滤波器的verilog代码
0
658
粉押淫
2025-08-15
业界
利用ruoyi框架开发自己的后台管理系统日志(8.7)
0
244
萨瑞饨
2025-08-18
业界
pygame小游戏飞机大战_5创建敌人
0
61
米榜饴
2025-08-22
安全
经验贴:利用Maven打包时的注意事项
0
520
浦乐
2025-09-01
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
业界
代码
签约作者
程序园优秀签约作者
发帖
钦遭聘
2025-6-8 13:15:05
关注
0
粉丝关注
19
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9984
黎瑞芝
9990
杭环
9988
4
凶契帽
9988
5
氛疵
9988
6
猷咎
9986
7
里豳朝
9986
8
肿圬后
9986
9
段干叶农
9986
10
蝓俟佐
9984
查看更多