登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
安全
›
Lesson01-利用Makefile创建内核镜像文件kernel8.img ...
Lesson01-利用Makefile创建内核镜像文件kernel8.img
[ 复制链接 ]
钦遭聘
2025-6-8 13:15:05
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
编写树莓派内核映像的过程可以等同于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
创建
内核
相关帖子
如何创建你的百Google度!!(实现双搜索引擎页面)
利用Sentinel-2监测北京奥林匹克森林公园2024年NDVI变化(附Python版)
图床创建:github+Picgo+obsidian 带有同步删除的自动上传
实战利用LLM辅助小程序逆向与HTTP报文漏洞挖掘
命令行创建与删除Oracle数据库:全流程实战指南
pygame小游戏飞机大战_1创建游戏窗口
网贷TP内核金融贷款网站源码
牛牛书城ThinkPHP内核全开源小说网整站
利用desmos动态展示最大似然概率
YII框架的三条经典利用链的探究
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
代码
如何创建你的百Google度!!(实现双搜索引擎页面)
1
850
懵径
2025-11-19
业界
利用Sentinel-2监测北京奥林匹克森林公园2024年NDVI变化(附Python版)
1
985
拓拔梨婷
2025-11-20
业界
图床创建:github+Picgo+obsidian 带有同步删除的自动上传
0
201
芮梦月
2025-11-21
科技
实战利用LLM辅助小程序逆向与HTTP报文漏洞挖掘
0
550
盒礁泅
2025-11-28
业界
命令行创建与删除Oracle数据库:全流程实战指南
0
697
薛小春
2025-12-01
安全
pygame小游戏飞机大战_1创建游戏窗口
1
146
唯棉坜
2025-12-02
程序
网贷TP内核金融贷款网站源码
0
12
新程序
2025-12-04
程序
牛牛书城ThinkPHP内核全开源小说网整站
0
18
新程序
2025-12-04
业界
利用desmos动态展示最大似然概率
0
734
翁谌缜
2025-12-06
安全
YII框架的三条经典利用链的探究
0
963
柏球侠
2025-12-07
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
钦遭聘
2025-6-8 13:15:05
关注
0
粉丝关注
26
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994893
kk14977
6845356
3934307807
991122
4
xiangqian
638210
5
宋子
9987
6
闰咄阅
9991
7
刎唇
9993
8
俞瑛瑶
9998
9
蓬森莉
9952
10
匝抽
9986
查看更多