WSL

安装

官方安装教程(很详细):https://docs.microsoft.com/zh-cn/windows/wsl/install-manual

  1. 管理员身份打开 PowerShell

    1
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  2. 重启电脑后,选择发行版,点击获取并安装

    https://docs.microsoft.com/zh-cn/windows/wsl/install-manual#step-6---install-your-linux-distribution-of-choice

  3. WSL 1安装完毕


建议安装 WSL1 版本即可,无需升级到版本 2

WSL1 与 WSL2 区别:https://docs.microsoft.com/zh-cn/windows/wsl/compare-versions


其他命令

WSL 版本查询

1
wsl --list --verbose

缩写:

1
wsl -l -v

image-20211014111109944


设置默认版本(不影响已存在的发行版)

1
wsl --set-default-version 1

设置 WSL 版本(Ubuntu 是我之前的 WSL ,具体名称根据实际情况填写)

1
wsl --set-version Ubuntu 1

WSL 安装交叉编译工具

1
sudo apt install gcc-10-arm-linux-gnueabi

1
sudo apt install gcc-arm-linux-gnueabi

image-20211012171956053


编译 c

1
arm-linux-gnueabi-gcc-10 xxx.c -o xxx

tftp32工具

tftp32官网:http://tftpd32.jounin.net

tftp32官方下载地址:https://bitbucket.org/phjounin/tftpd64/wiki/Download%20Tftpd64.md

安装后打开程序目录,编辑 tftpd32.ini 配置文件

BaseDirectory 填写你的共享目录(工程目录),LocalIP 本机ip地址,建议设置为静态IP

1
2
3
BaseDirectory= D:\share
...
LocalIP=192.168.98.118

image-20211014111206143


此时每次打开程序都是你配置的默认值

image-20211013100108266


脚本

WSL

在 WSL 新建文件 build 创建编译脚本

路径需要修改为你的共享路径

1
2
3
4
5
6
7
8
9
#!/bin/bash --posix
# author: Hydrogen

echo "---开始编译文件:$1"

arm-linux-gcc /mnt/d/share/$1 -o /mnt/d/share/${1%%.*} -std=c99

echo "---操作完毕---"


添加执行权限

1
chmod 755 build

添加自定义命令

方式一

添加文件链接

1
sudo ln -sf /xxx/xxx/build /bin

方式二

1
sudo vim /etc/profile
1
2
3
4
#...

alias build='你的脚本路径/build'

image-20211014150551100


生效配置

1
source /etc/profile

开发版

新建文件 go

拉取文件并运行的脚本,需要修改为你的本机IP

1
2
3
4
5
6
7
8
#!/bin/sh --posix
# author: Hydrogen

echo "---Start Processing"
tftp 192.168.98.118 -gr $1
chmod +x $1
./$1
echo "---END---"

方式一

添加文件链接

1
sudo ln -sf /xxx/xxx/go /bin

方式二

在开发版,配置 /etc/profile 文件

image-20211014140009464


生效配置

1
source /etc/profile

开发流程

  1. share 目录下编写程序,abc.c

  2. WSL 运行脚本,将 abc.c 编译为 abc

    1
    build abc.c

    image-20211014110957405

  3. 运行tftp32工具

  4. 连接开发版,运行脚本,拉取并运行文件

    1
    go abc

    image-20211014140150870


自动编译已修改的文件

WSL 创建脚本,check

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash --posix
# author: Hydrogen

if [ ! -e "/mnt/d/share/${1%%.*}" ]; then
build $1
fi

# alias build='/home/build'

time=`stat -c %Y /mnt/d/share/$1`

while [ true ]
do
time_tmp=`stat -c %Y /mnt/d/share/$1`
if [ $time -ne $time_tmp ];then
time=$time_tmp
build $1
sleep 2
fi
done

同样创建文件链接或添加到 /etc/profile

1
sudo ln -sf /xxx/xxx/check /bin
1
2
3
#...
alias build='你的脚本1路径/build'
alias check='你的脚本2路径/check'

生效配置

1
source /etc/profile

监控share目录文件变化

1
check xxx.c

发生变化时,自动编译

image-20211014151311416

image-20211014151638181