农业建设公司网站,系统网站界面设计,毕设代做网站,贵港哪里有网站建设推广基于Ubuntu Server编译YTM32 SDK工程 文章目录 基于Ubuntu Server编译YTM32 SDK工程需求下载软件包安装与配置配置虚拟机联网模式启用ssh连接启用ftp连接安装armgcc编译工具链确认make工具 验证 需求
在Linux系统环境下搭建SDK的编译环境#xff1a;
方便加入到持续集成工具…基于Ubuntu Server编译YTM32 SDK工程 文章目录 基于Ubuntu Server编译YTM32 SDK工程需求下载软件包安装与配置配置虚拟机联网模式启用ssh连接启用ftp连接安装armgcc编译工具链确认make工具 验证 需求
在Linux系统环境下搭建SDK的编译环境
方便加入到持续集成工具链Linux系统中运行armgcc的速度更快适合较为频繁的CI验证过程服务器上多使用Linux系统比较容易找到装Linux系统的服务器用旧电脑、虚拟机或者云服务均可一些客户需要要么规避工具链的商业付费授权要么习惯使用Linux系统欧美开发者
下载软件包
VirtualBox - Virtual Machine: https://download.virtualbox.org/virtualbox/7.0.12/VirtualBox-7.0.12-159484-Win.exeUbuntu 18.04 Server ISO Image: https://releases.ubuntu.com/18.04/ubuntu-18.04.6-live-server-amd64.isoTera Term - Remote Access Terminal:WinSCP - FTP/SFTP Client on Windows: https://winscp.net/eng/download.phpgcc-arm-none-eabi for Linux: https://developer.arm.com/downloads/-/gnu-rm
安装与配置
配置虚拟机联网模式
VirtualBox网络模式默认是NAT可改为桥接模式。
在桥接模式下虚拟主机同物理主机相互独立通过物理主机连接的路由器组网在Wifi网络中不需要再输入无线路由密码在同一个局域网网段。桥接模式下的虚拟主机同在局域网中加入一个物理主机服务器最接近。
为了验证虚拟主机系统已经联网成功可通过ifconfig命令查看Linux主机的ip地址 图x 查看远程服务器ip地址 前期的一些关于网络的配置工作仍需要在虚拟机界面下完成。例如先要安装并启用SSH服务使得本地主机可以通过SSH连接到远程主机。
启用ssh连接
sudo apt install openssh-server # 安装ssh server
sudo service ssh start # 启动ssh服务
sudo ufw allow 22 # 更新防火墙规则开放22号端口为了方便在本地主机物理主机系统中操作服务器接下来将在本地主机使用SSH终端访问远程主机虚拟主机系统。
图x 使用Tera Term建立同远程主机的SSH连接 登录后接下来的配置工作就都可以在Tera Term终端中进行了。如图x所示。 图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_enableYES保存修改配置后重启服务
sudo systemctl restart vsftpd在本地主机的Windows系统上可以使用WinSCP作为FTP客户端。如图x所示。 图x 使用FTP向远程主机传文件 安装armgcc编译工具链
Ubuntu 18.04的软件源中gcc-arm-none-eabi工具集的版本比较老通常要使用较新版的编译器可以通过直接解压压缩包的方式安装到远程主机的Linux系统中。
在Arm的官网https://developer.arm.com/downloads/-/gnu-rm下载Linux版本的gcc-arm-none-eabi工具集如图x所示。 图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中再解压
tar -jxvf gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2最后将编译器程序所在的目录添加到Linux的环境变量中。
sudo nano /etc/profile在文件结尾处添加
export PATH$PATH:/home/andrew/ytm32-mcu/tools/gcc-arm-none-eabi-10.3-2021.10/bin保存.bashrc文件后重新激活
source /etc/profile此时在bash中试用arm-none-eabi-gcc命令可以看到bash已经可以检索到armgcc的编译器
andrewandrew-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.andrewandrew-pc:~/ytm32-mcu$确认make工具
YTM32的SDK使用Makefile组织源码工程。
PSNinja对Windows的支持似乎要好于Linux因此YTM32的SDK在Windows系统中搭建免费的开发环境就选用了Ninja。Make在Windows系统上没有专门的软件包不能在Windows原生的命令行环境中直接调用只得通过mingw环境套用一个兼容性的make工具。但是Make在Linux系统环境下是天然被支持的因此在Linux系统环境下YTM32的SDK优先使用Make工具。
在bash中试着运行make命令确认是否已经安装。
andrewandrew-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.
andrewandrew-pc:~/ytm32-mcu$确认过眼神是对的人。
验证
通过WinSCP将SDK的软件包传送至远程主机解压软件包
andrewandrew-pc:~/ytm32-mcu$ unzip YTM32Bx_SDK_RTM_1.1.0.zip然后以hello_world工程为例切换至hello_world工程的Makefile文件所在目录试着编译一下
andrewandrew-pc:~/ytm32-mcu/YTM32Bx_SDK_RTM_1.1.0/sdk/demos/YTM32B1MD1/hello_world/GCC$ makeChecked for uname, found: Linux
Assuming Unix like environmentCreating directory for object filesCompiling FLASH/flash/YTM32B1MD1_startup_gcc.oCompiling FLASH/flash/dma_driver.oCompiling FLASH/flash/dma_hw_access.oCompiling FLASH/flash/dma_irq.oCompiling FLASH/flash/interrupt_manager.oCompiling FLASH/flash/pins_driver.oCompiling FLASH/flash/pins_port_hw_access.oCompiling FLASH/flash/linflexd_uart_driver.oCompiling FLASH/flash/linflexd_uart_irq.oCompiling FLASH/flash/clock_YTM32B1Mx.oCompiling FLASH/flash/osif_baremetal.oCompiling FLASH/flash/printf.oCompiling FLASH/flash/startup.oCompiling FLASH/flash/system_YTM32B1MD1.oCompiling FLASH/flash/clock_config.oCompiling FLASH/flash/peripherals_config.oCompiling FLASH/flash/pin_mux.oCompiling FLASH/flash/main.oLinking to FLASH/flash.elftext data bss dec hex filename6604 84 9324 16012 3e8c FLASH/flash.elfBuild complete!Bingo。
鉴于大多数在服务器上做CI持续集成Continuous Integration只是编译不做下载和调试本文暂不继续介绍下载可执行文件的操作。实际上编译之后的可执行文件例如flash.elf可以通过WinSCP取回到本地主机在Windows系统下通过各种下载器例如JLink或者DAPLink下载到芯片上或者通过Bootloader的方式更新固件用户可以根据需要选用合适的操作方式。
END