剑池CDK快速使用指南 您所在的位置:网站首页 gog怎么用cdk 剑池CDK快速使用指南

剑池CDK快速使用指南

2024-01-18 14:59| 来源: 网络整理| 查看: 265

文章目录 背景介绍平头哥IoT开发工具简介工作空间及组件组件操作及配置演示 剑池CDK基础概念及功能工程管理及运行步骤:模拟器硬件调试器及配置 使用剑池CDK进行IoT方案开发使用剑池CDK进行芯片SDK开发创建初始SDK算法工程原理及创建算法工程的调试和使用硬件相关组件开发硬件无关组件开发发布SDK工程 其他特色功能 仅介绍剑池CDK的基本使用方法步骤,详细信息参考CDK的Help文档。参考教程——阿里云开发者社区-剑池CDK功能及开发实战。

背景介绍 平头哥IoT开发工具简介

平头哥剑池CDK开发工具主要用于开发玄铁CPU。如何开发出运行在玄铁CPU上的软件?在IoT芯片开发领域中,会有一些基础的IoT芯片软件开发工具,比如编译器、汇编器、链接器、集成开发环境、模拟器、Flash烧写工具、领域内算法库、CK-Link等。 玄铁处理器也有自己的开发工具,即剑池开发工具。 在这里插入图片描述 从产品使用的角度来讲,剑池CDK向用户提供了四个方面的功能,如下图: 在这里插入图片描述 组件包管理器:将开发资源定义成组件单元。 编辑器:将IoT领域中常见的一些晦涩难懂的代码、脚本以图形化的方式提供给开发者,开发者只需在图形界面上操作,无需编写复杂的代码。 调试器:提供图形化的调试界面,令开发者能通过图形的方式去控制玄铁CPU的停止、运行,修改运行在玄铁CPU上的软件的内部变量。 分析器:帮助开发者提高代码性能,减小代码大小、降低功耗等。

工作空间及组件

在IoT的开发中,运行在玄铁CPU上面的二进制文件称为镜像文件。在CDK中,我们定义CDK的工程是生成一个镜像文件的基本单元,一个CDK工程就可以被编译输出一个镜像文件,再通过CDK中的下载器将镜像文件下载到玄铁CPU中运行。我们在CDK中定义了工作空间的概念,一个工作空间是CDK工程的容器,可以包含一个或多个CDK工程,每个CDK工程之间都是相互独立的,它们可以生成独立的镜像文件运行在玄铁CPU上。 在这里插入图片描述 最终,我们会将一个完整的CDK工程划分成多个组件。组件分为四个基本类别:

Solution(方案组件):对工程方案的具体实现Chip(芯片组件):描述硬件资源中芯片相关的内容Common(通用组件):方案、硬件无关的中间件资源Board(开发板组件):描述硬件资源中开发板相关的内容 这四个类别被称为CDK的组件包。通过定义这四类组件,可以描述嵌入式开发中的全部开发资源。描述完四类组件后,我们又定义了虚拟组件的方式。通过虚拟的组件合集的方式,能够将不同类型的组件整合在一起,表示一个特定功能的资源。 在组件定义的基础之上,可以将一个工程看作是一个Solution的组件,这个组件通过依赖的关系,可以将我们使用到的芯片、开发板以及其他的中间件资源整合在Solution中。通过这种方式,任何一个应用工程都可以复用芯片、开发板或者中间件。通过虚拟组件的整合,任何一个方案都可以灵活的从一个合集切换到另外的合集中,若合集表示一个硬件平台,那么可以从一个平台切换到另外的平台。通过对通用组件的使用,应用工程可以快速的实现设计目标。 在这里插入图片描述 组件定义完成后,在CDK组件框架中将组件进行分层。从CDK界面视图来看,以方案作为基本开发单元。在此基础上,CDK定义了组件池的概念,每个组件池可以包含若干个不同类型的组件,为我们的开发方案提供一些可选的组件列表。在方案内部可以配置要使用组件池的哪些组件。用户可以配置自己的组件池,CDK也会提供默认的组件池。芯片开放社区(OCC)对接到默认组件池中,因此在CDK中可以直接访问芯片开放社区提供的组件。 在这里插入图片描述 组件操作及配置演示

工程中用到四类组件——Common组件、芯片组件、开发板组件及工程节点代表的Solution组件。 1、创建CDK工作空间在这里插入图片描述 2、Project View界面 在这里插入图片描述 3、设置组件池 在这里插入图片描述 在这里插入图片描述

4、设置组件 SDK型组件就是虚拟组件集,可以代表一个具体的硬件平台。当组件池中有多个SDK时,可以通过切换SDK,达到切换不同平台的目的。 在这里插入图片描述

在这里插入图片描述 5、可以把硬件资源存放在SDK组件下。通过Options for配置我们想要的和不想要的组件。**只有在工程节点下的组件才会被编译到工程中去。**组件池里的组件只是为我们提供一些可用的选项。 在这里插入图片描述 在这里插入图片描述 创建芯片和开发板组件,是要在SDK节点下。 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 6、组件的配置(详细组件配置选项的含义参考CDK的Help文档) (1)方案组件外的其他类型组件,以配置Common组件为例 在这里插入图片描述 在这里插入图片描述 组件配置优先级:Solution>Board>Chip>Common。建议常用配置放在Solution中,与开发板严格相关的放在Board中,与开发板严格相关的放在Board中。

剑池CDK基础概念及功能 工程管理及运行步骤:

1、方案组件配置(即工程配置) 在这里插入图片描述 2、编译工程生成elf文件 在这里插入图片描述 在这里插入图片描述 加速编译功能: Edit-Configuration-Build Settings-Multi core build

模拟器

在使用CDK进行玄铁CPU开发的过程中,如果没有CPU硬件,可以进行模拟。CDK内置一个能够模拟虚拟芯片平台的模块——模拟器。模拟器可以模拟一个虚拟的芯片平台,调试时,我们可以将程序运行在这个虚拟平台中。开发者可以自己配置基于玄铁CPU的虚拟平台。整个虚拟平台的配置包括三部分:CPU、存储空间、外围设备。 在这里插入图片描述 三步完成一个基于玄铁CPU的虚拟芯片:(1)选择平头哥玄铁CPU型号;(2)配置虚拟芯片存储空间;(3)增加虚拟平台外设模块。 1、在这里插入图片描述 在这里插入图片描述 创建新平台 可以copy上面的硬件平台到自己的平台中

硬件调试器及配置

CDK能够连接的硬件调试器分为两个类型:CK-Link Lite和CK-Link Pro,这两个类型都有不同的型号。CK-Link Lite是低成本调试器,造价比较低,CK-Link Pro是高性能调试器,成本更高。对于MCU类的小成本CPU,用CK-Link Lite即可。两种调试器在CDK中都可以进行配置。 右击工程节点——Options for…——Debug 在这里插入图片描述 Init File用于导入初始化脚本,在下载程序之前先执行一些命令。这些命令主要包含:set命令——设置目标板上内存的一些值,也可以设置一些寄存器的值;download命令——下载除工程之外的一些镜像到开发板中,支持elf、hex和bin文件格式的下载,这些文件也支持Flash空间的配置。 在这里插入图片描述 整个调试过程中,CDK先连接上硬件调试器,再连接CPU。 调试界面包括(详见帮助文档中图形界面接口-调试器窗格):

反汇编窗口Disassemble:展示程序实时运行中,在调试目标端,玄铁CPU运行的真实的指令流。源代码窗口:显示正在运行的源代码的具体位置。反汇编窗口会联动地显示当前源代码的反汇编,同样,源代码窗口也会根据反汇编窗口的具体位置去显示具体的源代码。寄存器窗口Register:显示和修改调试目标的寄存器的内容。断点窗口Debugger-Breakpoints:管理插入的断点。可以对断点进行编辑,设置断点条件等。Frame Info-Locals窗口:显示当前运行到的函数的局部变量。Frame Info-Watches窗口:显示用户输入的表达式的结果;显示程序所运行位置能够访问到的所有的变量,可以是全局变量或局部变量。可以输入“$寄存器名”,显示该寄存器的值。可以对变量或节点值进行修改。添加变量时,一种方法是在下方手动输入变量名,另一种方法是选中源代码窗口中的变量,按住鼠标拖动到Watches窗口中。Frame Info-Call Stack窗口:显示程序的调用轨迹。Frame Info-Memory窗口:显示用户输入的存储空间的内容;查看和修改某个内存地址的值。Serial Pane串口窗口:提供了三个功能相同的硬件串口窗口,可同时连接三个硬件串口;Debug Print用来连接支持CPU的调试打印串口,会自动连接到该串口。该窗口是通过硬件的调试通道实现了一个虚拟的串口打印功能。当使用的硬件CPU支持了调试打印功能以后,用户可以在程序中结合硬件实现printf功能,完成调试打印输出的功能,此时打印会输出在此窗口中;也就是之前配置的ICE(硬件调试方法)Debug Print功能。Peripherals外设窗口:显示外围设备状态,修改一些可修改内容(从菜单栏的Peripherals打开)。在开发阶段,开发者可配置自己的外设窗口,因为每个CPU对接的外设都不同——在工程的任一目录下-Add New File-Chip File(.svc)- 其他的调试窗口可在View中打开。 使用剑池CDK进行IoT方案开发

从Welcome Page中可以下载方案示例和对应的开发资源。

使用剑池CDK进行芯片SDK开发

参考文档平头哥剑池CDK快速上手指南 我们可以把一个工程需要的资源划分成若干类型的组件,因此可以说一个硬件平台由若干个组件组成。定义运行在一个硬件平台下的多个方案工程,我们把这些方案工程及硬件平台一起打包,分发给方案开发者,把这样的一个软件包称为芯片的SDK。 芯片SDK开发的基本步骤

创建初始SDK

在workspace中新建SOC project,Project type选择Solution Package,设置组件池路径(建议组件池新建在worksapce的目录下,与.cdk同级),即可创建一个初始SDK。初始SDK仅包含一个Solution组件(即工程节点)、SDK虚拟组件集(只依赖一个chip SDK)。chip SDK包含启动文件(src-startup.S)、memory初始化文件(src-e902.c)。此时我们需要根据自己的硬件芯片的memory空间,修改script-gcc_chip.Id中ROM和RAM的区间,填写其启动地址和长度。此外,还要在startup.S中配置堆栈的大小。

算法工程原理及创建

算法工程用于将运行在Flash区间的镜像烧写到芯片的Flash空间中。算法工程的原理涉及CDK的硬件调试概念。 在硬件调试中,将CDK开发环境工程生成的镜像文件通过CK-Link调试工具下载到程序的RAM区间中。如果镜像文件需要烧写到Flash区间,需要算法文件辅助,将下载到RAM区间的镜像写到Flash区间中。 CDK的硬件调试通路说明 在这里插入图片描述 Flash算法的目的就是把镜像程序烧写到Flash区间中。CDK开发环境会首先把Flash算法文件下载到嵌入式设备的RAM/SRAM区间,这个过程没有涉及Flash的下载。然后CDK开发环境把镜像的二进制先放在算法文件的buffer中,再通过调试手段控制算法逻辑,将要烧写的数据Flash算法加载到Flash区间。Flash算法是Flash烧写的核心。 在Flash的四个组成部分中,真正需要用户开发的是设备描述、数据交互、接口实现。

Flash设备描述:按照实际情况,填写Flash设备描述的信息。Flash接口实现:按照嵌入式Flash设备特性,完成Flash接口实现。数据交互buffer:根据实际情况(芯片RAM大小),设置数据交互buffer的大小,越大烧写越快。根据工作原理,调试驱动。 Flash基本工作原理和组成 在CDK中创建Flash工程: 在workspace中新建SOC project,Project type选择Flash,填写芯片中RAM的地址,因为Flash算法始终运行在芯片的RAM空间中。需要我们开发的是src目录下的三个文件。 在这里插入图片描述 在FlashDev.c中,将三个"unknown"分别替换成硬件设备上Flash名称、CPU型号、Flash类型,可修改Flash的唯一标识ID。备注为“Access derectly”代表CDK能否直接读取Flash空间,如果为1则可以直接读取,CDK进行读Flash的操作时不会调用二次开发接口的FlashRead接口;如果为0则需要调用该接口去读取Flash的内容。Flash可以进行多个空间的配置,每个空间都是由起始地址、Flash size、sector size组成。 FlashDev.c 在main.c中,需配置g_rwBuffer的大小,根据芯片的RAM空间配置,尽可能配置较大的buffer大小。 在driver.c中,注释为TODO的位置用于留给我们做接口开发。根据硬件行为完成具体的逻辑。 其中flashProgram函数,将需要烧写的数据烧写到flash区间中。参考代码: int flashProgram(char* dst, char *src, int length){ // TODO for(int i=0,i // TODO for(int i=0;i for(int i=0;i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有