打印
[其他ST产品]

《DNK210使用指南-SDK版》第三章 裸机SDK开发环境搭建

[复制链接]
448|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
第三章 裸机SDK开发环境搭建

本章将对裸机编程开发进行简单介绍
本章分为如下几个小节:
3.1 SDK介绍
3.2 CMake安装
3.3 Toolchain安装
3.4 使用裸机SDK编译一个工程


3.1 SDK介绍
嘉楠科技针对K210共提供了两种官方SDK,一种是带有FreeRTOSSDK,另外一种是本教程介绍的裸机SDK,其源代码在GitHub上开源(https://github.com/kendryte/kendryte-standalone-sdk),官方SDK是开发K210的基础,里面带有芯片的各种驱动,帮助我们快速完成外设的驱动和实现AI应用的开发,这些驱动基本都是用C语言编写,具有较高的运行效率和性能,支持在LinuxOSXWindows下开发。
本节我们将详细介绍裸机SDKWindows 10下的开发环境搭建过程,我们先从上面的GitHub链接下载我们所需的裸机SDK,下载后我们先解压,可以放在任意目录上,注意存放路径不要带有中文即可,为了方便我们可以先放在桌面,SDK内部文件结构如下图所示:
图3.1.1 裸机SDK文件架构
我们还需要安装CMakeToolchain这两个工具来搭建所需的开发环境。接下来先介绍CMake的安装
3.2 CMake安装
CMake是一个安装(编译)工具,具有跨平台,跨编译器等特性,是一种非常实用的Make工具。
CMake官方下载地址:https://cmake.org/download/,我们这里以Win 10 64位系统安装CMake的过程为例,如下图所示:
图3.2.1 CMake官方下载选项
我们这里介绍下文件后缀.msi.zip的区别:.msi文件是安装程序,与普通安装程序差,后缀.zipCMake的程序文件需要安装,只需要解压后放到某个路径下,再把路径添加到系统环境变量就可以使用
我们选择下载后缀.zip的文件,然后在D盘根目录下新建K210文件夹(其他路径也可以),我们将其解压到该文件夹中,如下图所示:
图3.2.2 CMake解压路径
接着是添加路径到系统的环境变量中,我们返回到桌面,找到此电脑右击桌面此电脑图标,依次选择属性à高级系统设置à环境变量,双击系统变量下的 Path如下图所示:
图3.2.3 环境变量设置路径
点击新建后,我们点击浏览,然后找到我们存放的CMake文件目录,选择文件夹下的bin文件,然后点击确认,此处的路径是:D:\K210\cmake-3.28.1-windows-x86_64\bin,如下图所示:
图3.2.4 设置CMake环境变量
设置完成之后我们要检查验证CMake,使用Win+R打开运行窗口,在运行窗口输入cmd打开命令行界面,输入cmake -version可以看到自己安装的CMake版本,表示CMake已经安装成功,如下图所示:
图3.2.5 CMake安装成功界面
CMake的安装就到此结束了,接下来我们介绍交叉编译器Toolchain的安装。
3.3 Toolchain安装
交叉编译器Toolchain是用于调试开发板的工具和相关库组合起来的集合,也称为工具链。一般内附有编译器compiler),如GCC可以进行程式编译、跨平台编译工作
我们到嘉楠开发者社区下载(https://developer.canaan-creative.com/resource),依次点击资料下载àK210,选择我们要下载的kendryte-toolchain-win-amd64,如下图所示:
图3.3.1 嘉楠资料下载界面
我们将工具链文件下载解压到和CMake同个文件夹下面(其他路径也可以,不过我们放在一起方便管理和查找),接着和CMake一样,也需要添加环境变量,方法和CMake相同,这里不再叙述,可以参考上一小节,同样也是选择到Toolchain文件夹内的bin文件,添加完成后如下图所示:
图3.3.2 设置Toolchain环境变量
设置完成之后我们还需要验证交叉编译器Toolchain,我们根据上一节方法进入命令行界面,输入:make -v按回车,能够看到GNU Make版本号,表示交叉编译器Toolchain已经安装成功,如下图所示:
图3.3.3 Toolchain安装成功界面
到此我们的裸机SDK开发环境就搭建完成了,接下来我们将尝试编译一个程序。
3.4 使用裸机SDK编译一个程序
首先我们可以打开GitHub上的链接:https://github.com/kendryte/kendryte-standalone-sdk,下拉到下方README,可以看到有LinuxOSXWindows下的编译示例,如下图所示:
图3.4.1 编译示例
这里我们只需要看Windows下的方法,前面下载安装和设置系统环境变量部分我们都完成了,我们按示例介绍进入SDKsrc文件夹,发现有一个hello_world文件夹,如下图所示:
图3.4.2 src文件夹目录
我们点击进入文件夹,可以看到有main.c文件,我们打开文件,即可看到程序源码,源码内容如下:
#include <bsp.h>
#include <sysctl.h>
int core1_function(void *ctx)
{
    uint64_t core = current_coreid();
    printf("Core %ld Hello world\n", core);
    while(1);
}
int main(void)
{
    sysctl_pll_set_freq(SYSCTL_PLL0, 800000000);
    uint64_t core = current_coreid();
    int data;
    printf("Core %ld Hello world\n", core);
    register_core1(core1_function, NULL);
    /* Clear stdin buffer before scanf */
    sys_stdin_flush();
    scanf("%d", &data);
    printf("\nData is %d\n", data);
    while(1)
        continue;
    return 0;
}
这个程序就是使用双核打印输出Hello world,有一个核心额外执行读取外部输入整形数据再打印,这里我们先不多介绍,我们现在要将它编译输出一个.bin文件,我们用命令cd进入到hello_world文件夹,如下图所示:
图3.4.3 进入程序文件内
然后使用mkdir build命令创建build文件夹,用来存放我们的编译信息和Bin文件,接着输入:cd build进入文件中,如下图所示:
图3.4.4 创建build文件夹
接下来我们输入:cmake -G "MinGW Makefiles" ../../..(这里示例中有点错误)按回车,将文件关联起来,等待CMake完成后如下图所示:
图3.4.5 完成CMake
接着输入make,按回车开始编译,编译需要一段时间,耐心等待,如有错误会出现红色字体导致编译不成功,等待编译到100%,提示Built target hello_world,说明编译已经完成了,如下图所示:
图3.4.6 编译成功
编译完成后,我们输入命令:dir,可以看到与程序文件名一样的.bin文件,如下图所示:
图3.4.7 生成的BIN文件
至此,本章的内容就介绍完了,下载烧录的内容我们后续再介绍。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

93

主题

94

帖子

2

粉丝