添加一个单板
按照编译内核的流程,添加代码。
补丁文件openharmony_100ask_v1.2.patch,已经添加了2个单板:STM32MP157、IMX6ULL。
目标:仿照它们,添加一个新的单板,以后修改源码让它再次支持STM32MP157或IMX6ULL。
新加的单板:
芯片公司:DemoCom
芯片名称:DemoChip
本章节做的修改会制作为补丁文件:01_openharmony_add_demo_board.patch,
先打补丁:openharmony_100ask_v1.2.patch
再打补丁:01_openharmony_add_demo_board.patch
假设目录openharmony中是未修改的代码,从没打过补丁;
假设补丁文件放在openharmony的同级目录; 打补丁方法如下:
$ cd openharmony $ patch -p1 < ../openharmony_100ask_v1.2.patch $ patch -p1 < ../01_openharmony_add_demo_board.patch
打上补丁后,可以如此编译:
$ cd kernel/liteos_a $ cp tools/build/config/debug/demochip_clang.config .config $ make clean $ make
1.1 配置界面里添加单板
kernel/liteos_a/platform/Kconfig
仿照代码添加一个新的板子:
打开menuconfig,就有了一个新的单板的配置
打开.config文件如下
LOSCFG_PLATFORM="demochip" # LOSCFG_PLATFORM_HI3516DV300 is not set # LOSCFG_PLATFORM_HI3518EV300 is not set # LOSCFG_PLATFORM_STM32MP157 is not set # LOSCFG_PLATFORM_IMX6ULL is not set LOSCFG_PLATFORM_DEMOCHIP=y
1.2 添加源码
刚刚配置完了config,现在要修改makefile。用一个取巧的办法就是搜索宏。参照STM32是怎么写的。
grep "LOSCFG_PLATFORM_STM32MP157" * -nr
这部分是源码,这部分先不管:
先修改makefile:
在vendor目录下创建:DemoCom/DemoChip目录,里面放置文件。
1.3 Makefile中根据配置项修改
Makefile platform/Makefile platform/bsp.mk
/openharmony/kernel/liteos_a/Makefile
第一处
第二处
/openharmony/kernel/liteos_a/platform/Makefile
第三处
/openharmony/kernel/liteos_a/platform/platform/bsp.mk
第四处
第五处
1.4 能否编译通过
未通过: