- wsl2子系统下51单片机开发(环境搭建)
- 一、准备工作
- 1、映射usb设备->子系统
- (1)、win下安装usbipd.exe
- (2)、子系统ubuntu安装usbip
- (3)、powershell 查看并映射
- 2 、安装sdcc编译器,make工具
- 3、安装stcflash.py烧录工具
- 二、环境测试
- 1.代码
- 2.编译
- 3.下载
使用环境:win11子系统 ubuntu18.041、映射usb设备->子系统 (1)、win下安装usbipd.exe
usbipd.exe github连接
上不去的也可以到我的百度云提取码:g4cm
sudo apt install linux-tools-5.4.0-77-generic hwdata sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/5.4.0-77-generic/usbip 20(3)、powershell 查看并映射
查看添加映射:
usbipd wsl list usbipd wsl attach --busid
解除映射:
usbipd wsl detach --busid
附上使用图:
sudo apt install sdcc make -y sdcc -v3、安装stcflash.py烧录工具
stcflash.py github
百度云盘提取码:kjue
下载后放到/usr/local/bin目录下给权限
cp ./stcflash.py /usr/local/bin/ chmod 775 /usr/local/bin/stcflash.py二、环境测试 1.代码
main.c
#include <8051.h>
#include "led.h"
void main(void)
{
while (1)
{
Led_ON();
}
}
led.c
#include "led.h"
void Led_ON(void)
{
led = 0;
}
void Led_OFF(void)
{
led = 1;
}
led.h
#ifndef _LED_H_ #define _LED_H_ #include <8051.h> //led p2.0引脚 #define led P2_0 void Led_ON(void); void Led_OFF(void); #endif2.编译
我的目录结构:
直接make编译
make
这里直接附上我的makefile
CC = sdcc IHX2HEX = packihx DOWNTOOL = stcflash.py TARGET = main OUTDIR = output/ INCLUDES = libs/inc/ MAIN = src/main.c C_SRCS = $(wildcard libs/src/*.c) $(MAIN) RELS = $(wildcard $(OUTDIR)*.rel) RM = rm -rf output/ .PHONY:all clean all:$(TARGET).hex help: @echo make 编译main.hex--------------------- @echo make download 编译下载main.hex-------- @echo make clean 清除编译结果---------------- @echo 使用步骤:----------------------------- @echo ---------1.make----------------------- @echo ---------2.make download-------------- @echo ---------3.make clean----------------- rels: @mkdir -p output @for i in $(C_SRCS); do $(CC) -c $$i -I $(INCLUDES) -o $(OUTDIR); done $(TARGET).ihx:rels $(CC) $(RELS) -o $(OUTDIR)$@ $(TARGET).hex:$(TARGET).ihx $(IHX2HEX) $(OUTDIR)$^ > $(OUTDIR)$@ clean: $(RM) download:$(TARGET).hex $(DOWNTOOL) $(OUTDIR)$^3.下载
下载需要权限,我是在root用户下编译下载
su make download
默认下载至 ttyUSB0,有需要请自行配置。
代码打包附上 提取码:kjue
转载注明,感谢支持
参考 微软官方wsl2映射usb至子系统,sdcc使用,stcflash使用



