0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Ubuntu Server编译YTM32 SDK工程

冬至子 来源:嵌入式客栈 作者:vesperW 2023-10-23 17:22 次阅读

需求

Linux系统环境下搭建SDK的编译环境:

  • 方便加入到持续集成工具链
  • Linux系统中运行armgcc的速度更快,适合较为频繁的CI验证过程
  • 服务器上多使用Linux系统,比较容易找到装Linux系统的服务器,用旧电脑、虚拟机或者云服务均可
  • 一些客户需要,要么规避工具链的商业付费授权,要么习惯使用Linux系统(欧美开发者

安装与配置

配置虚拟机联网模式

VirtualBox网络模式,默认是NAT,可改为桥接模式。

在桥接模式下,虚拟主机同物理主机相互独立,通过物理主机连接的路由器组网(在Wifi网络中不需要再输入无线路由密码),在同一个局域网网段。桥接模式下的虚拟主机,同在局域网中加入一个物理主机服务器最接近。

为了验证虚拟主机系统已经联网成功,可通过ifconfig命令查看Linux主机的ip地址:

image.png

图x 查看远程服务器ip地址

前期的一些关于网络的配置工作,仍需要在虚拟机界面下完成。例如,先要安装并启用SSH服务,使得本地主机可以通过SSH连接到远程主机。

启用ssh连接

sudo apt install openssh-server # 安装ssh server  
sudo service ssh start  # 启动ssh服务  
sudo ufw allow 22 # 更新防火墙规则,开放22号端口

为了方便在本地主机(物理主机)系统中操作服务器,接下来将在本地主机使用SSH终端访问远程主机(虚拟主机)系统。

image.png

图x 使用Tera Term建立同远程主机的SSH连接

登录后,接下来的配置工作就都可以在Tera Term终端中进行了。如图x所示。

image.png

图x 使用Tera Term建立同远程主机的SSH连接2

启用ftp连接

通过FTP连接,本机主机可以向远程主机传送文件和下载文件。如此,可以在本地主机下载好必要的软件包,例如armgcc的工具链软件包。

在远程主机安装并启用FTP服务:

sudo apt-get install vsftpd # 安装vsftpd  
sudo systemctl start vsftpd # 启用vsftpd服务  
sudo systemctl enable vsftpd

配置vsfptd,启用读写访问权限:

sudo nano /etc/vsftpd.conf # 修改配置文件

默认仅需要开启写使能即可:

write_enable=YES

保存修改配置后,重启服务:

sudo systemctl restart vsftpd

在本地主机的Windows系统上,可以使用WinSCP作为FTP客户端。如图x所示。

image.png

图x 使用FTP向远程主机传文件

安装armgcc编译工具链

Ubuntu 18.04的软件源中,gcc-arm-none-eabi工具集的版本比较老,通常要使用较新版的编译器,可以通过直接解压压缩包的方式安装到远程主机的Linux系统中。

在Arm的官网下载Linux版本的gcc-arm-none-eabi工具集,如图x所示。

image.png

图x 下载Linux版本的gcc-arm-none-eabi工具集

使用WinSCP将下载好的gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2文件,上传至远程主机的目录/home/andrew/ytm32-mcu/tools中,再解压:

1.jpg

最后,将编译器程序所在的目录添加到Linux的环境变量中。

1.jpg

在文件结尾处添加:

1.jpg

保存.bashrc文件后,重新激活:

1.jpg

此时,在bash中试用arm-none-eabi-gcc命令,可以看到,bash已经可以检索到armgcc的编译器:

andrew@andrew-pc:~/ytm32-mcu$ arm-none-eabi-gcc --version  
arm-none-eabi-gcc (GNU Arm Embedded Toolchain 10.3-2021.10) 10.3.1 20210824 (release)  
Copyright (C) 2020 Free Software Foundation, Inc.  
This is free software; see the source for copying conditions.  There is NO  
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
  
andrew@andrew-pc:~/ytm32-mcu$

确认make工具

YTM32的SDK使用Makefile组织源码工程。

PS:Ninja对Windows的支持似乎要好于Linux,因此YTM32的SDK在Windows系统中搭建免费的开发环境,就选用了Ninja。Make在Windows系统上没有专门的软件包,不能在Windows原生的命令行环境中直接调用,只得通过mingw环境套用一个兼容性的make工具。

但是,Make在Linux系统环境下是天然被支持的,因此在Linux系统环境下,YTM32的SDK优先使用Make工具。

在bash中,试着运行make命令,确认是否已经安装。

andrew@andrew-pc:~/ytm32-mcu$ make --version  
GNU Make 4.1  
Built for x86_64-pc-linux-gnu  
Copyright (C) 1988-2014 Free Software Foundation, Inc.  
License GPLv3+: GNU GPL version 3 or later < http://gnu.org/licenses/gpl.html >  
This is free software: you are free to change and redistribute it.  
There is NO WARRANTY, to the extent permitted by law.  
andrew@andrew-pc:~/ytm32-mcu$

确认过眼神,是对的人。

验证

通过WinSCP将SDK的软件包传送至远程主机,解压软件包:

1.jpg

然后以hello_world工程为例,切换至hello_world工程的Makefile文件所在目录,试着编译一下:

andrew@andrew-pc:~/ytm32-mcu/YTM32Bx_SDK_RTM_1.1.0/sdk/demos/YTM32B1MD1/hello_world/GCC$ make
======================================================================
Checked for uname, found: Linux
Assuming Unix like environment
======================================================================
Creating directory for object files
======================================================================
Compiling FLASH/flash/YTM32B1MD1_startup_gcc.o
======================================================================
Compiling FLASH/flash/dma_driver.o
======================================================================
Compiling FLASH/flash/dma_hw_access.o
======================================================================
Compiling FLASH/flash/dma_irq.o
======================================================================
Compiling FLASH/flash/interrupt_manager.o
======================================================================
Compiling FLASH/flash/pins_driver.o
======================================================================
Compiling FLASH/flash/pins_port_hw_access.o
======================================================================
Compiling FLASH/flash/linflexd_uart_driver.o
======================================================================
Compiling FLASH/flash/linflexd_uart_irq.o
======================================================================
Compiling FLASH/flash/clock_YTM32B1Mx.o
======================================================================
Compiling FLASH/flash/osif_baremetal.o
======================================================================
Compiling FLASH/flash/printf.o
======================================================================
Compiling FLASH/flash/startup.o
======================================================================
Compiling FLASH/flash/system_YTM32B1MD1.o
======================================================================
Compiling FLASH/flash/clock_config.o
======================================================================
Compiling FLASH/flash/peripherals_config.o
======================================================================
Compiling FLASH/flash/pin_mux.o
======================================================================
Compiling FLASH/flash/main.o
======================================================================
Linking to FLASH/flash.elf
   text    data     bss     dec     hex filename
   6604      84    9324   16012    3e8c FLASH/flash.elf
======================================================================
Build complete!

Bingo。

鉴于大多数在服务器上做CI(持续集成,Continuous Integration)只是编译,不做下载和调试,本文暂不继续介绍下载可执行文件的操作。

实际上,编译之后的可执行文件,例如flash.elf,可以通过WinSCP取回到本地主机,在Windows系统下通过各种下载器(例如JLink或者DAPLink)下载到芯片上,或者通过Bootloader的方式更新固件,用户可以根据需要选用合适的操作方式。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 无线路由器
    +关注

    关注

    9

    文章

    336

    浏览量

    31089
  • FTP
    FTP
    +关注

    关注

    0

    文章

    99

    浏览量

    40280
  • 虚拟机
    +关注

    关注

    1

    文章

    855

    浏览量

    27380
  • SSH
    SSH
    +关注

    关注

    0

    文章

    177

    浏览量

    16079
  • Ubuntu系统
    +关注

    关注

    0

    文章

    84

    浏览量

    3785
收藏 人收藏

    评论

    相关推荐

    YTM32的LIN通信协议引擎LinFlexD外设模块详解

    YTM32微控制器的LINFlexD外设模块,实现了LIN协议控制器的功能,可以支持LIN总线协议的主机和从机功能。
    的头像 发表于 10-08 11:15 1162次阅读
    <b class='flag-5'>YTM32</b>的LIN通信协议引擎LinFlexD外设模块详解

    YTM32的模数转换器ADC外设模块详解

    YTM32的ADC转换器外设最多可以集成32个输入通道,最高12b转换精度,最快可以支持2M Sps的12b采样。
    的头像 发表于 10-09 16:35 1208次阅读
    <b class='flag-5'>YTM32</b>的模数转换器ADC外设模块详解

    YTM32的增强型定时器eTMR外设模块简介

    YTM32微控制器上集成的eTMR模块,是一个定时器外设,下辖多至8个通道
    的头像 发表于 10-31 14:18 576次阅读
    <b class='flag-5'>YTM32</b>的增强型定时器eTMR外设模块简介

    ubuntu14.10上安装了esp-open-sdk编译IoT SDK出现报错是为什么?

    我已经在我的 ubuntu 14.10 上安装了 esp-open-sdk。 构建工具链似乎没问题,但编译 IoT SDK 会出现此错误: [..]~/esp-open-
    发表于 06-09 08:10

    Ubuntu Server菜鸟配置手册

    Ubuntu Server菜鸟配置手册──目录 1 安装Ubuntu Server 4 2 简单的配置好服务器网络和SSH 12 3 搭建一个基于 Apache2、PHP 和 Mysq
    发表于 05-22 00:54 54次下载

    opencv编译安装笔记(Linux、Ubuntu

    本文介绍了两种opencv编译安装笔记:Linux下编译安装OpenCV和Ubuntu 下安装 OpenCV。有需要的小伙伴可以看看。
    发表于 12-03 10:33 4940次阅读
    opencv<b class='flag-5'>编译</b>安装笔记(Linux、<b class='flag-5'>Ubuntu</b> )

    fireflyAIO-3288C主板编译Ubuntu16.04固件简介

    SDK 开发环境是在 Ubuntu 上开发测试的。
    的头像 发表于 12-16 15:10 1099次阅读
    fireflyAIO-3288C主板<b class='flag-5'>编译</b><b class='flag-5'>Ubuntu</b>16.04固件简介

    fireflyROC-RK3308B-CC固件编译工具简介

    固件编译工具(Docker 方式) 说明 SDK编译工具 - Docker 方式,通过 Firelfy 定制的 Ubuntu 16.04 Docker镜像,快速搭建
    的头像 发表于 12-20 09:30 1684次阅读

    微雪电子RK3308主板CC固件编译工具介绍

    SDK编译工具 - Docker 方式,通过 Firelfy 定制的 Ubuntu 16.04 Docker镜像,快速搭建SDK所需的编译
    的头像 发表于 12-23 15:40 1802次阅读

    fireflyAIO-3288J主板编译Ubuntu16.04固件简介

    编译 Ubuntu16.04 固件(GPT) 前言 本 SDK 开发环境是在 Ubuntu 上开发测试的。我们推荐使用 Ubuntu
    的头像 发表于 12-26 14:54 2821次阅读
    fireflyAIO-3288J主板<b class='flag-5'>编译</b><b class='flag-5'>Ubuntu</b>16.04固件简介

    【时擎科技AT1000开发板试用体验】官方Linux sdk编译配置

    linux编译源码的小伙伴说说。Ubuntu版本: Ubuntu 20.04.3 LTS。 在收到时擎科技提供的SDK后目录结构如下: 一个为sdk
    的头像 发表于 11-22 14:31 420次阅读
    【时擎科技AT1000开发板试用体验】官方Linux <b class='flag-5'>sdk</b><b class='flag-5'>编译</b>配置

    RK3568 SDK编译

    RK3568 SDK编译
    的头像 发表于 12-13 11:46 1156次阅读
    RK3568 <b class='flag-5'>SDK</b> 的<b class='flag-5'>编译</b>

    Ubuntu编译安装pcl教程

    编译安装PCL(Point Cloud Library)是在Ubuntu上使用自定义选项进行安装的一种方式。
    的头像 发表于 10-26 09:36 437次阅读

    RK3568 SDK编译

    SDK的开发环境是在Ubuntu系统上开发测试的。推荐使用Ubuntu18.04系统进行编译。其它的Linux版本可能需要对软件包做相应的调整,除了系统外,还有其它硬件方面的要求。
    发表于 12-13 11:40 59次下载

    SS524V100 SDK安装编译

    SS524V100SDK安装编译osdrv注意事项(一)一、开发环境windows10电脑+虚拟机15Pro+Ubuntu18.0.4二、在linux服务器上安装交叉工具链
    发表于 10-23 17:30 5次下载