嵌入式基础-配置产品定制内核

QQ群-名称:嵌入式交流 ;群号:933192343;微信号:WangMing_GZ

目前我接触的内核区别有几种;
1.平台区别:arm和mips
2.版本区别:修改GPIO配置的方法不一样,有设备树和非设备树的区分;非设备树的修改会比较复杂,暂时不写使用教程

1.新增产品配置文件config

根据芯片平台的开发文档可以知道芯片默认要使用的config文件,拷贝默认的config文件生成一份带项目名称的配置文件

<< readme
1.arm平台的修改方法,目前以安凯EV300L为基础来开发,
默认的配置文件为anycloud_ak3918ev300l_mini_defconfig,
根据自己的环境修改配置文件命名

2.mips平台只要将arch/arm/改为arch/mips/即可,根据自己的需求去选择默认配置文件
readme

#内核路径下
cp arch/arm/configs/anycloud_ak3918ev300l_mini_defconfig arch/arm/configs/test_pro

2.新增产品配置设备树dts

设备树配置和config文件配置是类似的,根据芯片平台的开发文档可以知道芯片默认要使用的dts文件,拷贝默认的dts文件生成一份带项目名称的dts文件

<< readme
1.arm平台的修改方法,目前以安凯EV300L为基础来开发,
默认的设备树dts文件为EVB_CBDM_AK3918EV300L_V1.0.0.dts,
根据自己的环境修改设备树dts的文件命名

2.mips平台只要将arch/arm/改为arch/mips/即可,根据自己的需求去选择默认的设备树dts文件
readme

cp arch/arm/boot/dts/EVB_CBDM_AK3918EV300L_V1.0.0.dts arch/arm/boot/dts/test_pro.dts

3.新增项目编译宏定义

a.获取项目宏定义

根据默认的 EVB_CBDM_AK3918EV300L_V1.0.0.dts 设备树在 arch/arm/boot/dts/Makefile 文件里找到对应的宏定义

<< readme
打开Makefile文件,可以看到EVB_CBDM_AK3918EV300L_V1.0.0对应的宏定义为CONFIG_MACH_AK3918EV300L
readme

vi arch/arm/boot/dts/Makefile

查看设备树宏定义

b.查找芯片平台的Kconfig文件

根据宏定义CONFIG_MACH_AK3918EV300L在内核里找到对应的Kconfig文件,查询后配置文件为 arch/arm/mach-anycloud/Kconfig

<< readme
使用下面的命令去搜索Kconfig文件
readme

grep " MACH_AK3918EV300L" -rn

查找宏定义

c.新增自定义项目到Kconfig文件中

<< readme
修改arch/arm/mach-anycloud/Kconfig内容,在endchoice上添加内容

choice Test_Project
    config TEST_PRO
        bool "Test Pro"
        depends on ARCH_AK
        select MULTI_IRQ_HANDLER
        help
            Support for AK3918EV300L

endchoice

readme

vi arch/arm/mach-anycloud/Kconfig

Kconfig

d.将新增的宏定义重新写到设备树的Makefile

<< readme
修改arch/arm/boot/dts/Makefile内容,添加test_pro内容
dtb-$(CONFIG_TEST_PRO) += test_pro.dtb
readme

vi arch/arm/boot/dts/Makefile

Makefile

e.修改当前编译的配置

<< readme
将配置文件生成当前要编译的.config配置文件
readme
cp arch/arm/configs/test_pro .config

<< readme
使用make menuconfig命令修改要编译的项目宏定义
System Type -> Test project type -> Test Pro (按下回车)
readme

make menuconfig

内核配置

修改配置之后就不断按下 Esc,退出内核配置界面后点击 Yes 即可

确认内核选择

f.将当前配置保存为项目配置文件和编译内核

<< readme
将修改后的编译配置文件拷贝到arch/arm/configs/test_pro,这步操作是用于保存所有配置;
readme

cp .config arch/arm/configs/test_pro

<< readme
编译内核,根据芯片平台SDK文档说明使用编译命令,每个芯片平台编译命令都会有不一样的细分;
make uImage -j4并不适用于所有的芯片平台
readme

make uImage -j4
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WangMing_GZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值