diff --git a/zh-cn/device-dev/porting/porting-chip-board-lwip.md b/zh-cn/device-dev/porting/porting-chip-board-lwip.md new file mode 100644 index 0000000000000000000000000000000000000000..794042aad52ae789bbcdc8dda943de5b28405b3c --- /dev/null +++ b/zh-cn/device-dev/porting/porting-chip-board-lwip.md @@ -0,0 +1,48 @@ +# lwip组件适配 + +lwip是一个小型开源的TCP/IP协议栈,LiteOS-M已对开源lwip做了适配和功能增强,lwip代码分为两部分: + +- third_party/lwip目录下是lwip开源代码,里面只做了少量的侵入式修改,为了适配增强功能。 + +- kernel/liteos_m/components/net/lwip-2.1目录下是lwip适配和功能增强代码,里面提供了lwip的默认配置文件。 + +如果需要使用lwip组件,请按如下步骤适配: + +1. 在产品目录下新建一个目录用来存放配置文件,如lwip_adapter。 + +2. 将kernel/liteos_m/components/net/lwip-2.1/porting目录下的include目录和build.gn复制到步骤1的lwip_adapter目录下。 + +3. 如果默认配置不能满足产品使用,可根据产品使用情况修改对应的配置,如关闭DHCP功能,将lwip_adapter/include/lwip/lwipopts.h中宏LWIP_DHCP的值由1改为0。 + + ``` + //#define LWIP_DHCP 1 + #define LWIP_DHCP 0 + ``` + +4. 将lwip_adapter/BUILD.gn里的LWIP_PORTING_INCLUDE_DIRS修改为步骤1中lwip_adapter目录下的include路径。 + + ``` + #include_dirs += LWIP_PORTING_INCLUDE_DIRS + include_dirs += "//xxx/lwip_adapter/include" + ``` + +5. 在产品的配置文件中设置编译lwip的开关和编译路径,如config.json。 + + ``` + { + "subsystem": "kernel", + "components": [ + { "component": "liteos_m", "features":["enable_ohos_kernel_liteos_m_lwip = true", "ohos_kernel_liteos_m_lwip_path = \"//xxx/lwip_adapter:lwip\"" ] } + ] + }, + ``` + +6. 其他模块需要引用lwip头文件时,头文件路径应该包含如下两个部分,且顺序不能变。 + + ``` + include_dir = [ + "//xxx/lwip_adapter/include", #步骤4里的路径 + "//third_party/lwip/src/include", + ] + ``` + diff --git a/zh-cn/device-dev/porting/porting-chip-board.md b/zh-cn/device-dev/porting/porting-chip-board.md index 2a5223401bcba6e6b8f28aee176d36289a362970..6033d18fea5897b3557dcec6e3818c286a63cf7f 100644 --- a/zh-cn/device-dev/porting/porting-chip-board.md +++ b/zh-cn/device-dev/porting/porting-chip-board.md @@ -8,6 +8,8 @@ - **[系统组件调用](porting-chip-board-component.md)** +- **[lwip组件适配](porting-chip-board-lwip.md)** + - **[三方组件适配](porting-chip-board-bundle.md)** - **[XTS认证](porting-chip-board-xts.md)**