自建环境搭建
1、概述
控制器相关应用程序的开发需要在 ubuntu 主机上先进行交叉编译,才能在控制器上运行,因此在进行项目开发前,需要创建好相关开发环境。
Linux系统通常情况下有三种安装方式:真机双系统、真机单系统、虚拟机。本文提供了在Windows环境下虚拟机开发环境的搭建详细说明,您也可以根据实际情况自行选择其他方案。系统版本推荐使用Ubuntu20.04。
注意
其它Linux版本未经过严格全面测试,在程序开发编译过程中可能会产生不可预知的问题,若您对Linux系统及嵌入式开发不熟悉,建议您使用本文推荐的系统版本。
本文所介绍的虚拟机环境基于VirtualBox,VirtualBox 是由 Oracle 公司开发的一款开源免费的虚拟化软件,它可以在主机操作系统(如 Windows、macOS、Linux)中创建和运行一个或多个“虚拟机”(Virtual Machine, VM),每台虚拟机都可以运行不同的操作系统。
2、VirtualBox安装
控制器虚拟开发环境基于VirtualBox虚拟机,因此需要先行安装好虚拟机软件。
下载VirtualBox虚拟机安装程序,下载完成后双击启动安装程序。

安装程序启动后,点击“下一步”,选择“我接受授权协议中条款”,进入下一步

选择软件安装目录,其他保持默认即可,然后进入下一步

后续选择下一步直到安装结束即可。
3、创建新的开发环境
3.1、创建虚拟机
本文使用的开发环境系统是Ubuntu20.04,因此需要先获取20.04镜像。
打开VirtualBox软件,点击“新建”,在页面中填写基本信息,在虚拟光盘处单击右侧“下箭头”,选择“其它”,在文件选择中找到下载的Ubuntu镜像,然后单击“下一步”

分配虚拟机的内存大小及CPU数量,推荐4G、2核,您也可以根据电脑的实际情况自行更改,然后单击“下一步”

分配虚拟机硬盘空间,推荐40G,您也可以根据电脑的实际情况自行更改,然后单击“下一步”

浏览当前虚拟机信息,确认无误后单击“完成”返回。

3.2、系统配置
在VirtualBox管理器中选择刚刚创建的虚拟机,单击“启动”,等待虚拟机启动并自动安装系统。

在用户界面创建用户,等待系统安装完成。

系统启动完成后,安装增强功能,以便后续可以进行全屏虚拟机、共享剪贴板、设置共享文件夹等操作设置。点击顶部菜单栏中“设备——安装增强功能”

在弹出框中选择Run”,此时左侧Dock中可以看到一个光盘图标,单击“光盘”图标,然后点击“Run Software”,此时会自动执行安装增强功能,等待安装结束即可。

然后在“设备”菜单栏中配置共享文件夹,共享文件夹可以方便的在主机与虚拟机之间共享文件

文件夹路径选择主机上您想共享的文件夹即可,此后该文件夹下的内容虚拟机也可以直接访问

设置完成后打开终端,输入 ls /share
应该会列出共享文件夹下的内容,如果出现权限问题,可以执行如下命令
注意
挂载点路径即为在虚拟机中访问的路径,如上图所示,此时在Linux虚拟机中的共享文件路径为 /share
然后重启系统,此时应该可以正常访问共享文件夹。
3.2、编译环境配置
开发环境需要一些基础工具库的支持,首先要安装更新系统工具库,执行如下命令:
sudo apt-get update
sudo apt-get install openssh-server vim git fakeroot make automake \
autoconf libtool libssl-dev bc dosfstools mtools parted iproute2 kmod \
libyaml-dev device-tree-compiler python flex bison build-essential \
u-boot-tools libncurses-dev lib32stdc++6 lib32z1 libc6:i386
根据设备类型,下载并配置对应的编译环境
警告
建议您不要在虚拟机外部解压下载的gcc压缩包,尤其是在Windows系统下,外部解压有可能造成编译工具链接失效,导致无法进行编译。
BK1000、BK2000
点击下载BK1000、BK2000编译工具,将下载好的交叉编译工具放到共享文件夹目录中,通过如下命令移动编译工具到系统目录并解压
配置Shell 环境变量,将编译工具添加到系统环境变量中
然后通过查看version检验编译工具是否安装成功

BK3000
点击下载 BK3000编译工具,将下载好的交叉编译工具放到共享文件夹目录中,通过如下命令移动编译工具到系统目录并解压
配置Shell 环境变量,将编译工具添加到系统环境变量中
然后通过查看version检验编译工具是否安装成功

4、编译测试程序
4.1、编译程序
在虚拟机任意目录中创建 test.c
文件,其内容如下:
在终端中进入到 test.c
所属目录,输入如下命令编译 test.c
文件
编译结束后,会在当前文件夹下生成 Test
可执行文件。
4.2、文件上传
4.2.1、 SFTP命令上传
控制器开机默认启动了SFTP服务,SFTP(SSH File Transfer Protocol)是基于 SSH 的安全文件传输协议,用于在本地和远程服务器之间加密传输文件。
打开终端,在终端中通过 sftp
命令连接到控制器
根据提示输入密码(BK1000-2000密码为 root
,BK3000密码为 rpdzkj
),连接成功后即可进行文件传输操作。
SFTP常用操作命令如下:
- cd:切换目录
- put:上传文件
- get:下载文件
通过如上指令上传编译后的文件,以上传到控制器系统 /root
目录下为例

4.2.2、运维系统上传
如果您对sftp相关指令不熟悉或者倾向于使用图形化界面工具进行文件上传下载,您可以使用控制器内部的运维系统管理文件,详细说明参见运维系统——文件管理
4.3、执行测试程序
登录到控制器系统中,具体操作方法可以查看串口登录、网口登录章节,登录成功后,进入到文件上传目录,执行程序
