多Demo合并操作及注意事项
Overview
AC79NN SDK 设计原则:
用户可以选择我们已经做好的scan_box, wifi_camera, wifi_story_machine 等具体案子上面开发, 如果功能差异不大, 用户在上述具体案子上面自己进行剪裁增添功能
如果找不到合适案子开发, 用户需要重新使用多个DEMO+EXAMPLE合并重新开发案子.
操作说明
本工程使用了demo_audio与demo_ble作为例子展示了多Demo的codeblocks合并操作及注意事项,主要目的是为了让客户了解熟悉demo合并流程,客户可根据实际需求灵活合并
1.选择需要合并的两份codeblocks, 此说明使用demo_audio与demo_ble作为例子, 找到任意一个demo的.cbp工程, 复制粘贴创建一个副本(目的为了不影响原demo工程)
2.使用记事本或Notepad同时打开.cbp工程( 以下统称AC791N_DEMO_DEMO_BLE.cbp工程为副工程 ,AC791N_DEMO_DEMO_NEW.cbp为主工程 )
3.在Notepad编辑添加修改配置:
3.1. 工程名称:修改工程名称(可选)AC791N_DEMO_DEMO_NEW
对应codeblocks的地方是
3.2. 宏定义:从副工程中复制粘贴 “<Compiler>” 以下, “<Add directory=” 以上的带 “<Add option=” 前缀的 “DCONFIG” 宏定义到主工程中。
对应codeblocks的地方是
3.3. 搜索目录:紧接上一步骤, 从副工程中复制粘贴以 “<Add directory=” 前缀的路径到主工程中,到为止 “</Compiler>” ( 请注意路径层级是否对应 )
对应codeblocks的地方是
3.4. 连接器选项:复制副工程 <Add option=”–start-group” /> 以下, “<Add option=”–end-group” />**以上的.a 到主工程 ( **请注意路径层级是否对应 )
对应codeblocks的地方是
3.5. 工程包含文件:复制副工程 “</Build>” 以下, “</Project>” 以上的内容到主工程 ( 请注意路径层级是否对应 )
对应codeblocks的地方是
4.打开主工程( 打开工程后建议先编译一次看下3步骤移植合并的情况 ), 添加副工程有, 主工程没有的代码 (app_main.c , board.c , app_config.h文件)
app_main.c:
app_config.h:
5.编译工程, 运行代码, 即可看到两个demo合并后的效果
常见问题
可不可以新建一个文件夹来创建工程?
答: 可以, 需要注意的是路径是否对应添加到指定的文件
主工程与副工程在复制粘贴中发现有很多完全重复的内容, 这些内容影响cbp工程的运行吗?
答: 不影响, 按正常流程移植合并, 使用codeblocks打开cbp工程后, 重复的内容会自动优化删除掉
若想合并两个以上的demo,该如何操作?
答:先合并其中两个, 验证合并后的cbp工程能够正常运行后, 再将该工程与其他demo合并(此操作是为了单步检测合并是否正确)
若合并前被合并的工程(副工程)目录下有主工程没有的文件, 该如何操作?
答: 参考步骤3.7
若合并后想关掉某些宏定义,该如何操作?
答:有些宏定义与库文件不关联,有些宏定义与库文件关联,关掉宏但不替换库会有概率报错,且有多余没有用到的代码占空间,具体参考 库文件简介说明 , 若不清楚,则主动提供SDK版本号与问题寻求FAE帮助