如何修改初始SDK工程 | 《平头哥剑池CDK快速上手指南》第四章

3.1 新增一个开发板组件

在SmartL_SDK节点下新增一个SmartL_Board的开发板组件。

如何修改初始SDK工程 | 《平头哥剑池CDK快速上手指南》第四章

然后右击工程视图的SmartL_Board节点,点击Add Source Folder选项,选中已经存在的代码目录,点击OK,此时将开发板组件的代码完全导入到新建的组件中了。
右击开发板组件SmartL_Board,在配置选项中,完成组件的编译配置:
1 在Compiler选项Global Config中,配置开发板组件需要提供给外部的头文件搜索路径;然后配置Debug Level也要配置包含调试信息的选项。

如何修改初始SDK工程 | 《平头哥剑池CDK快速上手指南》第四章

2 在Linker选项卡中配置使用的链接描述文件。

如何修改初始SDK工程 | 《平头哥剑池CDK快速上手指南》第四章

【备注】关于链接描述文件,solution、board、chip类型的组件的配置窗口的Linker选项卡中都可以配置,CDK会按照solution > board > chip的优先级,选择合适的链接文件使用。
在本例中,CDK会使用board组件配置的gcc_csky.ld文件作为链接描述文件。

3.2 更新当前的芯片组件

芯片组件的更新,主要包含芯片外设驱动的代码的编写,如果没有现成代码,需要逐个添加,编写代码,如果存在驱动代码,可以右击SmartL_Chip组件节点,选择Add Source Folder,将芯片组件需要包含的内容添加到芯片组件中。
本例中,将SmartL_Chip组件使用的csi_core接口和驱动代码,通过Add Source Folder的方式添加到芯片组件中。

如何修改初始SDK工程 | 《平头哥剑池CDK快速上手指南》第四章

完成源代码的添加以后,需要将使用的头文件路径配置到芯片组件配置对话框中的Compiler选项卡中。

如何修改初始SDK工程 | 《平头哥剑池CDK快速上手指南》第四章

由于我们添加的芯片组件代码中,包含了CPU的初始化和启动逻辑,所以,我们把之前SmartL_Chip组件包含的默认提供的芯片初始化的代码逻辑删除。

如何修改初始SDK工程 | 《平头哥剑池CDK快速上手指南》第四章

SmartL的SDK的硬件部分已经完成。

3.3 增加两个硬件无关的common组件

此外,我们还有两个代码模块需要添加,一个是RTOS的kernel部分,另外一个是一些工具函数。两部分的添加逻辑类似,这里介绍RTOS的kernel的添加。
右击my_solution工程节点,选择Create a Common Package选项,选择Clone from为,然后输入组件名称,点击OK

如何修改初始SDK工程 | 《平头哥剑池CDK快速上手指南》第四章

完成创建以后,工程视图会出现Packages节点,该节点表示直接被solution工程依赖的组件。该节点下面包含了刚刚创建出来的组件。

如何修改初始SDK工程 | 《平头哥剑池CDK快速上手指南》第四章

然后右击该节点,选择Add Source Folder,将需要添加的代码加入到组件中。然后在组件配置中的Compiler Tab中配置需要提供的全局头文件搜索路径。

如何修改初始SDK工程 | 《平头哥剑池CDK快速上手指南》第四章

至此,工程依赖的组件的添加和修改工作完成。

3.4 更新当前solution工程

对于工程本身,也是一个solution类型的组件,这里我们添加一些solution组件需要的代码,由于这些代码包含了main函数,所以,我们需要将工程默认的main函数所在的文件删除。
右击工程,通过New Folder创建新的目录,通过Add an Existing File添加已经存在的某个源文件。
然后根据solution具体的编译需要,在工程节点的配置窗口中,对Compiler、Linker等选项卡中的内容进行配置。

如何修改初始SDK工程 | 《平头哥剑池CDK快速上手指南》第四章

【备注】如果想要了解这些选项卡中的每个字段的节点的含义,在界面显示该节点时,点击Help按钮,就会直接显示配置含义。
至此,完成了主要代码的编写和工程编译的配置工作。

3.5 调试和Flash配置

调试相关配置,SmartL包含了Flash区间的调试,需要将工程配置窗口Debug选项卡中的ICE Settings子窗口中的Download to Flash勾选。

如何修改初始SDK工程 | 《平头哥剑池CDK快速上手指南》第四章

这样,工程就可以在Flash区间进行调试了。
对于Flash的配置,需要在工程配置窗口的Flash选项卡中进行配置,其中Options for Target Deriver区域需要配置Flash烧写的操作。

这里SmartL使用Erase Sectors的擦除方式,并在烧写完成进行Verify验证。

上一篇:如何创建初始组件化SDK工程 | 《平头哥剑池CDK快速上手指南》第二章


下一篇:如何创建一个Flash算法文件 | 《平头哥剑池CDK快速上手指南》第三章