演示pc端的硬件资源
剩余硬盘空间200G
运行内存16G
操作系统win10
获取ubuntu镜像可以通过国内镜像
ubuntu-releases安装包下载_开源镜像站-阿里云 (aliyun.com)https://mirrors.aliyun.com/ubuntu-releases/
选择框中的文件下载
创建虚拟机
下载完成就打开vm,ctrl+N 新建虚拟机
编辑虚拟机的名称,以及将要存放的位置,就是我们预留200G以上的磁盘
这里内存我给8G
选桥接,后面可以用独立的ip
这里只要150-200都可以,不够再扩容
全部下一步最后点击完成
设置印象文件,就是前面下载的 4.1G iso文件
开启进入安装引导
下拉左侧语言选中简体,然后选安装
键盘选us
分辨率有点难受,显示界面不全设置一下,ctrl+alt+T打开终端 输入 xrandr命令回车
根据支持的分辨率设置一个可以看完整界面的
选择continue
默认位置就行
账户密码也根据个人设置继续就可以了。
安装完重启就可以进ubuntu了,接下来就需要
网络配置
桥接模式
nat模式
两种方式都可以我们看自己情况设置vm的网络链接模式,我选了nat window会作为路由分配ip给ubuntu
设置网络连接了现在ifconfig是找不到命令的,无法使用 apt install net tools,需要更换更新源。思路参考下面的文章
执行sudo apt-get update失败的解决方案-CSDN博客https://blog.csdn.net/jane_sl/article/details/106621900
操作:
执行这个命令 sudo vi /etc/apt/sources.list 进入vi编辑界面,按 i 进入编辑模式,将下载源复制进来 虚拟机提供了编辑工具条可以粘贴,按esc进入正常模式,然后按 :进入命令模式 按wq回车保存退出
执行命令sudo apt-get update
这里dns解析失败我们可以设置一下这个域名解析
执行这个命令sudo vi /etc/systemd/resolved.conf 添加一下解析服务ip 保存退出
在执行 ping www.baidu.com 可以看到ping通 再执行sudo apt-get updata可以更新
网络zhenchan
有了下载源就安装net-tools工具用来获取我们网络信息,常用的ifconfig也是接下来samba要用的
执行命令
sudo apt-get install net-tools
ssh服务安装,scp ftp传输 vscode编辑工具都依赖这个服务
sudo apt-get update
sudo apt-get install openssh-client
sudo apt-get install openssh-server
//启动ssh
/etc/init.d/ssh start
//查看是否监听固定端口22
netstat -na |grep 22
回到主线 安装samba用来window和Ubuntu操作系统之间传输文件
sudo apt install samba
sudo vi /etc/samba/smb.conf
# 在上述配置文件末尾追加:
# [share_dir] 是 Windows 主机看到的samba文件夹的名称,可以任意修改
# path 是 Ubuntu 主机通过 samba 共享出去的路径
[share_dir]
path=/home/zls/tspi
browseable=yes
writable=yes
public=yes
available=yes
创建分享目录 mkdir /home/zls/tspi
重启samba
sudo service smbd reload
sudo service smbd restart
使用ifconfig查看ubuntu当前的ip
在window界面 使用win+r打开命令框输入 \\+ip 找到映射的文件夹 此处我就是share_dir文件夹
右键选项选择磁盘映射
到这操作系统环境就完成了。后面就是导入sdk以及编译相关了。
编译sdk
在window把下载好的sdk拖入我们映射的Z盘
在ubuntu就可以看到了
校验
大文件下载容易出错官方也提供了校验的工具直接使用,对比两个结果,一致就是传输无误
//计算校验值
md5sum tspi_linux_sdk_repo_20240131.tar.gz
//官方值
cat tspi_linux_sdk_repo_20240131_md5sum.txt
这里可以先去做个快照,ubuntu后面玩坏了可以重新从这里开始
解压
使用tar命令解压.gz文件
tar -xvzf tspi_linux_sdk_repo_20240131.tar.gz
解压是repo版本的我们需要同步代码
sudo apt-get update
//安装git
sudo apt-get install git -y
//安装repo
sudo apt install repo -y
//安装python2
sudo apt-get install python2.7
//安装python3
sudo apt-get install python3
//同步代码 -j为线程数
.repo/repo/repo sync -l -j88
编译环境
sudo apt-get install git ssh make gcc libssl-dev liblz4-tool expect g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support qemu-user-static live-build bison flex fakeroot cmake gcc-multilib g++-multilib unzip device-tree-compiler ncurses-dev
使用脚本全编译
./build.sh all
编译成功
烧录验证
在串口终端打开可以看已经可以正常操作
代码编译
现在主控上的操作系统已经烧录好了,还需要一个编译器。用来专门编译在这个主控上运行的代码。
安装交叉编译工具
//安装交叉编译器
sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
//查看c编译器版本
aarch64-linux-gnu-gcc --version
//c++编译器版本
aarch64-linux-gnu-g++ --version
前面安装了ssh可以使用vscode连接ubuntu来给终端指令,以及写代码
编译.c
aarch64-linux-gnu-gcc xxx.c
可以看到arm架构的程序已经编译出来,把这个程序发送给泰山主控就可以试着运行了
传输程序到泰山派
用串口助手secureCRT 的rx命令发送bash提示没有该指令 用apt在泰山派安装一下这个服务
输入指令后就把共享磁盘中编译好的 a.out 拖入串口助手的界面选择xmode 协议中的任意一个自动发送了。这个速度有限后面换ftp好一点。
运行
直接运行提示权限不够 chmod 777 + demoname 改一下权限
再运行可以看到测试代码回显了两个字节对齐与四字节对齐的一个内存占用差异