RK356x-4. RK356x-SDK开发入门

要对一个SDK进行定制化二次开发,首先得理解它的编译逻辑,配置参数如何影响编译行为,各模块是如何配合工作的。

声明:本文件后期会不定时的修改和完善,它旨在梳理RK356X-SDK编译过程,了解如何如何根据我们电路板进行二次开发RK356X-SDK

目录

1.文件的路径

        1.1 在SDK目录下执行make命令,对应的文件是SDK目录下的Makefile,里面开头确定了编译所需的文件路径以及产出文件的路径。

        1.2 打开Makefile,开头的变量COMMON_DIR其实就是获取当前Makefile的实际路径,Makefile实际是一个链接文件,它实体文件是SDK/device/rockchip/common/Makefile,而COMMON_DIR即为SDK/device/rockchip/common/,下面很多环境变量都是基于这个路径来获取路径的。从COMMON_DIR进而获取DEVICE_DIR,SDK_DIR,CHIP_DIR,CONFIG_DIR,OUTDIR:

DEVICE_DIR:SDK/device/rockchip/

SDK_DIR:SDK/

CHIP_DIR:SDK/device/rockchip/.chip/

CONFIG_DIR:SDK/device/rockchip/common/configs/

OUTDIR:SDK/output/

2. 配置生成及引用

        2.1 配置界面

        在编译开始前,需要进行配置,通过命令:make menuconfig,呼出配置菜单进行配置。菜单的各个选项是基于CONFIG_DIR文件夹下的配置文件Config.in*,它们与kconfig文件是一样的,提供了配置菜单的各个选项。通过选择这些选项,save后最终生成含有全局变量的文件.config。然后执行make savedefconfig以使配置得以应用。

        注意,所有模块(例如u-boot,kernel等)的make menuconfig修改的内容,实际上修改的是它对应的板级文件,板级文件通过kconfig里面的关联定义,引申出其它变量的定义,进而集合生成到.config文件里,脚本展开.config后,就可以定制固件的编译。

        可以直接编辑板级文件也可以通过make menuconfig修改,只不过menuconfig加载了kconfig中的其它关联定义,方便选择和编辑,直接写板级文件还得去查相关kconfig文件。

        2.2  全局板级文件(defconfig)

        全局make menuconfig,即在SDK/目录下执行的menuconfig,对应的板级文件就是全局板级文件,它保存在SDK/device/rockchip/.chip中,menuconfig第一页第一条要确认的是保存本次配置的全局板级文件的名称(对应变量名:RK_DEFCONFIG),后面编译时,可以使用make xxxx_defconfig,或者build.sh lunch选择这个defconfig,套用配置,就不用再配置一遍了。

  • 一般情况下,无论是配置文件,还是源代码,新增时,选一个旧的相似的文件来改,这样犯错的几率就会小很多,所以,保存的defconfig文件,也可以选一个已有的文件来改。默认是rockchip_defconfig,它是一个链接文件,如上图,它实际链接到rockchip_rk3568_evb1_ddr4_v10_defconfig。
  • 选择哪个defconfig来改,需要对照自己主板的原理图,重点查看用哪种芯片,然后到SDK/device/rockchip/.chips中,找到对应的芯片文件夹,再查看用哪个DDR,一般现在多采用LPDDR4或DDR4,再到文件夹中找到对应DDR的defconfig,或者有特定系统要求的,比如rtos等,找到相应的defconfig,复制一份到SDK/device/rockchip/.chip中。
  • 重命名复制的defconfig文件,这里名字是有要求的(因为有build.sh会解析这个defconfig名,以提取RK_CHIP等的默认值),一般以自定义名开头,第2个位置是芯片名,第3个位置及后面是其它信息,如ddr类型,芯片是32还是64位,带有的比较特用的系统,如rtos等,最后以defconfig结尾,中间都用下划线隔开,如test_rk3566_ddr4_v01_defconfig。
  • 执行make test_rk3566_ddr4_v01_defconfig,使defconfig生效,再执行make menuconfig,就可以看到界面上的一些选项与defconfig内容相关了,不
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值